-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
interop: Supervisor Drives L1 Data Source #13181
Comments
Daily update: So far I have written an L1 Processor which:
Right now I've got everything wired up, starting and running as a processor/worker similar to the other chain processors. I am now working on figuring out why it is generating conflicting data. My guess is that the new "L1 writes once with the existing L2" is bucking some logic elsewhere, but I'm still diving it.
I'll upload whatever I have to a PR by the end of my workday and will update here as well. |
The PR is now ready for review, it tracks the L1 and inserts the newly discovered L1 into the databases. Some basic unit tests written, and I observed good log output. |
Things which connect to this PR include:
These will build onto the above PR, and connect into the RPC work @protolambda is working on |
Finality Tracking: #13274 |
L1 and Finality are both independently tracked by the Supervisor 👍 |
From this document: https://github.com/ethereum-optimism/design-docs/pull/171/files
Decomposed into: https://www.notion.so/oplabs/tasks-to-make-150f153ee162809e981ac7d30c0bfae2?showMoveTo=true&saveParent=true
What
The Supervisor should be in charge of what L1 blocks are being processed by the Supervisor and its Owned Nodes
Why
Because without this we suffer inter-node inconsistency which leads to database inconsistency in the supervisor which must be managed
How
We should make the following modifications:
Replicate L1 data discovery into Supervisor
The op-node already searches for and identifies the next L1 block to process. Take these components and represent them in the Supervisor as some L1 monitor component.
(the L1 connection should also serve L1 finality signal to existing Supervisor code paths)
Owned nodes to no longer look up “next L1 block number”
The Supervisor indicates the next L1 block to be used (if its not the same as the previous) via the call to
TryDeriveNext
Owned nodes use the hash given to it to complete derivation per usual
Write to database on new L1
Whenever a new L1 is discovered, we should immediately write the new L1 with the existing L2 to all fromDA databases. This is a new behavior suggestion from @protolambda that we should include this record so that only one head increases at a time.
We can write this value as soon as the L1 is discovered.
(L2 blocks discovered through the
TryDeriveNext
calls will also load into the database, after this point. not tracked in this ticket)The text was updated successfully, but these errors were encountered: