Eth 2.0 Dev Update #49 — “Multiclient Testnet + Security Audit”

Raul Jordan
Prysmatic Labs
Published in
5 min readMay 8, 2020

Our biweekly updates written by the entire Prysmatic Labs team on the Ethereum Serenity roadmap.

🆕 Eth2 Multiclient Testnet

Schlesi network more stable than anticipated, now with 3 clients

One of the most anticipated announcements in eth2 was that of a successful, multiclient testnet launching. In the past 2 weeks, the Schlesi testnet, composed of 50/50 Lighthouse and Prysm validators, was bootstrapped by Ethereum developer Afri Schoedon in a very exciting announcement. Even better, the Teku Java implementation of eth2 built by Consensys was able to successfully join Schlesi, giving us a three-pronged, real, public multiclient network! Although the network is small (around 20–25 peers) and only 240 validators, it is a huge achievement as it has performed better than expected.

https://eth2stats.io shows the Schlesi testnet

This sort of testnet is useful for client teams to perform rapid iteration and determine if there are any critical consensus bugs between clients. The plan was to restart Schlesi every week or as needed, but given it’s decent track record in terms of network liveness, it has been kept alive since genesis successfully. Expect even larger multiclient deployments over the coming weeks, with a more accurate validator count resembling mainnet itself.

Additionally, Bitfly’s block explorer now has native support for the Schlesi testnet which you can see here.

📝 Security Auditor Selected

Quantstamp selected as security auditor

In April, we put out a request for proposal for a comprehensive security review of our ETH2 client Prysm. We reviewed about 10 amazing proposals over the weeks following. It was difficult to choose a single vendor, but we were ultimately most excited about working with Quantstamp. What impressed us the most was their in depth proposal and detailed answers to our many questions as we vetted the various proposals. We believe that Quantstamp has an excellent team of Engineers that have ample experience in software security auditing, ETH2 domain knowledge, and golang quirks. We are considering a posterior security review in addition to Quantstamp’s final report as we understand the importance of a secure validating client for Phase 0 launch later this year.

📝 Merged Code, Pull Requests, and Issues

Native Windows Support

We know there may be users who wish to be a part of Topaz, but have no experience with command prompts or linux. Fear not, for community member pragmatics has made a Prysm GUI for Windows! It uses a new prysm.bat script that he contributed as well. If you’re interested, ask about it on our Discord or check out our docs for Windows. Thank you pragmatics! We appreciate your contributions!

More memory reductions

As we head towards mainnet. It’s important for the client itself to be mainnet ready. We have been monitoring memory usages and optimizing it when we see fit. Some of these memory issues don’t show up unless with a huge amount of validators. We have incorporated multiple optimization techniques to reduce memory usages since the last update. As we can see in #5778, #5760 and #5737. These reduce memory usages from initial syncing all the way to regular syncing. Please do let us know if you have any memory related issues.

Awesome validator dashboards from contributors!

If you don’t think watching the terminal to know how your validator is doing looks cool, thankfully there are 2 new grafana dashboards made by some community members! Metanull and Ocaa Grums have both made awesome grafana dashboards, utilizing grafana. If you’d like to check them out, run grafana and set your dashboard to point at https://localhost:8080 for its metrics.

Ocaas dashboard

Metanulls dashboard

Histograms for Block Network Propagation

We have added histogram metrics for beacon node sending and receiving beacon blocks. These metrics are added to better debug issues such as attestations miss vote, beacon nodes miss receiving blocks. These histograms have been key to address these issues and to conclude concise reports such as https://hackmd.io/dVbmIMHNQ6aby77g0-ME8A With these metrics, we can begin to study network propagation related issues.

🔜 Upcoming Work

Multiclient infrastructure and readiness

Although the multiclient Schlesi testnet is running successfully, we need ways of performing rapid experimentation on multiclient readiness with Prysm. That is, we want to be able to spin up short testnet runs with custom configurations between Prysm and Lighthouse to ensure we can meet the standards required for a public testnet restart. Currently, we operate the Topaz testnet, which is stable and going strong, however, it is not the target spec for multiclient. We have been working internally on revamping our testnet infrastructure to better support multiple clients, including the ability to run lighthouse in our cloud cluster alongside our nodes successfully. Having this new infra will accelerate the launch of a coordinated, multiclient testnet.

Slashing Protection Middleware

Our team member Shay has implemented a protection middleware for checking if a provided block or attestation could be considered slashable votes. This could allow for validator client set ups that use the slashers collection of validator voting history to keep a users validators safe. Very useful for anyone who is concerned about moving around validator setups or just keeping their validators safe!

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

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

0x9B984D5a03980D8dc0a24506c968465424c81DbE

Official, Prysmatic Labs ENS Name

prysmatic.eth

--

--