Written by Cayman Nava and Colin Schwarz
In August of 2019 the Lodestar team was awarded a grant by the Ethereum Foundation. The purpose of the grant is to drive the creation of accessible, world class developer tooling for Ethereum 2.0 and to advance research and development of eth2.0 light clients. The milestones of this grant include: build a prototype based on the eth2 light client spec, continue support for Lodestar’s SSZ and BLS, create a working version of SHA256 in AssemblyScript and finally, create eth2 support for providers and other dev tooling. Since receiving the grant, Lodestar has made major strides towards each of these milestones. This post seeks to outline our progress and forecast future development.
Light Client Research
Since September 2019, the Lodestar team has been doing research into how to best develop light clients for eth2. More recently, we started hosting a monthly “Light Client Task Force” call. The purpose of these calls is to bring the community together to discuss light clients and drive them towards use in production. Both calls have been a big success. The first was led by Lodestar tech lead Cayman Nava and featured a Q&A with Zsolt Felfoldi, researcher of eth1 light client server incentivization. The second call was also led by Cayman and focused on Merkle proof formats and proof negotiation. Here is a summary, transcript and recording for Call 1 and Call 2. Beyond organizing the calls, the Lodestar team has reviewed Protolambda’s eth2.0-ssz repo and published an update on prototyping Merkle proof tooling.
In the last several months Lodestar has also made serious advances for eth2 dev tooling. We have been steadily expanding the list of packages within the Lodestar ecosystem and currently host 22 individual packages. Here is a complete list of our Lodestar/eth2 repos. More recently, we have done significant work with BLS. This includes creating BLS libraries for EIP-2333, EIP-2334 and EIP-2335: bls-hd-key and bls-keystore. We have also done some initial work to create BLS keys from eth1 keys using the Metamask plugin. See metamask-eth2 for more on this. Finally, we recently integrated a Wasm build of Herumi’s BLS library into our core BLS library for a 40x speedup!
Since receiving the grant, we have continued to maintain and improve simpleserialize.com which is currently at 0.8.4 of the spec. We will update to 0.9.x when Lodestar’s 0.9.x branch is merged. Our current dev focus is to finish the Lodestar 0.9.x update and improve ecosystem documentation. We expect to complete both of these goals by the new year.
Finally, we have been doing some research and engagement with eth1. This includes communication with eth1 providers such as ethers.js ad web3.js and joining eth1 provider calls. We have also been researching the possibility of creating eth1 shims for eth2, an initiative driven by ChainSafe’s work on Ethermint. We determined that it is still a bit early for an eth2 provider so we will hold off on this until 2020.
Beyond primary focus to continue work on light clients and tooling, we will also be working to get our beacon chain ‘testnet-ready’. In order to join a testnet, Lodestar will need to complete spec updates (0.9.x and eventually 0.10.x), network updates (discv5 and libp2p upgrades), and chain optimization (merkle-tree-backed state, shuffling/committee caches). Given our current status we expect to be ready to join a testnet by mid Q1 of 2020 although this timeline is subject to change.