Conversation
LeoPatOZ
reviewed
Sep 11, 2025
LeoPatOZ
reviewed
Sep 11, 2025
| blocks_read_per_epoch: u64, | ||
| start_height: BlockNumberOrTag, | ||
| end_height: BlockNumberOrTag, | ||
| current: Header, |
Collaborator
There was a problem hiding this comment.
not sure if this makes a difference but to save memory we could just store the block number rather than the entire header?
Collaborator
Author
There was a problem hiding this comment.
we need the hash too for the reorg detection
LeoPatOZ
approved these changes
Sep 11, 2025
Collaborator
LeoPatOZ
left a comment
There was a problem hiding this comment.
Looking good i think this is a great starting point for the rest of the scanner
Collaborator
Author
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.

The responsibility of the block scanner is to process blocks in the correct order and to gracefully handle reorgs.
It reads blocks and feeds them into a channel, with the calling code being able to "receive" the blocks as they come. The idea is for this to enable us to gracefully handle
historic -> livetransition when initiating the event scanning, as blocks would be "fed" to the channel as they're fetched from the chain.Using this as the base type, we are able to create an
event scannerwrapper that handles actual event processing.