Welcome to this week's eth2 quick update!
- Parity's Shasper joins Prysmatic's Sapphire testnet (the first public eth2 multi-client testnet)!
- Multiple eth2 block explorers launch -- Bitfly's beaconcha.in and Etherscan
- First eth2 networking call to tackle all the networkings -- Ben's notes and Mamy's notes
- First eth2 phase2 community call to rally the effort
- Fix to ensure fork choice head state matches FFG finality info
- Presentation, specification, and implementation of the new BLS standards
Shasper joins Prysmatic's testnet
Parity's eth2 client, Shasper, successfully joined Prysmatic's Sapphire Testnet marking the first public multi-client eth2 testnet. This is the exciting start of many multi-client testnets to come in the next month.
You can now pull down the Shasper codebase and with a few commands, and connect to the Sapphire testnet. If you want to give it a shot, follow the instructions here.
Eth2 block explorers launch
Not one but two (!) eth2 block explorers recently launched. Both of these block explorers currently monitor Prysmatic Labs' Sapphire Testnet, providing slot-by-slot info as validators build the beacon chain.
Bitfly launched their beaconcha.in block explorer a couple of weeks ago and continue to add exciting features by the day. Etherscan just launched their block explorer yesterday, and it, too, looks packed with cool features and data. Both will be great options to monitor Prysmatic's and other testnets as they come online.
We're excited to see more and more user/developer tooling being built around eth2 clients and testnets :)
First eth2 networking call
Up until this point, we've relied upon github issues/pull-requests, adhoc chats, the main eth2 call, and in person meetings to organize the networking components of the eth2 spec. This has largely worked well enough, but researching and architecting a network to support a sharded blockchain protocol is an issue that increasingly deserves some more specific attention and resources.
To this end, we had our first eth2 networking-specific call this week. Although this call is not live-streamed like the general eth2 call, it is public and open to all contributors. Thank you to the p2p networking experts across the various eth2 teams that pushed for this call. I was originally resistant due to the additional coordination overhead, but the first call proved very fruitful and I look forward the next.
As always Ben Edgington (call notes) and Mamy Ratsimbazafy (call notes) took excellent notes. We still have plenty to dig into, and our next call will be in approximately 2 weeks time.
First eth2 phase 2 community call
Thank you Will Villanueva from the Quilt team for organizing the first eth2 phase2 community call. Similar to the new networking and light client calls, phase 2 has enough going on to warrant a regular call to keep the research and development more organized.
This first call acted as a general update and survey of the various on-going threads across the many teams and individuals involved. You can read up on the notes here. Subsequent calls are intended to be deeper work sessions on specific technical issues.
A major goal for Phase 2 is to get through the initial wave of stateless protocol research and to use the findings to narrow the scope into a more concrete plan to execute in 2020. These calls are an excellent step forward toward this goal.
Forkchoice state fix
Researchers at San Jose State University led by Yan X Zhang have been diligently working to formalize the joint properties of eth2's consensus mechanics (Casper FFG) and fork choice rule (LMD GHOST). Before publishing their work, they found a corner case in the interworkings of FFG+GHOST in which a branch of the block tree might include the latest justified/finalized blocks but not actually show those blocks as justified/finalized in the on-chain state. To leave such "non-viable" branches in the fork choice can lead to situations in which a validator's vote might not be coherent with local finality info and might, in certain scenarios, lead to liveness failures. You can read more about this particular scenario and the proposed solution here.
To address this scenario, we have a fix under review in the specs repo. We expect this fix to be released within the week.
Specification and implementation of the new BLS standards
The long-awaited BLS standards were recently presented for public comment at the IETF Meeting 106. You can check out the presentation and slides for yourself. The presentation went as planned and the standard is expected to be adopted by a number of blockchain projects and (eventually) into IETF. To more semi-officially enshrine this standard before the long IETF process finsihes, I expect the EF and many other projects to more officially announce intended usage soon.
There are two draft pull-requests ( ) under review in the specs repo, as well as an implementation of the new standard under review in py_ecc. Once review is complete, we will generate the new BLS test vectors for general consumption by eth2 clients. The intention is to switch testnets over to the modified BLS scheme come January.
The BLS standards also remove one of the final blockers for launching the eth2 deposit contract. Runtime Verification is currently finishing up their report on the formal verification and analysis of the deposit contract bytecode. This report is expected to be published by the end of the month for public review, after which we can finally launch this thing 🚀.