🦏 Medalla Goes Live — Issue No. 106
/On Tuesday, August 4th, the Medalla ETH 2.0 testnet was launched. If all goes well, this will be the final testnet before the launch of the “Phase 0” mainnet. Link.
The testnet has already helped surface some important issues, and will likely continue to do so. It’s expected the testnet will run for a minimum of 2 months before a schedule for mainnet is proposed.
In this edition of Build Blockchain, we’ll discuss the Medalla launch and what makes it significant, look at some of the issues it’s already helped uncover, and touch on what this means for the timeline of ETH 2.0’s launch and the future of Ethereum in general.
Live and Launched
To kickoff the Medalla launch, the Ethereum Foundation hosted a livestream that nearly 2,000 people attended. It's impressive that so many folks would watch something as seemingly boring as the launch of a test network, and it demonstrates the level of enthusiasm in the Ethereum community for ETH 2.0. Link.The interest in the launch is also a testament to the work done by the Foundation in making it easy to participate. The ETH 2.0 launchpad tool made it simple to configure and run your own validators, and there were over 20,000 signed up to do so on day one. Link.
Unfortunately, due to some minor snafus in some of the clients, the network did not have the required 60% quorum to begin finalizing blocks immediately. Some made a big deal of this issue, but it really wasn't one. Testnets exist precisely to work through these kinds of issues. After about 40 minutes, the network reached the required threshold and began producing blocks.
Prysm has a Roughtime
The Medalla testnet is multi-client, meaning different implementations of the protocol can interoperate on the network. This is much harder than it sounds, and it's quite impressive that five different node implementations— written by different teams in different programming languages— are all functioning together on the same network.That said, it seems that the Prysm client, built by Prysmatic Labs, is an early candidate to be the dominant implementation. At the time of this writing, some 70% of nodes on the network seem to be running that software. Link.
Having lots of clients is good, but if the network doesn't actually have client diversity, it can still have issues. In fact, earlier in the week, the Prysm client experienced an issue that temporarily caused nodes running it to produce invalid blocks. Because of the client's dominance on the network, the entire testnet was unable to finalize blocks for some time.
The issue turned out to be related to the "Roughtime" service provided by Cloudflare. The Prysm client uses it to make sure its local clock is in sync with the wider world— an important factor in a protocol where nodes are required to respond to messages in certain time windows. Well, it seems Cloudflare had some issues, and the service was returning erroneous timestamps.
The Prysm developers had prepared for a failure of the Roughtime service, and when it began reporting incorrect times, the Prysm client was supposed to have a fallback function. But the fallback failed. As a result, all Prysm clients began producing blocks from the future, which were deemed invalid by other participants on the network. Link.
This issue is a great example of the kind of problems a testnet can help sniff out. In addition to this network disruption, a number of smaller issues have also been uncovered and fixed by the various client implementors.
ETH 2 vs L2
If Medalla continues to operate successfully for the next couple of months— surfacing issues that can be fixed in a straightforward manner, without uncovering any showstoppers— the core developers say they'll be ready to schedule a date for the mainnet launch.
While that's exciting, it's also important to put things in context. At the beginning of this year, I listed the first phase of Ethereum 2.0 as one of the four major crypto projects that had to launch in my "2020 Crypto Must Ship List" edition. Will the project make it? Link.
It's going to be close, and that's somewhat surprising. When I wrote the aforementioned issue, some thought Phase 0 might ship in the first quarter! My guess was that we'd see it launch Q3, which seemed pessimistic at the time. It turns out, even I was being optimistic. It's a great example of Hofstadter's Law: "It always takes longer than you expect, even when you take into account Hofstadter's Law." Link.
It's also important to remember that the initial version of the ETH 2.0 network will be extremely limited. It will allow staking, but nothing else: no smart contracts and no transacting, not even returning funds to the 1.0 network. It certainly won't help alleviate Ethereum's gas fees, which have been at sustained record highs for several weeks now.
That means a functionally useful Ethereum 2.0 is (optimistically) a couple of years away. In the meantime, a number of teams are racing to bring useful layer 2 solutions to Ethereum. Several zkRollup constructions, like Loopring and zkSync, are already live, and allow for basic transacting. Several more optimistic rollup platforms, which will allow smart contract execution, are expected to follow soon. A number of high profile dApps have said they'll be migrating to layer 2 as soon as they can.
This makes me wonder if we won't see some tension on the horizon between Ethereum 2.0, and Ethereum 1.0 with a layer 2 ecosystem. If the latter is thriving by the time ETH 2.0 is ready, I won't be surprised if some in the community wonder if the upgrade is worth the risk. This seems especially likely given the amount of money now at stake in DeFi, and the inherent riskiness that comes with upgrading to a new, unproven Proof-of-Stake consensus algorithm.
To be clear, this is a good problem for Ethereum to have. The amount of experimentation and research happening on and around the platform is incredible. I struggle to keep up with it all. The Medalla testnet is the latest indicator of continued progress. Get your popcorn ready. One way or the other, the future is going to be exciting.