rust, hashsig-glue: bump leanMultisig to devnet4 5eba3b1 (~2x aggregation throughput) - #905
Closed
ch4r10t33r wants to merge 1 commit into
Closed
rust, hashsig-glue: bump leanMultisig to devnet4 5eba3b1 (~2x aggregation throughput)#905ch4r10t33r wants to merge 1 commit into
ch4r10t33r wants to merge 1 commit into
Conversation
Devnet operators reported ~16 sig/s aggregation throughput on the
previous pin (2eb4b9d, Apr 17) versus ~37 sig/s on the leanMultisig
benchmarks against 5eba3b1. The dominant contributor is leanMultisig
commit 939a767, which removed superfluous `#[inline]` annotations in
`eq_mle.rs` for a measured +10% on AVX-512 hardware (Hetzner AX42-U,
same class as the devnet aggregator hosts) with no NEON regression.
Other commits in the bump range:
- 7a71c0f: eq_mle base-case correctness fix (was using packing_width
instead of log_packing_width)
- 5fbd5bf: Plonky3 PR #1600 NEON dot-product regression coverage
- e5c2183: leanSig dep flipped to `main` (devnet4 merged into main)
- 5eba3b1: rec_aggregation BenchmarkReport (API-additive, source of the
per-node breakdown that lean-bench reads)
leanSig:main renamed `SchemeAbortingTargetSumLifetime32Dim46Base8` →
`SIGAbortingTargetSumLifetime32Dim46Base8` in `lifetime_2_to_the_32`
only. The test-only `lifetime_2_to_the_8` instantiation kept its
`Scheme...` name unchanged, so only the production config import in
`hashsig-glue` needs adjustment.
Contributor
Author
Merged
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bumps
rec_aggregation/leansig_wrapper/backendfrom the Apr-17 pin (2eb4b9d) to the currentdevnet4head (5eba3b1, May 12).Devnet operators reported ~16 sig/s aggregation throughput on
2eb4b9dversus ~37 sig/s on the leanMultisig benchmarks against5eba3b1, against the same hardware. The dominant contributor is leanMultisig commit939a767, which removed superfluous#[inline]annotations ineq_mle.rsfor a measured +10% on AVX-512 (Hetzner AX42-U, same hardware class as the devnet aggregator hosts) with no NEON regression.Commits picked up (2eb4b9d → 5eba3b1)
0fbf27c89e0320→6a0d8fad853f1c939a767#[inline]ineq_mle.rs(+10% AVX-512, neutral NEON)7a71c0fpacking_widthinstead oflog_packing_width)5fbd5bfe5c2183main(devnet4 has been merged into main)5eba3b1rec_aggregation: expose structuredBenchmarkReport(port from devnet5)5eba3b1itself is API-additive (new publicrun_aggregation_benchmark_report+ per-node telemetry types); existingrun_aggregation_benchmarkis preserved as a thin wrapper, so nothing in this repo had to change to absorb it.API adjustment in
hashsig-gluee5c2183pulls inleanSig:main, which renamedSchemeAbortingTargetSumLifetime32Dim46Base8→SIGAbortingTargetSumLifetime32Dim46Base8in the productionlifetime_2_to_the_32instantiation. The test-onlylifetime_2_to_the_8kept the originalScheme...name. Only the production config import needs to flip; thetest-configandtest_schemepaths are untouched.No other zeam code references the old type name.
Out of scope: recursive-aggregation review
The same review observation that flagged this bump also noted that, per spec, aggregators run recursive aggregation whenever helper payloads are available — 1.5–6 s wall — versus <600 ms for the non-recursive (gossip-only) fast-path that zeam already takes when
selected_children.items.len <= 1(pkgs/types/src/block.zig). Whether to widen that fast-path to always skip recursion on the produce path is a spec/operational design choice and is intentionally not part of this PR. Tracked separately.Pre-commit checks
cargo fmt --manifest-path rust/Cargo.toml --all -- --check— cleancargo clippy --manifest-path rust/Cargo.toml --workspace --no-default-features --features=libp2p,hashsig,multisig -- -D warnings— cleanzig fmt --check .— cleanzig build test --summary all— passed (491 s; xmss FFI test at 53 s, which is what would catch any ABI break)zig build simtest --summary all— passed (67 s)Test plan
lean_committee_signatures_aggregation_time_secondsp50.zeam_aggregate_skip_total{reason="in_flight"}— should fall toward 0 since fewer passes will spill across the next slot.