-
Notifications
You must be signed in to change notification settings - Fork 38
Add flashblocks sequence diagram #252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
avalonche
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a need to include the no-tx-pool flow? In practice op-rbuilder does not receive these calls as rollup-boost filters them
|
@avalonche this is non-obvious part about our arch, so i need to capture it somewhere |
docs/flashblocks.md
Outdated
| There is 2 separate cases, for regular block and for block with no-txpool flag. When building no-txpool block we are using only fallback EL to construct the block. | ||
| This is done to rely on canonical implementation for such block as they are not compute intensive. | ||
| ## Regular block building flow | ||
| ```sequence |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sequence does not render on GitHub, can maybe try mermaid instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no, it doesn't work too
maybe i will recreate it in excalidraw once we iron it out
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what are you using locally to render? it doesn't work in vscode for me either
docs/flashblocks.md
Outdated
| rollup-boost -> op-rbuilder: FCU w/ attr | ||
| op-geth -> rollup-boost: VALID/SYNCING | ||
| op-rbuilder -> rollup-boost: VALID/SYNCING | ||
| rollup-boost -> rollup-boost: Set that op-rbuilder is building this block |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how does it do this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In-memory variable (hash map with payload id as a key)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it only does this if the builder responds valid right? I think we can clarify it uses the payload id to fetch the flashblocks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmm, i thnk it would still work in builder won't answer valid
But i need to check the code
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it uses payload_id to validate that flashblocks are from this batch
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But if FCU returned SYNCING it means that block building won't even start and we won't receive flashblocks
But there is no guarantee code wise
d3446e7 to
4dd9e2f
Compare
avalonche
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would add also how the web socket-proxy propagates the flashblocks to the rpc overlay and how nodes responds with flashblocks state
4dd9e2f to
4415640
Compare
|
I will add another diagram for RPC overlay, because it's quite self-contained |
7d3ab43 to
72d2095
Compare
331d1ae to
e0c42de
Compare
| OR->>RB: VALID/SYNCING | ||
| RB->>RB: Mark that op-rbuilder is building this block | ||
| RB->>ON: op-geth VALID/SYNCING | ||
| OR->>OR: Start block building |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Call this step instead "Start building flashblocks"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But it's block building job
Flashblocks are by-product
Co-authored-by: Julio <[email protected]>

π Summary
Made a doc with whole flashblocks flow
π‘ Motivation and Context
β I have completed the following steps:
make lintmake test