EVM on 2023Q4: the EVM Rollup MVP is safe and ready for low latency
Goal
This quarter is focused on two main tracks: finishing the EVM Rollup MVP and decipher the low latency through a sequencer.
MVP
Safe tick model
Target: 10/02 - 11/03
-
Implement the missing parts of the tick model identified during the previous quarter. -
Conservative model for opcodes (in review) -
Transaction storage
-
-
Define a conservative tick model for precompiled contracts
Owners: @pe.cornilleau, @hantang.sun, @picdc (reviewer)
Transaction UX
Target: 10/02 - 11/03
-
The mempool can handle sequences of transactions (in review) -
The mempool can handle replacement of transaction of the same none (in review)
Owners: @Pilou097, @ilya.peresadin, @alocascio (reviewer)
EVM Compatibility (1)
Target: 10/02 - 11/03
-
The framework to handle Ethereum tests is compatible with our EVM execution -
Most of the implementable RPCs are implemented (in review) -
Block hash are implemented
Owners: @rodibozman, @alocascio, @picdc (reviewer)
Low latency: Proof of concept
The proxy simulates optimistic execution.
Target: 10/02 - 11/06
-
Embed the WASM PVM (esp. the Fast Execution engine) into the proxy, as a new backend -
Apply blocks at a faster pace than L1 level
Owners: @vch9, @picdc (review)
Post MVP
EVM Compatibility
Owners: @pe.cornilleau, @hantang.sun, @rodibozman, @pikatos, @picdc (review)
Gas
Target: 11/06 - 11/17
-
Fix Inter-contract calls -
Finish gas features (outside of gas refund and hot storage) -
reimburse gas returned for revert !10288 (merged) @hantang.sun -
cost for storing code !10356 (merged) @pe.cornilleau -
transaction size cost !10349 (merged) @pe.cornilleau -
creation base cost !10349 (merged) @pe.cornilleau -
prevent collision !10354 (closed) !11150 (merged) @hantang.sun -
forbid invalid contract creation #6686 (closed) !11225 (merged) @pe.cornilleau -
(nice to have) improve storage perf !10549 (merged) @rodibozman -
(nice to have) cleanup !10355 (merged) @pe.cornilleau
-
-
Fix criteria for contract call (#6642 (closed)) !11217 (merged) created by @hantang.sun taken over by @rodibozman
Owners: @hantang.sun, @pe.cornilleau, @rodibozman (review), @picdc (review)
Precompiled contracts
Target: 11/12 - 12/01 (deprioritized)
-
Missing precompiled contracts: -
blake2f (#4829 (closed) !11333 (merged)) @pikatos -
alt_bn128 (#4828 (closed)) -
ECDSA (#4827 (closed) !10926 (merged)) -
Exponentiation (#4826 (closed))
-
Owners: @pe.cornilleau, @pikatos
Test Framework
Target: 11/06 - 11/17
-
Improve the output to help triaging
Owners: @rodibozman, @hantang.sun (review), @picdc (review, triaging)
Test framework: debugging
Target: 12/04 - 12/22
-
Handle multitests (!11223 (merged)) -
Handling of results of the Ethereum Test framework -
Triaging the issues -
Document the known limitations
-
Owners: @rodibozman
Low latency
Owners: @vch9, @alocascio, @Pilou097, @picdc (review)
Part of this track result from the work on the POC of the centralized sequencer.
Blueprints
Target: 11/06 - 11/24
-
Blueprints as inputs -
Blueprints are stored in the storage -
Blueprints are generated from sequences of transactions from the mempool -
Kernel can receive blueprints
-
Delayed inbox
Target: 11/06 - 12/01
-
2. Delayed inbox -
Transactions are pushed in the delayed inbox instead of blueprints automatically -
Blueprints can apply transactions from the delayed inbox
-
Owners: @Pilou097, ??
EVM Node
Target: 11/24 - 12/15
-
EVM Proxy has an optimistic state -
The proxy runs the kernel -
The proxy can simulate the state of the rollup -
The proxy can start from the state of an existing rollup node -
The proxy applies the blueprints on its own, and pushes the blueprints to the L1 inbox
-
Owners: @vch9, @alocascio
EVM Sequencer
Target: 12/15 - ??
-
Kernel accepts a unique sequencer -
The kernel accepts blueprints from a given set of keys -
The proxy signs blueprints if registered as blueprint producer (sequencer) -
The proxy knows can fallback to pushing to the delayed inbox if not a known sequencer
-
Owners:
Low priority
Congestion handling
Target: Uncertain
-
EIP-1559 or similar -
Implementation of the variable gas price -
Long test scenario testing the gas price evolution
-
Improved tick model infrastructure
Target: 11/06 - 11/24
-
Improve the tooling to make it more reliable -
Use profiler sections instead of flamechart -
Quick tests of the framework
-
-
Scenario to test the TPS with the tick model
Better tick model
Improvements of the tick model to consume less gas per transactions.
Target: 11/27 - 12/15
-
Reboot scheduling is safe with regards to the safe storage (issue #6295 (closed)) -
The tick model for opcodes is refined. -
Logs have a lesser impacts on ticks.