The purpose of the event is to let the client teams of the executive and consensus layers work together to solve the outstanding issues on the specification and reach a series of development milestones. Each milestone brings the client closer to a fully functional merged development test network for the transition from PoW to PoS. The Besu, Erigon, EthereumJS, Geth, Nethermind, Nimbus, Lighthouse, Lodestar, Quilt and Teku teams all have representatives personally participated in the workshop. The Prysm team and some members of the aforementioned teams participated remotely.
The Amphora milestone aims to first make clients comply with the specification, then gradually add more complexity, and ultimately increase the number of other clients that can interoperate with them.
The first milestone M1 only requires the client to implement the merge specification. Most teams complete it even before the seminar starts! To help clients verify their implementation, developers have built multiple test suites.
Then, milestones M2, M3, and M4 are for the client team to build a development test network with increasingly complex technologies and multiple nodes. M2 implements a one-to-one combination of the execution layer (EL) client and the consensus layer (CL) client, and then publishes a combined testnet. This ensures that the two layers can successfully communicate through the engine API in the PoS environment.
M3 is a step beyond the achievement of Rayonsim in the Amphora workshop: the client builds a short-term development test network for the transition between PoW and PoS.
Transition to PoW-based mining difficulty: Once the mining difficulty of a block equals or exceeds a certain value, that is, TERMINAL_TOTAL_DIFFICULTY (total difficulty at the end), or TTD, the block is regarded as the last PoW block. The executive layer will then start to monitor the PoS consensus layer to reach a consensus on the new block. In order to ensure that the implementation of each team is robust, the EL team must connect two CL clients, and vice versa, in order to pass M3.
M4 is the real goal of this event: to allow multiple EL and CL clients to run a complete PoW to PoS transition process on a development testnet. In other words, M3 is a one-to-one test network, and M4 is a many-to-many test network.
Before the end of the workshop, we achieved this goal for a part of the team, so we started working on M5.
