Tezlink: multiple EVM chains on a single rollup
Context
This milestone is a continuation of the full-sharing solution of %Tezlink: prototype two Etherlink chains on the same rollup. The main difference is that the goal is not anymore to prototype the solution in order to compare it with the full-separation solution but to build a solid basis on which to build Tezlink. In particular, we now aim at merging the necessary changes on master.
One of the important features needed for Tezlink is that it is hosted on the same rollup as Etherlink so that assets can be transferred fast between Etherlink and Tezlink. In %Tezlink: prototype two Etherlink chains on the same rollup, we have studied how to add this multichain feature to the rollup hosting the Etherlink chain. This has lead to the design document of the multichain feature.
This milestone is a first step in the implementation of the feature, focusing on creating in the kernel and the EVM node a branching point where Tezlink can be added. Actually adding Tezlink is part of %Tezlink: empty Tezos blocks.
Work breakdown
-
Add the multichain feature flag: !16424 (merged) (@luciano.freitas) -
Make the feature testable -
Manual triggers for with-multichain tests in the CI (@luciano.freitas)(abandoned, see !16461 (closed)) -
Add CLI commands to configure each chain: !16501 (merged), !16502 (merged), !16643 (merged), !16738 (merged) (@ArnaudBihan) -
Add an integration test running two EVM chains on the same rollup: !16390 (closed)!16690 (merged) (@ArnaudBihan)
-
-
Prepare the kernel -
Refactor handling of gas price: !15574 (merged), !15593 (merged), !15609 (merged) (@rafoo_) -
Simplify stage 2: !16274 (merged), !16279 (merged), !16302 (merged), !16684 (merged), !16661 (merged), !16685 (merged), !16618 (merged) (@rafoo_) -
Provide access to last block's timestamp and number without reading the world state: !16835 (merged), !16569 (closed), !16686 (closed)(@rafoo_) -
Add optional chain_id field where needed: !16366 (merged), !16153 (merged) (@rafoo_) -
(optional) use relative paths in the kernel (relative to the world state) (@rafoo_)-
(optional) Statically distinguish relative and absolute paths in the kernel: !16559 (closed) (@rafoo_)
-
-
Don't hardcode the temp world state in safe storage: !16602 (merged) (@luciano.freitas)
-
-
Chain configuration in the EVM node: !16587 (merged), !16698 (merged), !16527 (closed) (@ArnaudBihan) + (@luciano.freitas)