feat: sample one tx per type and guard against reorgs - #39
Merged
Conversation
Open
27 tasks
mattsse
force-pushed
the
matt/block-tags
branch
from
August 13, 2026 16:17
399165c to
44e1e85
Compare
mattsse
force-pushed
the
matt/tx-sampling-reorg-guard
branch
from
August 13, 2026 16:17
f930a3c to
5815eef
Compare
mattsse
force-pushed
the
matt/block-tags
branch
from
August 13, 2026 22:43
44e1e85 to
eaa76c4
Compare
mattsse
force-pushed
the
matt/tx-sampling-reorg-guard
branch
from
August 13, 2026 22:43
5815eef to
b6f138c
Compare
mattsse
force-pushed
the
matt/block-tags
branch
from
August 14, 2026 00:08
eaa76c4 to
361c3d6
Compare
mattsse
force-pushed
the
matt/tx-sampling-reorg-guard
branch
from
August 14, 2026 00:08
b6f138c to
1133b37
Compare
Default sampling now picks the first transaction of each distinct type in a block instead of just the first transaction, which is often the same kind of searcher activity. fetch_block now verifies both nodes agree on the canonical block hash, retrying transient reorgs and failing with a clear error on persistent divergence instead of producing confusing diffs on every downstream call.
mattsse
force-pushed
the
matt/tx-sampling-reorg-guard
branch
from
August 24, 2026 09:19
1133b37 to
82dff7f
Compare
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.
Two structural improvements from #29. Default transaction sampling previously took the first transaction of each block, which on busy chains is disproportionately the same kind of searcher activity; it now samples the first transaction of each distinct type present in the block, so rarer types (legacy, blob, 7702) get coverage of their serialization and execution paths at a fraction of the cost of
--use-all-txes, whose behavior is unchanged.fetch_blockpreviously trusted rpc2's view of the chain without checking that rpc1 agrees, so a reorg mid-run made every downstream comparison diff at once with no indication of the cause. It now compares the canonical hash on both nodes, retries a few times to let transient tip reorgs settle, and fails with an explicit divergence error naming both hashes if the nodes never converge.Stacked on #38. Part of #29