optimistic-specs icon indicating copy to clipboard operation
optimistic-specs copied to clipboard

Rework execution engine specs to match the implementation

Open norswap opened this issue 3 years ago • 4 comments

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.

norswap avatar Jan 03 '22 15:01 norswap

(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.

protolambda avatar Jan 03 '22 16:01 protolambda

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!

norswap avatar Jan 04 '22 15:01 norswap

closed by #144

maurelian avatar Jan 28 '22 02:01 maurelian

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).

norswap avatar Jan 28 '22 16:01 norswap