* 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.
* 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>
* 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>
* 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>
* 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
* 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
* 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