Written by Antoine, Rene, Daniel and Trent
In the second week of September, the ETH2 implementer teams met in Canada for the “Interop Lock-In”. This was a significant event in pushing the roadmap forward, with the end result being that all 7 client teams in attendance achieved interoperability. Check out detailed summaries from a few of the other teams:
- Ethereum Foundation Blog: ETH2 Interop in Review
- Prysmatic: Development Update #35
- Chainsafe: Lodestar Post-Interop Update
- Consensys, Ben Edgington: How 30+ ETH 2.0 Devs Locked Themselves in to Achieve Interoperability
Antoine Toulme, Rene Lubov, and Daniel Choi were in attendance representing Whiteblock. We are very proud of what this collaborative effort was able to produce in a short time period, and anticipating continued progress in the near future. Thanks to Consensys for sponsoring and Joseph DeLong for organizing a great week.
Goals and Outcomes
We went in with a list of goals that we wanted to hit. Central to this was getting individual clients to work properly within Genesis, our testing platform for distributed systems that allows the simulation of real-world network conditions and scenarios.
To accomplish this, we asked all client teams to write a simple bash script capable of starting up their clients and passing in five parameters:
- identity of the node
- port to listen on
- nodes to peer with
- genesis state ssz file
- validator keys yaml file
Once clients were ready to go, we were able to kickstart test networks in Genesis. Check out the testing methodology + instruction we developed during the week.
We had some issues with variations in private key formatting, file paths, working with outdated docker images or alpine-based images, and debugging. This last one due in no small part to the limited internet, but we pushed through.
At the end of the week, we were able to dockerize and build / append nodes in an agnostic environment. Prysm, Lighthouse, Harmony, and Trinity successfully peered with themselves in the platform. On top of that, these same clients peered with each other and started gossiping blocks and attestations, which was an awesome milestone to hit.
We will continue working with client teams towards a successful 9-client testnet. Once short lived interop testnets are stable, our engineer team will iterate towards larger scale testnets, hosted through Genesis. This allows us to introduce impairments like latency, bandwidth, packet loss and more to fully stress test the clients. Stay on the look-out for an external roadmap in the next few weeks.
We’ve continued our work towards in-depth analyses of gossipsub, the pubsub protocol used in Libp2p. This includes preparing how to test gossipsub per client, and trying to find any optimisations.
Rene, Antoine and Trent will be at DevCon in Osaka! We’re looking forward to meeting many of you in person. Rene and Antoine will be sharing a talk called “Networking in ETH2.0” on day four. Find the specifics and more talks at the DevCon agenda.
Work continues on the joint grant we received from Consensys and the Ethereum Foundation. Here is the initial announcement and the first update.