-
Notifications
You must be signed in to change notification settings - Fork 20
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
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
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 lint
make test