Prefer fixed invariant sender pool#15366
Conversation
24c649a to
a243d36
Compare
|
derek bench invariant |
|
cc @0xalpharush bench (invariant) event published. Results will be reported separately. View publisher run Config: subcommand: |
| const RANDOM_SENDER_WEIGHT: u32 = 1; | ||
| const DEFAULT_SENDER_WEIGHT: u32 = 99; |
There was a problem hiding this comment.
Proposal: split the sender weighting from --invariant-dictionary-weight. After this change, when targetSenders is empty the sender comes 99% from the fixed pool and only 1% from the random/dictionary strategy, so the knob barely affects which address sends the tx anymore.
To check, I counted how many of 400 sender draws were not one of the three new fixed-pool addresses. On master, raising the dictionary weight from 0 to 100 changes that count from 400 down to ~203 — so the knob clearly drives sender selection. On this PR it stays at ~2–3 regardless of the weight.
Maybe we can add a dedicated weight for the fixed-pool-vs-random/dictionary split, and leave dictionary_weight to govern calldata plus the fallback branch. That keeps the new Echidna-style default while still letting users dial sender randomness back up, and avoids making the existing help text (invariant calldata/senders) misleading.
|
derek bench invariant timeout=7200 |
|
cc @grandizzy bench (invariant) event published. Results will be reported separately. View publisher run Config: subcommand: |
Summary
Prompted by: @0xalpharush
Tests