{"id":18090,"date":"2026-03-09T00:25:49","date_gmt":"2026-03-09T00:25:49","guid":{"rendered":"https:\/\/cryptoted.net\/index.php\/2026\/03\/09\/amphora-a-major-merge-milestone\/"},"modified":"2026-03-09T00:25:49","modified_gmt":"2026-03-09T00:25:49","slug":"amphora-a-major-merge-milestone","status":"publish","type":"post","link":"https:\/\/cryptoted.net\/index.php\/2026\/03\/09\/amphora-a-major-merge-milestone\/","title":{"rendered":"Amphora: A Major Merge Milestone"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"\">\n<p class=\"chakra-text css-gi02ar\">Earlier this year, the <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2021\/05\/25\/finalized-no-26\">Rayonism hackathon<\/a> kicked off to protoype the architecture for Ethereum&#8217;s transition to proof of stake. The transition, often refered to as The Merge, will keep the existing beacon chain (eth2) and execution layer (eth1) clients, and &#8220;merge&#8221; both chains by making the beacon chain drive the execution layer&#8217;s consensus. This approach is the most recent in a series of iterations to the Ethereum roadmap (more on that <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/tim.mirror.xyz\/CHQtTJb1NDxCK41JpULL-zAJe7YOtw-m4UDw6KDju6c\">here<\/a>).<\/p>\n<p class=\"chakra-text css-gi02ar\">While Rayonism proved that this was a sound architecture, there were still several things left to design, implement and test, including the actual proof of work (PoW) to proof of stake (PoS) transition. To do so, client teams met face to face last week (analogous to the <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2019\/09\/19\/eth2-interop-in-review\">Eth2 Interop from 2019<\/a>) for a workshop named Amphora \ud83c\udffa.<\/p>\n<p class=\"chakra-text css-gi02ar\">Here is an overview of the main things that were accomplished during the workshop, and the path from here to The Merge.<\/p>\n<p class=\"chakra-text css-gi02ar\"><img decoding=\"async\" alt=\"\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/upload_83df4e119b6d3b117ac7b05672dca1db.png\" class=\"chakra-image css-hw6q2r\"\/><\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"amphora-milestones\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"amphora milestones permalink\" href=\"#amphora-milestones\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Amphora Milestones<\/h2>\n<p class=\"chakra-text css-gi02ar\">The purpose of the event was to get the execution and consensus layer client teams to iron out outstanding issues in the specification and reach a set of development milestones. Each milestone got clients closer to a fully functioning merge devnet which transitioned from PoW to PoS. Representatives of Besu, Erigon, EthereumJS, Geth, Nethermind, Nimbus, Lighthouse, Lodestar, Quilt and Teku attended the workshop in person. The Prysm team, along with several members from the aforementioned teams, participated remotely.<\/p>\n<p class=\"chakra-text css-gi02ar\">The <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/hackmd.io\/@tvanepps\/amphora-milestones\">Amphora Milestones<\/a> aimed to first get clients conforming with the spec, then gradually adding more complexity and finally growing the amount of other clients they could interoperate with.<\/p>\n<p class=\"chakra-text css-gi02ar\">The first milestone, M1, only required clients to implement the merge specification. It was completed by most teams prior to the workshop even starting! To help clients validate their implementation, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/notes.ethereum.org\/@9AeMAlpyQYaAAyuj47BzRw\/rkwW3ceVY\">several<\/a> &#8211; <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/consensus-specs\/releases\">testing<\/a> &#8211; <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/protolambda\/mergemock\">suites<\/a> were provided.<\/p>\n<p class=\"chakra-text css-gi02ar\">Then, milestones M2, M3 and M4 had client teams set up devnets with an increasing technical complexity and node diversity. M2 had execution layer (EL) and consensus layer (CL) teams pair one on one, and launch a post-merge devnet. This ensured that both layers could successfully communicate via the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/execution-apis\/blob\/main\/src\/engine\/interop\/specification.md\">Engine API<\/a> in a PoS context.<\/p>\n<p class=\"chakra-text css-gi02ar\">M3 is where the Amphora workshop moved a step beyond Rayonism: clients set up emphemeral devnets which ran through the PoW to PoS transition.<\/p>\n<p class=\"chakra-text css-gi02ar\">The transition is based on PoW difficulty: once a block&#8217;s difficulty equals or exceeds a specific value, called <span class=\"chakra-text css-ons8vw\">TERMINAL_TOTAL_DIFFICULTY<\/span>, or <span class=\"chakra-text css-ons8vw\">TTD<\/span>, it is considered the final PoW block. The execution layer then begins listening to the PoS consensus layer for new blocks. To ensure that each team&#8217;s implementation was robust, EL teams had to connect to two CL clients and vice-versa to pass M3.<\/p>\n<p class=\"chakra-text css-gi02ar\">M4 was the real target for the event: to get multiple EL &amp; CL clients on a devnet which went through the entire PoW to PoS transition. In other words, while M3 was about one-to-one devnets, M4 was about many-to-many.<\/p>\n<p class=\"chakra-text css-gi02ar\">We achieved this for a subset of the teams before the end of the workshop, so we then went for our stretch goal: M5.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"lasting-artifacts\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"lasting artifacts permalink\" href=\"#lasting-artifacts\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Lasting Artifacts<\/h3>\n<p class=\"chakra-text css-gi02ar\">This milestone aimed to turn Amphora from a short-lived event to long(er)-lived infrastructure that the community could use. M5 required client teams to start a devnet that would not only run through the entire transition with all client combinations, but that would persist beyond the Amphora event.<\/p>\n<p class=\"chakra-text css-gi02ar\">On the last day of the workshop, minutes before the final dinner was served, M5 was hit: a network of 10,000 validators across 100 nodes and several client implementations launched under PoW, reached the <span class=\"chakra-text css-ons8vw\">TERMINAL_TOTAL_DIFFICULTY<\/span>, transitioned to PoS, and successfully finalized the chain \ud83c\udf89!<\/p>\n<p class=\"chakra-text css-gi02ar\"><img decoding=\"async\" alt=\"\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/upload_8df27e4f68a6391c4baa2d87adf014e5.jpg\" class=\"chakra-image css-hw6q2r\"\/><\/p>\n<blockquote class=\"chakra-code css-gk0tva\">\n<p class=\"chakra-text css-gi02ar\">The M5 devnet successfully finalizes post-merge, minutes before the workshop&#8217;s closing dinner. Photo by Ben Edgington.<\/p>\n<\/blockquote>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"beyond-amphora\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"beyond amphora permalink\" href=\"#beyond-amphora\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Beyond Amphora<\/h2>\n<p class=\"chakra-text css-gi02ar\">Amphora&#8217;s success provides great momentum for The Merge. Client teams now have a <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/pm\/blob\/master\/Merge\/mainnet-readiness.md\">clear list of tasks<\/a> they need to work toward, and enough progress has been made to begin reaching out to a larger segment of the Ethereum community.<\/p>\n<p class=\"chakra-text css-gi02ar\">Yesterday, a more stable version of the M5 Amphora devnet, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/parithosh\/consensus-deployment-ansible\/blob\/master\/README.md\">Pithos<\/a>, was launched. Now that this network is live (explorer <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/pithos-explorer.ethdevops.io\/\">here<\/a>), expect public calls exploring how developer tools and other core Ethereum infrastructure can best prepare for the PoW to PoS transition.<\/p>\n<p class=\"chakra-text css-gi02ar\">Client teams and researchers will keep iterating on The Merge specification to fix issues identified during Amphora and respond to feedback from the community. Within a few weeks the spec should be finalized and, soon after, a new stable testnet made available.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"thank-you\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"thank you permalink\" href=\"#thank-you\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Thank you<\/h2>\n<p class=\"chakra-text css-gi02ar\">The work accomplished during Amphora exceeded all of our expectations. For this, we want to thank the client teams and researchers, without whom, none of the specifications would have been written or implemented.<\/p>\n<p class=\"chakra-text css-gi02ar\">Additionaly, thanks to <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/consensys.net\/blog\/ethereum-2-0\/an-update-on-the-merge-after-the-amphora-interop-event-in-greece\/\">ConsenSys<\/a>, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/medium.com\/chainsafe-systems\/a-lodestar-for-ethereum-consensus-1-c2ad6a7b46d9\">Chainsafe<\/a> and <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/hackmd.io\/@benjaminion\/wnie2_211008\">Ben Edgington<\/a> for their excellent coverage of the workshop.<\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/blog.ethereum.org\/en\/2021\/10\/15\/amphora-merge-milestone\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Earlier this year, the Rayonism hackathon kicked off to protoype the architecture for Ethereum&#8217;s transition to proof of stake. The transition, often refered to as The Merge, will keep the existing beacon chain (eth2) and execution layer (eth1) clients, and &#8220;merge&#8221; both chains by making the beacon chain drive the execution layer&#8217;s consensus. This approach [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":18091,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"tdm_status":"","tdm_grid_status":"","footnotes":""},"categories":[24],"tags":[],"kronos_expire_date":[],"class_list":["post-18090","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ethereum"],"_links":{"self":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts\/18090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/comments?post=18090"}],"version-history":[{"count":0,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts\/18090\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/media\/18091"}],"wp:attachment":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/media?parent=18090"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/categories?post=18090"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/tags?post=18090"},{"taxonomy":"kronos_expire_date","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/kronos_expire_date?post=18090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}