Our biweekly updates written by the entire Prysmatic Labs team on the Ethereum 2.0 roadmap.
Interoperability Lock-In Event for Client Teams
We are beyond excited to be attending the up-coming interop retreat hosted by the lovely folks at Consensys. The event was proposed back in May during the ETHNY ETH2 meet up. The purpose of the event was for all the client implementers to get together to try plugging their implementations together.
Since May, all the client implementers have been working towards this goal by passing spec conformance tests, ironing out the design spec for the networking stack and discussing strategies for quick chain start plus eth1 related mocks. Lots of great surveys were passed around to ensure clients are aligned with the same goals in mind. Check out the goals and the exercises documented here.
Merged Code, Pull Requests, and Issues
Prysm preparations for client interoperability
In preparation for the interop event, lots of teams have put together guidelines for how to quickly and easily set up their node for multiclient testing. A big part of this setup is ensuring we have consistency across clients and can reach consensus without a problem. To do this, we must ensure launching a node is deterministic and that we properly mock the more unpredictable parts of the runtime, such as the latest eth1 proof-of-work chain block hash as the beacon chain runs.
The ETH2 research team has put together a guide for interoperability mocked starts here, where they outline a deterministic algorithm for generating private keys, tips and guidelines for clients to launch their nodes from a standard genesis, and more. In Prysm, we integrated the suggestions from the doc and have a tool that can create the standard genesis state in a PR here. Checkout our in-progress interop documentation.
P2P Discovery v5 Integrated Into Prysm
We are currently in the process of updating our discovery V5 version to what is represented in the current spec. Unfortunately the previous version we had integrated was an early prototype which turned out to be quite different from what is currently defined in the discovery v5 spec. A few of the main differences from the earlier prototype are the explicit use of ENRs to relay node capabilities and the simpler core logic for handling the different request types, ex: PING,FINDNODE,etc. The current version enables us to better integrate this into our networking stack by giving better control of configurability while also simplifying the logic of the core protocol. We are currently integrating the discovery V5 version from this branch, which is being actively worked on by Felix from the Geth Team. The PR to update this in Prysm is being worked on over here.
Initial Sync Completed
With the new networking protocol, we’ve redesigned our initial network sync. Initially, we have a naive implementation for interoperability testing where the node chooses a single peer to sync from genesis block. The production/mainnet design is to utilize a multi-peer sync model where peers are asked to serve a subset of blocks in round robin rotation. As we get closer to launch of phase 0, Prysm will begin to support syncing from the start of the weak subjectivity period of 9 months.
Revamped Prysm Runtime to Spec v0.8.1
The past few weeks of work have been stellar for our project. We now have completely revamped our nodes with the brand new, standardized p2p networking protocol, better sync, better tooling for metrics collection and debugging, and a massive array of bugs squashed. We now foresee our Eth2 testnets to be a lot more robust, longer lived, and capable of supporting use cases closer to the real thing we’ll see in production for phase 0. We love deleting code, because that just means we can do more with less. Eliminating clutter and deprecated items makes for a more robust, readable, and maintainable codebase that is also less bug-prone. You can check out all of our changes in our mega PR here.
Prysmatic Labs Going to ETHBOSTON
Our team will be attending ETHBOSTON. Both Raul and Preston will be speaking, be sure to catch their talks & come say hi 👋
Mytchmatic Making Great Progress
Mytchmatic (an ETH2 GUI) has been making great progress, be sure to keep up with the latest development!
Interested in Contributing?
We are always looking for devs interested in helping us out. If you know Go or Solidity and want to contribute to the forefront of research on Ethereum, please drop us a line and we’d be more than happy to help onboard you :).
Official, Prysmatic Labs Ether Donation Address
Official, Prysmatic Labs ENS Name