Lodestar Bi-weekly Update #1

Authored by Mikerah
ChainSafe Systems' bi-weekly update on the development of our JavaScript/TypeScript ETH2.0 client, Lodestar. This week's update was written by Mikerah and Greg.

Updates

Development

As always, the spec is always changing and for some members of the team, this can be quite demanding. It was decided that in order to minimize the time spent on the many changes that occur in the spec, we will be "snapshotting" the spec and then make updates to lodestar. This will allow us to work on the supporting libraries such as bls-js, gossipsub-js, fixed-sized-numbers-ts and ssz-js.

Lodestar

We're on track to having all the transition helpers and data types finished (there's a PR waiting) and have begun setting up the main functionality for importing and running Lodestar in the browser.

Fixed-sized-numbers-ts

We're in the process of looking into switching from a function, to class based approach, but if you're in need for fixed sized integers in TypeScript feel free to use it as is!

Gossipsub-js

We recently started exploring the p2p layer with Gossipsub-js, which we have found is missing a few features. Look out for several contributions to some JS libp2p libraries (Yay!, open source projects supporting other open source projects)!

Simple Serialize

It is fully implemented so feel free to use it on any project, even if it's non Ethereum related.

BLS-JS

We are currently working on implementing helper functions used in the core bls_verify functions.

Research

We began contributing to validator privacy at the p2p level. Here's an issue from Jannik about validator privacy. Others have chimed in to give different perspectives on how to tackle different facets of validator privacy. Nicholas, from Pegasys R&D, gave an overview of using an onion router for validator privacy without using Tor/I2P. The conclusion is that it might be a good idea to join an existing anonymity network like Tor/I2P. The main issue with doing this is that integrating Tor/I2P support is a non-trivial engineering effort and has taken other cryptocurrency projects, such as Monero, several years to properly do so. I chimed in and posted an unstructured issue on adapting Dandelion++ for ETH2.0 . Dandelion++ is in the process of being deployed in Bitcoin Core and a variant is currently deployed in Grin. The reason with considering Dandelion++ is due to its lightweight nature and that it can be integrated to the network at a later date, perhaps through an EIP. It wouldn't require several years of engineering effort to add it into the Ethereum network. However, it doesn't come with the strong anonymity guarantees as Tor. You can read the post here.

As for forecasting Gini coefficients in ETH2.0, there has been slow progress. It turns out that very little work has been done in the past for analysing wealth in Proof-of-Stake systems. If you know of any papers that are relevant, please let me know! I am also in the process of thinking about how to model the issuance of ETH in order to do simulations. The model needs to be realistic enough so that it can start meaningful discussions in the community but not overly complicated. If you have any thoughts, again, please let me know!

Interested in Contributing?

We all know you want to!

Here are some issues to help you get started:

  • Tests for the message cache data structure in gossipsub: #3

  • Making sure milagro-crypto-js formats G1 and G2 points correctly in order to conform to the ETH2.0 specifications: #5

  • Add integer division to fixed-sized-numbers-ts: #14

You can also go through our various repositories' issues tracker to find other issues that might be of interest to you. We try to make these as easy and straightforward as possible so that you become one of our beloved contributors. If you want to get your hands a little more dirty, you can tackle issues that are not marked with the Good First Issue tag. These issues are probably hard in some way for us too. Any help with these is greatly appreciated! All of our repositories have contributing guidelines. For more info, you can check out Sharding repo with everything you need to know to get involved.

As always, you can follow ChainSafe on Twitter and check out our Lodestar Gitter channel.

Donations

We are a group of open source developers seeking to improve the Ethereum ecosystem through all of our projects. All of our open source work is fully funded by grants and donations by the Ethereum community. If you are interested in giving a one time donation, you can send ETH or DAI to our address: 0x3990a27b2dA3612727dD3A9cf877C94465C32776. If you are interested in continuously supporting us, you can donate through Gitcoin's subcription based grants program and pay in any token you like.