Lodestar Bi-weekly update #2

Authored by Mikerah
ChainSafe Systems' bi-weekly update on the development of our JavaScript/TypeScript ETH2.0 client, Lodestar. This update was written by Mikerah & Gregory, and edited by Amer Ameen.

ETHDenver

Come say ‘Hi' if you're at ETHDenver! We're wearing hoodies and shirts with the bright yellow ChainSafe logo. (look out for an infra hack!)

Development Updates

Numbers, numbers, numbers...

After many discussions within the Lodestar team (and some discussions with other ETH2.0 implementers), we have decided that our fixed-sized-number-ts library does not accomplish what we aimed for. Rather we will be using javascripts built-in number for everything up-to 2⁵³- 1 and everything larger will be using BN-JS. We're still open to optimizations, so feel free to message us on gitter.

Lodestar

Since the first official release of the spec, we have been diligently working on updating the Lodestar codebase. Almost all of the necessary helper functions are complete and the test suite is progressing well. We have started architecting the state transition functions, which will be well underway after ETHDenver. If you're interested in contributing, we've listed open issues below that we would love your help with.

BLS-JS

In terms of bls-js, we are still working on ensuring that the milagro-crypo-js library conforms to the ETH2.0 BLS specification. If this is in your area of expertise, then feel free to reach out.

SSZ-JS

We have also cut a new release of ssz-js. You can install it using npm and use it in your projects.

JS-LibP2P

We have also completed an initial version of gossipsub (it's sitting in a PR). Vasco from the js-libp2p has given us tremendous feedback on how to improve. We will be writing tests for gossipsub. If you would like to contribute, do reach out.

Fixed-Size-Number-ts

Deprecated.

Testnet Expectations

As testnet season for Serenity looms in, we want to let the community know what our deliverables will be.

First, we will be running a local test network to battletest our code and iron out bugs. This will consists of running several Lodestar clients, both on machines and in browsers (maybe even mobile browsers). We will setting up tools so that community members can analyze how our network is running. However, not everyone will be able to participate in this first step.

Second, after we are confident that major bugs have been removed, we will be deploying a public testnet. Again, this testnet will only be for Lodestar clients. This will enable us to make sure that our stack can handle live network conditions and engage the community for feedback for improvements that can be made.

Third, we expect that by the time that our first two testnet phases are completed, there will be sufficient state and networking interoperability tests in order for other implementation teams to start coordinating a multi-client testnet. This will most likely be a private test network among client developers. We will, again, set up tools so that the community can monitor this network but not everyone will be allowed to have a node.

We expect the first phase to start in March and end in May/June. The second phase will likely last until September. The last phase will require coordination among other implementation teams and probably won't start until the end of the year.

Later phases will potentially include a public multi-client testnet and the eventual deployment of the beacon chain network for Ethereum. We don't know ourselves the deadlines for these phases as it is always possible that we find significant issues with the beacon chain design.

Interested in Contributing?

We all know you want to!

Here are some issues to help you get started:

  • Tests for state transition helpers: #87

  • Complete helper functions: #86

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.