Ethereum 2.0 Development Update #34 — Prysmatic Labs

Terence Tsao
Sep 7, 2019 · 4 min read
Image for post
Image for post

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

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.

Image for post
Image for post

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.

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.

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.

Image for post
Image for post


Our team will be attending ETHBOSTON. Both Raul and Preston will be speaking, be sure to catch their talks & come say hi 👋

Mytchmatic (an ETH2 GUI) has been making great progress, be sure to keep up with the latest development!

Interested in Contributing?

Image for post
Image for post

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 :).

Check out our contributing guidelines and our open projects on Github. Each task and issue is grouped into the Phase 0 milestone along with a specific project it belongs to.

As always, follow us on Twitter or join our Discord server and let us know what you want to help with.

Official, Prysmatic Labs Ether Donation Address


Official, Prysmatic Labs ENS Name


Prysmatic Labs

Implementing Ethereum 2.0 - Full Proof of Stake + Sharding

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store