Commit Graph
51 Commits
Author SHA1 Message Date
SatoshiQaziMuhammed 925b6c9bcd Move vulnerable dependencies to patched versions (#7)
* Move vulnerable dependencies to patched versions

Backend (Cargo.lock): openssl 0.10.55 -> 0.10.81, bytes 1.12.1, h2 0.3.27,
tokio 1.26 -> 1.47.1 (mio 1.x), url 2.3.1 -> 2.5.7 (idna 1.1), rand 0.8.8,
spin 0.9.9, time 0.3.55, ring 0.17.14.

Three alerts needed manifest changes:

- tokio-rustls 0.23 -> 0.26 (rustls 0.20 -> 0.23), which is what moves
  ring off 0.16. The ring provider is selected explicitly instead of the
  default aws-lc-rs, so the image build needs no cmake/C toolchain; roots
  still come from webpki-roots (now 1.0). Checked against live hosts: a
  valid certificate connects, an expired one and a name mismatch are
  refused.
- maxminddb 0.23 -> 0.27: lookup() now returns a result that is decoded,
  and the City model's fields are no longer Options. The existing
  locate_random_ip test (12.5.56.25 -> "Gardena") passes.
- structopt (clap 2, which pulled atty) -> clap 4 derive in telemetry_core,
  telemetry_shard and the soak tests; criterion 0.4 -> 0.5 for the same
  reason. Both binaries' arguments were parsed before and after for the
  docker-compose invocations and a set of other cases: identical results,
  except that `--feed-timeout` given without a value is now an error where
  structopt silently used the default. --denylist keeps taking every value
  up to the next flag (num_args = 1..), as its help text describes.

Frontend: npm audit fix within ranges, and webpack-dev-server 4 -> 5.2.6
(no devServer options are configured, so nothing to migrate). Left:
sockjs -> uuid 8 inside webpack-dev-server 5; the fix is 6.0, which needs
Node 22 while CI runs 20, and it is the local dev server only.

Checked: backend cargo test (58 passed), clippy, fmt; frontend lint,
prettier, test and build.

* Reject an invalid byte size instead of panicking

ByteSize::from_str called expect("all ascii digits") on the numeric part,
so a value with no digits ("abc", "k") or one too large for usize
aborted the shard at startup with a panic instead of a usage error, and
the suffix multiplication could overflow silently in release builds.
Parse errors now return Err and the multiplication is checked.

The new test fails on the old code (panic) and passes on this one.
2026-10-03 04:44:21 +04:00
James Wilson 71744ade7c Expose GitHub hash in UI (#604)
* Expose GitHub hash in UI

* Prettier:fix

* cargo fmt

* Update tests

* Fix test
2025-08-28 18:05:46 +01:00
gopherorg bb4c7272d8 chore: fix some typos in comments (#589)
Signed-off-by: gopherorg <gopherworld@icloud.com>
2024-05-13 15:22:52 +01:00
Alexandru Vasile b25f3fbf22 Add per Node Hardware Information to Telemetry Feed (#519)
* code: Add `sysinfo` and `hwbench` to the `AddedNode` message

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* code: Update `AddedNode` on `hwbench` updates

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* core: Rename cli flag `expose_node_ips` to `expose_node_details`

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* core: Add hardware info only if the cli flag is enabled

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Adjust testing to the new `AddedNode` message

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* core: Move serialization of fields to the details array

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2023-01-27 17:33:48 +02:00
James Wilson e7d15d03b3 Tweak logs and attempt to avoid races around removing nodes (#504)
* Tweak logs and attempt to avoid races around removing nodes

* wrapping_add in assign_id
2022-10-10 13:12:07 +01:00
Alexandru Vasile d525056190 core: Fix noisy logs caused by closing the /feed browser (#496)
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2022-08-29 16:20:35 +03:00
Alexandru Vasile 09b44ad00f Expose node's IP address via feed (#491)
* Fix typos

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* core: Extend `feed::LocatedNode` message with optional IP address

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* core: Expose IpAddr from locator task

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* core: Expose CLI flag to handle IP

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* tests: Consider Option<String> for IP address

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* core: Add node's IP directly to the Node's details

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Adjust testing and serialize node's ip address

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* frontend: Propagate IP address for deserialization purposes

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* core: Clarify the CLI flag documentation

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2022-08-17 15:35:36 +03:00
James WilsonandDavid 17432d712f Remove broken "Consensus" tab from UI and related code (#434)
* Remove consensus-tab related stuff, and unused messages, from the telemetry backend

* also remove AfgAuthoritySet feed message, and handle same from node

* Blat everything consensus related that I can find in the UI

* cargo fmt

* README: had -> has

Co-authored-by: David <dvdplm@gmail.com>

Co-authored-by: David <dvdplm@gmail.com>
2021-11-25 12:34:36 +00:00
James WilsonandDavid 7ff9a316d1 First/Third party by genesis hash, not label. Make limit configurable and default to 1k (#424)
* First/Third party by genesis hash, not label. Make limit configurable

* Fix a test that relies on not being a node limit

* remove a now-invalid comment

* Cargo fmt

* Fix another naff comment

* Update backend/telemetry_core/src/state/chain.rs

Comment tweak

Co-authored-by: David <dvdplm@gmail.com>

Co-authored-by: David <dvdplm@gmail.com>
2021-10-13 13:08:53 +01:00
James Wilson 7ac88a7e84 Expose total messages sent to aggregator, too (#416)
* Expose total messages sent to aggregator so we can make better graphs with total dropped msgs

* cargo fmt

* use write to hopefully avoid some allocating

* add 'core' namespace to telemetry metrics for better future clarity

* cargo fmt
2021-09-30 12:21:37 +01:00
James Wilson a3ffaf3c44 Flume fix part 2: avoid using flume in a couple of cases, and revert attempted fix#1 (#396)
* A second attempt to avoid the flume memory leak, since the first didn't actually work

* No luck with second flume fix, so revert to futures::mpsc in a few places)

* cargo fmt

* Add a comment to cover use of into_stream
2021-09-03 15:55:25 +01:00
James Wilson 2932075783 Avoid using flume::Receiver::into_stream() to avoid memory leaks until the issue is resolved upstream (#394)
* Tweak rolling_total test to also confirm capacity doesn't go nuts

* Use Jemalloc

* Avoid flume's into_stream and use a workaround for now

* cargo fmt

* Improve comments now that there's an issue to point to
2021-09-03 08:40:43 +01:00
James Wilson b842c7fc8b expose dropped message counts and fix some typos/wording 2021-08-13 11:33:53 +01:00
James Wilson 05a3ba3fef Fix/expand a few comments 2021-08-12 16:20:05 +01:00
James Wilson 230987036a cargo fmt 2021-08-12 16:01:35 +01:00
James Wilson 9017f328f0 Add comment explaining prometheus metrics endpoint body 2021-08-12 16:01:33 +01:00
James Wilson 92da674d4d Expose metrics in a format that prometheus understands 2021-08-12 16:01:32 +01:00
James Wilson 703a9ddc4e use flume throughout telemetry_core 2021-08-12 16:01:14 +01:00
James Wilson 8268cf2afe print feed 1 msg len 2021-08-12 16:01:12 +01:00
James Wilson 98c9ccd278 fmt, clean warnings, tidy aggregator opts and add queue length limit 2021-08-12 16:01:11 +01:00
James Wilson f26b39ac63 Address feedback from Niklas 2021-08-11 16:59:11 +01:00
James Wilson 9f76fabaed give tokio threads a more convenient name for monitoring purposes 2021-08-09 11:36:46 +01:00
James Wilson 626fe95d89 1 aggregator loop by default for now 2021-08-09 10:13:10 +01:00
James Wilson c99cbee1e9 Allow multiple aggregator loops in the core to try and spread feed subscription/send cost out 2021-08-07 17:08:58 +01:00
James Wilson 9c001bdcfd Add a comment on core worker threads 2021-08-06 17:50:50 +01:00
James Wilson 8017d8b00f Cargo fmt 2021-08-06 17:49:19 +01:00
James Wilson 78ad7115e5 set sensible worker thread limits again but allow full control to caller 2021-08-06 17:49:04 +01:00
James Wilson 88c3db3562 cargo fmt 2021-08-06 17:44:26 +01:00
James Wilson 0788270756 Add 'subscribe' benchmark 2021-08-06 14:22:01 +01:00
James Wilson dbabd453e0 Remove feed message cap; it wasn't pulling its weight 2021-08-05 12:21:16 +01:00
James Wilson bc75ebb068 default core/shard worker threads to 8/4 respectively 2021-08-05 12:18:44 +01:00
James Wilson 4da299bf76 Tweak logging around connections opening and messages coming in 2021-08-05 12:11:46 +01:00
James Wilson acfe3d45d1 num-cpus to worker-threads; more accurate name 2021-08-05 11:31:47 +01:00
James Wilson 759d28b1a2 add --num-cpus option 2021-08-05 11:11:23 +01:00
James Wilson 6221cbfd17 Dev tweaks for testing 2021-08-05 11:11:05 +01:00
James Wilson b70ab9ed3d Add license to the top of each source file 2021-07-29 17:34:40 +01:00
James Wilson 83d31ef0b3 Add rolling total and allow control over bytes per second allowed from node connections 2021-07-28 16:08:02 +01:00
James Wilson 2ca5f6a1fb cargo fmt 2021-07-27 12:38:05 +01:00
James Wilson ecf5fccaab make possible to test, test, and fix feed cutoff 2021-07-26 16:38:24 +01:00
James Wilson 50935b29fc put a deadline on message sending to feeds 2021-07-26 11:52:46 +01:00
James Wilson 480abd1e49 remove println 2021-07-23 16:21:30 +01:00
James Wilson 0eff32d10e Migrate telemetry_core to Hyper+Soketto 2021-07-23 15:57:50 +01:00
James Wilson 649fb966d2 Improve comment and bias select loop 2021-07-21 17:48:18 +01:00
James Wilson cedc2f9dbe tweak a comment 2021-07-21 13:59:44 +01:00
James Wilson 999d8ff0bd debounce feed polling a little to reduce CPU load when lots of messages are being sent out 2021-07-21 12:06:22 +01:00
James Wilson cca1df2e21 use ws_client in shard, too, and make it better at handling core disconnecting 2021-07-20 13:04:10 +01:00
James Wilson db8ea9a8f3 Add more tests, fix (and test for) a deadlock re overquota messages, more unbounded channels and less .awaiting 2021-07-15 10:53:02 +01:00
James Wilson c1208b9e81 cargo fmt 2021-07-13 16:51:24 +01:00
James Wilson 28be68e65f Get a basic first test working, and lots of changes to supporting code to facilitate this 2021-07-09 19:41:53 +01:00
James Wilson c043393e28 Write some basic test utils to get going; time to start trying them 2021-07-09 19:41:51 +01:00