optimistic-specs
optimistic-specs copied to clipboard
Rework execution engine specs to match the implementation
Our execution engine implementation is at https://github.com/ethereum-optimism/reference-optimistic-geth/
(I would like to rename this repository. Possible to execution-engine. Is that okay? If so, I'll open another issue to track.)
We need to update the spec to reflect the implementation, and improve the presentation somewhat.
I also want to move the sync conversation to elsewhere. Synchronization does not happen in the execution engine but in the rollup node. However, it is a thorny subject, which is not ready for specification yet. It is, in reality, an implementation concern, but we should write about how it can work in practice. I think this deserves its own document.
(I would like to rename this repository. Possible to execution-engine. Is that okay? If so, I'll open another issue to track.)
For now I would rather not change names, or at least preserve the "geth" part of the name. Other L1 clients are also execution-engines, so it's confusing. Erigon, also in Go, made progress with implementing the Merge during holidays, so maybe we can give it an attempt to port over the diff for additional engine support :)
It is, in reality, an implementation concern, but we should write about how it can work in practice. I think this deserves its own document.
Resolving the difference between L1 and L2 chain, and syncing back to head, is indeed worth specifying more. Implementation showed some topics that deserve more focus: starting at L2 engine history, watching L1/L2 head changes to adapt sync, the genesis edge-case (first L2 block is not derived from L1 but part of chain-config), and dealing with engine errors or L1 errors. Once the ref-impl is polished/tested more I can work on this doc, with pointers to the ref-impl.
For now I would rather not change names, or at least preserve the "geth" part of the name. Other L1 clients are also execution-engines, so it's confusing. Erigon, also in Go, made progress with implementing the Merge during holidays, so maybe we can give it an attempt to port over the diff for additional engine support :)
Does not have to be now, and agree that keeping "geth" in the name makes a lot of sense!
closed by #144
I apologize, made I mistake in the description of #144 (now edited away). The PR does not actually close this one (this one is about the execution engine, while #144 is about the rollup node).