Skip to content

Conversation

@0x416e746f6e
Copy link
Member

implement flashblocks monitoring:

  • read from public stream + individual builder streams
  • compare the flashblocks produced by all
    • detect mismatches
  • detect if the stream has flashblock gaps
  • compare captured flashblocks with canonical blocks
    • detect if there were flashblocks that were produced but were not added to the blocks

@0x416e746f6e 0x416e746f6e self-assigned this Dec 1, 2025

fm.processFlashblock(ctx, fb, fm.lastFlashblockPublic)
fm.lastFlashblockPublic = fb
fm.detectInconsistentFlashblocks(ctx, fb)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't we detect inconsistent flashblocks at the end when the canonical block come through? it looks like we are comparing at every event and there will be a lot of mismatches just from latency differences and not be an useful measure.
e.g.
builder flashblock 2 comes in at 450 ms -> compares with last public flashblock (flashblock 1 -> mismatch)
public flashblock 2 comes in at 500 ms

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

detectInconsistentFlashblocks compares payload id and index first. if they are not the same, not further comparison is made. that guarantees no false positives.

the most important part of the check if the check of the streams b/w individual builders (b/c the public one is anyway the same as one of the builders), and the latency to the builders is pretty much the same.

if we really-really want to compare 100% of all flashblock streams, we'd have to keep the history of each of them, and then implement some logic that would prevent that history from exploding. I left it out for the future for now.

Base automatically changed from refactor/decompose to main December 4, 2025 16:32
@0x416e746f6e 0x416e746f6e merged commit c582d05 into main Dec 4, 2025
@0x416e746f6e 0x416e746f6e deleted the feat/flashblocks-monitoring branch December 4, 2025 22:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants