feat(builder): inject validity predicates in shadow mode - #4472
Conversation
✅ Heimdall Review Status
|
b304b7b to
c8b4393
Compare
Amp-Thread-ID: https://ampcode.com/threads/T-01a01123-6884-76db-b458-85e3a2cf7f60 Co-authored-by: Amp <amp@ampcode.com>
c8b4393 to
27fc6b9
Compare
Approved review 4955427500 from BrianBland is now dismissed due to new commit. Re-request for approval.
refcell
left a comment
There was a problem hiding this comment.
Looks good except 1 reviewer bot comment
Amp-Thread-ID: https://ampcode.com/threads/T-01a01123-6884-76db-b458-85e3a2cf7f60 Co-authored-by: Amp <amp@ampcode.com>
Review SummaryBlock-production sensitivity: This PR touches the builder RPC insertion path and the payload builder transaction selection loop (flashblocks/context.rs). I reviewed it against the block production review guide. FindingsNo critical or blocking issues found. The The shadow injection path (
Minor observations (non-blocking):
Test coverage is thorough: unit tests for config validation, injection behavior, sampling determinism, and an integration test proving the injected predicate doesn't alter consensus bytes or state transitions. |
|
Caution This PR may regress performance. 4 benchmark(s) slower by more than 10% beyond the noise band: Benchmark results (advisory)Median time on the PR head versus the base branch, measured on the same host. Wall-clock, so a change is only flagged when it clears ±10% and the confidence intervals do not overlap. This check never blocks a merge.
|
Summary
balance(sender) > 0validity predicate without changing signed transaction bytes or hashesThe feature is disabled by default and requires both
--builder.enable-experimental-validity-transactionsand--builder.shadow-validity-injection.enabled. The sampling rate is configured in basis points with--builder.shadow-validity-injection.sample-rate-bps.