[forge] Latency baseline with 1 slow validator at 4k TPS#19330
Draft
danielxiangzl wants to merge 1 commit into
Draft
[forge] Latency baseline with 1 slow validator at 4k TPS#19330danielxiangzl wants to merge 1 commit into
danielxiangzl wants to merge 1 commit into
Conversation
d0bbcfd to
ea3ef6f
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This was referenced Apr 5, 2026
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Closed
1 task
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
4485f9d to
30a41f4
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
4bd84f1 to
460cc06
Compare
Forge harness for measuring commit-latency baseline against leader- reputation experiments. Self-contained: - realistic_env_max_load: ConstTps 4000 with 7 validators, 0 fullnodes - 24-hour epoch_duration_secs (no epoch changes during the test) - 20-min effective duration via with_duration_override(1200) - Last validator (by ordered index) simulates a slow proposer: 1s proposal delay every 10th round, guaranteeing round timeout Adds the duration_override plumbing to ForgeConfig/runner so individual tests can override the CLI duration. No P90 latency or multi-region changes; pure baseline for A/B against latency-weighted leader-rep. Prototype/experiment code -- not for merge to main. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
460cc06 to
9e0d4e5
Compare
This was referenced Apr 27, 2026
Draft
This comment has been minimized.
This comment has been minimized.
Contributor
✅ Forge suite
|
danielxiangzl
added a commit
that referenced
this pull request
Apr 28, 2026
…onfig Continuous, per-validator weight scaling for leader reputation that prefers validators with lower historical commit-to-commit interval as proposers. Gated behind a new on-chain config variant so all validators deterministically agree on whether to enable it (no rollout fork). Heuristic (LatencyWeightedHeuristic): - compute_round_times splits successful pair intervals 50/50 between newer/older proposer; attributes timeout-spanning gaps in full to the failed proposer(s) via failed_proposer_indices. - get_weights aggregates per-validator round-time observations using *mean* (not median, which discarded the failure tail). Scales by (max_mean / val_mean)^multiplier with a per-validator fallback below MIN_OBSERVATIONS=2, a MAX_LATENCY_RATIO=10x ceiling, and degenerate guards (empty / zero max_mean -> base weights). On-chain gate: - New ProposerAndVoterV3(ProposerAndVoterConfigV3) variant with use_latency_weighted: bool and latency_weight_multiplier_milli: u32 (BCS-friendly milli-units, 1000 = 1.0x). Version-agnostic proposer_and_voter_params() accessor returns the toggle for V1/V2 (false) and V3. Wiring: epoch_manager reads via proposer_and_voter_params; dag/bootstrap handles V3 by using its base config; smoke-test match arms cover V3. Forge config sets use_latency_weighted=true with default proposer_window_num_validators_multiplier=10 -- the window-bump experiment lives in a companion PR for A/B comparison. Tests: 7 new unit tests for the heuristic. All 18 leader-reputation lib tests pass. Stacks on baseline #19330; companion to the window-bump experiment in a separate PR. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
danielxiangzl
added a commit
that referenced
this pull request
Apr 28, 2026
…ht + larger window Tunes the existing ProposerAndVoter binary classifier on three axes so it reliably bans a slow validator instead of leaving it oscillating at the threshold boundary: - failure_threshold_percent: 10 -> 5 V6's injected real failure rate is 10%, exactly at the default threshold. Sampling noise pushed it above only ~26-38% of windows. Lowering the threshold to 5 makes V6's 10% clearly exceed it under any window size. - failed_weight: 1 -> 0 When a validator IS classified failed, it currently keeps a tiny weight (1 vs active 1000), still leaking ~1/N share. Setting to 0 fully excludes. - proposer_window_num_validators_multiplier: 10 -> 50 Larger observation window reduces variance in the failure-rate estimate, so classification flips less and is more decisive when it does. No heuristic changes. Stacks on baseline #19330. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Forge harness for measuring commit-latency baseline against leader-reputation experiments.
Setup
Use
Baseline reference for #19341 (latency-weighted leader-reputation experiment).
⚠ Prototype/experiment code — not for merge to main.