Etherlink: EVM and rollup node
This is a sub-milestone of %Etherlink: main launch.
EVM Node
External RPC Server
The current EVM node is a single process binary. If the node spends computation time on RPC to request the state, the block production is slowed down. We want to improve the overall performances by adding an external RPC server that deals with read-only requests and leaves the block production to the main thread:
-
A new EVM node mode RPC is introduced. Reading the state to answer to read-only RPCs. The user starts two nodes: sequencer/observer and rpc. -
The RPC mode forwards the transactions to the main node using a private communication channel. -
The RPC mode is launched via the main run command (instead of running 2 binaries).
Native crypto in host functions.
The kernel does a lot of signature verification, we want to experiment the usage of native crypto via host functions.
-
Benchmark the current block production -
Benchmark the block production with -
Host function to verify tz1 signatures. -
Host function to verify Ethereum signatures.
-
-
Incorporate the host functions to the next protocol if the performances are improved.
Reconstructing the history
The init from rollup node
command allows to initialize an evm node context with the rollup node information. That allows to deploy an observer starting from the "published" state of the chain (i.e. "published" in the sense of blueprints added to the inbox). However, the initialization loses the complete history, it only consider the latest state. It prevents RPC provider to respond to RPCs about old states of the chain. We propose to add a command that uses the L1 history to reconstruct the EVM history, re-applying all the blueprints and the upgrades if any.
-
Reconstruct the history from an archive rollup node. -
Support reconstruct command for mainnet kernel. -
Reconstruct the history from a rolling rollup node.
Improving performances
The observed TPS is not satisfying on Etherlink at the moment. We need to investigate and propose improvements. The external RPC server and the new host functions are attemps to improve the performances, but we need more investigation.
DAL integration
TODO