ethereum-optimism / design-docs

MIT License
27 stars 20 forks source link

Add `op-node-derivers` design doc #1

Closed protolambda closed 6 months ago

protolambda commented 7 months ago

Description

Design doc for refactor of the Driver/Derivation in op-node, and introduction of "Deriver" to make the core chain validation processes of the rollup-node more extensible. This supports new projects such as interop by providing cleaner abstractions for major new functionality.

mslipper commented 6 months ago

I'm curious what the plan is to roll this out. Is there a way we can roll this refactor out incrementally in order to reduce review burden and risk?

sebastianst commented 6 months ago

I'm curious what the plan is to roll this out. Is there a way we can roll this refactor out incrementally in order to reduce review burden and risk?

@mslipper I believe @protolambda presents a nice rollout plan in three phases towards the end of the proposal, where the first removes the EngineQueue, the second introduces the new pattern into the Deriver without changing underlying concurrency, and the third would then incrementally add concurrency.

tynes commented 6 months ago

I'm curious what the plan is to roll this out. Is there a way we can roll this refactor out incrementally in order to reduce review burden and risk?

@mslipper I believe @protolambda presents a nice rollout plan in three phases towards the end of the proposal, where the first removes the EngineQueue, the second introduces the new pattern into the Deriver without changing underlying concurrency, and the third would then incrementally add concurrency.

A POC implementation also hid the new logic behind a flag and kept the old logic such that its possible to incrementally roll out the software to production, ie we run some nodes that opt into the new code and then after being sure that its safe we can eventually remove the old code

protolambda commented 6 months ago

Alignment on:

Aware of:

Contention on:

Confusion on: the exact usage of Resource / OnEvent:

Proposal: