feat(flashblocks): add validation module for sequence ordering and reorg detection#21081
Closed
teddyknox wants to merge 1 commit intoparadigmxyz:mainfrom
Closed
feat(flashblocks): add validation module for sequence ordering and reorg detection#21081teddyknox wants to merge 1 commit intoparadigmxyz:mainfrom
teddyknox wants to merge 1 commit intoparadigmxyz:mainfrom
Conversation
…d reconciliation Add stateless validators for flashblock processing: - FlashblockSequenceValidator: validates consecutive indices within blocks - ReorgDetector: detects chain reorgs via transaction hash comparison - CanonicalBlockReconciler: determines strategy when canonical blocks arrive
Author
|
Closing in favor of ethereum-optimism/optimism#18993 |
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.
Part of the speculative flashblock building design.
Motivation
The existing flashblocks implementation relies on implicit parent hash matching to reject invalid sequences, but lacks explicit detection of sequence gaps, duplicates, and reorgs. This PR adds the foundational validation types that subsequent PRs will use for canonical block reconciliation and speculative building.
Changes
Adds
validation.rswith three stateless validators:FlashblockSequenceValidator- Validates that incoming flashblocks follow expected ordering. ReturnsNextInSequence,FirstOfNextBlock,Duplicate,NonSequentialGap, orInvalidNewBlockIndex.ReorgDetector- Compares transaction hash slices between tracked pending state and canonical blocks. ReturnsNoReorgorReorgDetectedwith diagnostic counts.CanonicalBlockReconciler- Determines reconciliation strategy when canonical blocks arrive:CatchUp,HandleReorg,DepthLimitExceeded,Continue, orNoPendingState.All types are stateless with
const fnwhere possible, making them easy to test and reason about.Testing
Comprehensive unit tests covering: