Eth2 Interop in Review
The Road to Interoperability: A Milestone in Eth2 Development
The past week has been a significant milestone in the development of Ethereum 2.0 (Eth2), with seven out of eight client teams successfully achieving pair-wise interoperability in a multi-client testnet. This achievement marks a major step forward in the journey towards a highly decentralized, yet scalable proof-of-stake blockchain.
A Brief History of Eth2
The concept of Eth2 has been in the works since before the original Ethereum network went live in 2015. Groundbreaking research was accomplished in parallel to the original chain, while the massive growth of the Ethereum community aided the initial adoption of decentralized applications. However, the road from these early breakthroughs to a highly decentralized, yet scalable proof-of-stake blockchain has been long.
Over the past 18 months, research has finally stabilized into a cohesive and complete vision for the coming major upgrades known as Eth2. As research moved into specifications toward the end of 2018, many teams from across the community stepped up to build out core implementations of the protocol. Since then, there has been a dynamic play between specification and implementation, with client teams working in relative isolation to build and test their implementations of the protocol.
The Interop Lock-in: A Week of Interoperability Work
In September, a group of client engineering teams gathered for a week of interoperability work, dubbed the "Interop Lock-in" or "Interop." The primary purpose of the event was to have each participating client achieve pair-wise interoperability with each other client in small test networks. Participating client teams included Artemis, Lighthouse, Lodestar, Harmony, Nimbus, Prysm, and Trinity.
Additional goals involved testing larger networks in both node count and validator count, networks with 3+ clients, enhancing tooling for monitoring and debugging Eth2 networks, and other fun tasks like getting raspberry pis running and building fork visualizers.
The Results: A Glimpse into the Highlights
By the end of the week, client teams far exceeded original expectations of having a few pair-wise networks, instead completing the entire pair-wise tests, building a small network of all 7 participating clients, and more. The following represent a glimpse into the highlights of the client successes, but is certainly not exhaustive:
- Multi-client testnets: All 7 participating clients achieved pair-wise interoperability, and although an 8th, Shasper, was not able to be in attendance, they have begun to work through this milestone as well.
- Larger testnets: Many larger testnets were formed between 3+ clients, 3+ nodes, and higher than minimal validator counts.
- All 7 clients in attendance were successfully run on a single network.
- Interoperable libp2p implementations: All participating languages' libp2p implementations are now interoperable after debugging some minor issues.
- Network debugging and tools: Some consensus errors between clients were identified, debugged, and recorded as portions of the state transition that require increased test coverage. Command line tools were built to better debug ssz objects and state transitions (zcli, pycli, and similar tools embedded within clients). Progress made on metrics dashboards, a fork visualizer, and other tools to better understand clients and networks.
- Clients packaged up into containers: Clients were packaged up into containers to perform large-scale network tests within the Whiteblock genesis platform.
- And then some: Client teams served as each other's first alpha users resulting in extensive build/run scripts and related documentation. Isolated load tests with Nimbus and Lighthouse handled 2000+ validators on a single machine paired with similarly full nodes over LAN. Multiple clients were built and tested on a small raspberry pi network.
What's Next for Client Teams and Eth2 Development?
The success of Interop marks a major inflection point for Eth2. There is still much work to accomplish before launch, but engineering efforts will increasingly be geared toward testnets, optimizations, and usability – work that begins to shift this software into the hands of users.
Benchmarks and optimizations will be a key focus, as well as test sync, stress test networks, public and incentivized testnets, third-party audits, and polishing the validator user experience.
Conclusion
The past week has been a significant milestone in the development of Ethereum 2.0, with seven out of eight client teams successfully achieving pair-wise interoperability in a multi-client testnet. This achievement marks a major step forward in the journey towards a highly decentralized, yet scalable proof-of-stake blockchain.
As we look to the future, it's clear that there is still much work to be done, but the progress made so far is a testament to the dedication and hard work of the client teams and the Ethereum community as a whole. With continued collaboration and innovation, we can look forward to a future where Ethereum 2.0 is a reality, and the benefits of a highly decentralized, yet scalable blockchain are available to all.
Source: https://blog.ethereum.org/en/2019/09/19/eth2-interop-in-review




