forked from ethereum-optimism/optimism
-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
Issue
- Currently, the op-sequencer after building the unsafe payload (on engine_getPayload on buildSealedEvent) will process the new unsafe payload by calling engine_newPayload on processPayloadEvent
- However, the payload re-executes on the EL, causing significant delays in setting the new EL blockchain head to the new block
- The PR - using block playlod cache op-geth#46 optimises this by caching the already executed payload state
- However, when we migrate to reth in the near future and adopt flashblocks architecture, caching on the default EL will no longer work as the payload is no longer built on the default EL (on op-rbuilder instead)
Case study
Block re-execution can take up to 7seconds on very large blocks:
INFO [10-27|13:27:36.610] Block<8594801>, Txs<2293> GasUsed<80355472>, BlockTime<6.552s> { Propose[0s] { Prepare[0s], execute[0s], Prague[0s], assemble[0s] , State { accRead[0s], storRead[0s], accUpdate[0s], storUpdate[0s], accHash[0s] } }, Insert[6.552s] { execute[5.730s], validate[10.920ms], crossValidate[84ns], evmExecPure[4.799s], validatePure[10.920ms] , Write { writeBlock[821.783ms] }, State { accRead[507.858ms], storRead[254.324ms], accUpdate[88.915ms], storUpdate[41.948ms], accHash[27.615ms], trieUpdate[130.863ms] }, Commits { accCommit[114.703ms], storCommit[163.467ms], snapCommit[2.769ms], trieDBCommit[145.553ms] } }
Metadata
Metadata
Assignees
Labels
No labels