Closed tynes closed 3 weeks ago
I am adding more information, thank you for the review so far
Here is a link to the audit plan for this feature: https://www.notion.so/oplabs/Isthmus-Smart-Contract-Audit-113f153ee16280448ebbd1b628c26ff2?pvs=4
Noticed something here: https://github.com/ethereum-optimism/optimism/blob/dcdf2b7693192f5bca0353bf22729f26c6240ea9/op-node/rollup/types.go#L43
The op-node
starts deriving on the L1 block after what is in its config. This means we need SystemConfig.startBlock() - 1
rather than the start block itself. Two options on how to handle this:
start block - 1
into the rollup configstartBlock()
value as the starting point if its not presentI lean towards the second, it removes config overhead
I think the second is doable so long as op-node can load it from the latest L1 block reliably. Otherwise it doesn't know which block the system config first existed in. In most cases (probably not all) op-node walks along L1 from the start block forwards loading data from the block its up to so it has a consistent view. This would need to be a case where it always goes to the latest value. The start block has to be immutable so that seems reasonable to me.
Tracking the startblock config topic here: https://github.com/ethereum-optimism/optimism/issues/12579
@maurelian Can I get an approval on this so we can merge?
Description
Add design doc for standard L2 genesis
Tracking ticket: https://github.com/ethereum-optimism/optimism/issues/12302