Lodestar Update: November 2020

Ben Adar
ChainSafe
Published in
3 min readNov 17, 2020

--

This article was co-authored by Cayman Nava & Colin Schwarz

As we shared in our last update, the Lodestar team has been focused on taking the final steps towards having a stable Beacon node and validator client. We are very excited to share that this past month, we were able to maintain a stable beacon node on the Zinken testnet. There is a little more work to be done before we consider our implementation to be completely stable but we are getting very close! In addition to this important milestone, there are many smaller items which are in progress and completed.

Our Progress

This past month, we were able to finally achieve relative stability in our Beacon node. For the Zinken testnet launch, we ran a Beacon node with 4 validators. The Beacon node performed successfully, tracking the head over several weeks. We have also been able to stay synced to the Medalla testnet for several hours although there are a few improvements that we can still make here. On the other hand, our validators have not been successful, missing all attestations and proposals due to misconfigured keys. We plan to continue work here until we are able to successfully run a validator client on a public testnet.

The team has also made large strides in several other areas this past month. One area of progress is networking. We have merged several updates to js-libp2p to allow for pubsub “signing policies”. Signing policies allow libp2p consumers to configure gossiped messages to either _always_ include a signature, or _always not_ include a signature, dropping messages that do not comply. Since the eth2 spec requires clients to never sign messages, this update is crucial for allowing Lodestar to accept and publish messages over the network. Some work remains to push this downstream to Lodestar.

We’ve also implemented a more robust validator slashing protection, as well as slashing protection import/export. Anyone who wants to stake using Lodestar can start doing so with one client and, if they wish to, they can export their validator and import this into Lodestar without getting slashed. Likewise, a staker starting off using Lodestar can export their validator to a different client without fear of being slashed.

We’ve been working on a few internally-facing items as well. One source of pain has been our CI (continuous integration) tests, which were rather slow and unstable. We ran a large suite of unit tests, end-to-end tests, testnet simulation tests, and spec tests, which averaged upwards of 20 minutes to complete. We’ve just reorganized these tests to be run in parallel and reduced the total time to 8 minutes — a significant increase in speed that will help our team move faster towards our goals.

Another exciting development is a comprehensive rework of Lodestar’s docker setup. We now have a docker-compose file which is configured to start both Prometheus and Grafana alongside a Lodestar beacon node. This setup allows for a one-click Lodestar installation with user-friendly graphs and a detailed analysis of the chain. This gives the team and users an inside look at how the chain is performing.

What’s Next

Our next step is to publish a new release of Lodestar, the first release with a stable beacon node. We are currently working to merge all work currently in feature branches into our master branch. The biggest outstanding item is the recent pubsub/gossipsub update.

Other upcoming items include a BLST integration and an upgrade to Discv5.1.

How To Get Involved!

Keep up with our github, discord, twitter, and hackmd to be on top of Lodestar’s latest developments. We’re always eager to expand our team and collaborate with other open-source projects. Reach out if you’re interested in expanding the eth2 typescript ecosystem and bringing eth2 to the web!

--

--