Lodestar Update
Authored by Colin Schwarz
August 1–15, 2019
The Lodestar team is excited to provide another update on our recent work. Over the last two weeks, we have made some important progress and have officially welcomed a new member to our team. Our newest member Eric Tu, previously working at Infura, will be researching AssemblyScript integrations, and he is excited to begin contributing to the Lodestar ecosystem full time! In the past week, he has already implemented SHA256 in AS (details below)!
Spec Updates
Since our last update, not much has changed with the specs. The v0.8.2 spec tests have been released, along with a new format for the spec tests, which are now split up into individual files. We're rebuilding our test harnesses to support the new format (rewriting our eth2.0-spec-test-util library in typescript), and will be supporting the v0.8.2 tests once they're ready. The libp2p networking spec has also settled, and we will tackle that in the coming weeks.
Technical Progress
Over the last two weeks, we have been organizing our ‘monorepo' into a more coherent, consistent structure. Last week, we merged our SSZ and BLS libraries into our Lodestar monorepo, and we merged our eth2.0-spec-test-util library this week. This will pave the way for refactoring the spec tests so we can run them across all our packages at once.
Another area in which we have made progress is that of node discovery, with our Discv5 implementation. We have been closing a lot of issues in that repo and making rapid progress. We have decided to use the Milagro Crypto library for the necessary cryptography. We've forked Milagro to add typescript types, and have almost completed the discv5 session management.
We have also made progress converting components that we require for Lodestar into AssemblyScript. This is intended to enable very fast clients in browser. One of the main things that we are converting is SSZ which uses SHA256. To this end, we finished our first implementation of SHA256 in AssemblyScript just a few days ago, and are now working on optimization.
Collaborations
One of our primary focuses over the last two weeks has been to make contributing to Lodestar as easy and intuitive as possible. Most of us currently working on Lodestar came to the project organically, and we are working on it because we are excited to be part of and contribute to this fascinating ecosystem as it continues to grow and evolve. We have been working on upgrading our introductory pages and other documentation to make it as easy as possible for anyone interested to check out and contribute to the project. Specifically, we have revamped our CONTRIBUTING document, now including a style guide and up-to-date information, and our monorepo's README. We have also set up an auto-publishing documentation system for all of the lodestar packages, links available on Github.
Future Direction
We now have most of the major elements of the beacon chain and validator clients in place. Some of our focus moving forward will be on building out a testnet and on "productionizing" lodestar. However, our most important future work will be on light client research and development, for which we recently received a grant from MolochDao. We have already began to research various possibilities for this important part of the the Ethereum ecosystem and hope to begin building on this by September. Our work on the remainder of the Lodestar project will now focus on things that will be useful for both full and light client work, such as networking.
Feel free to hop on our Discord Channel to join the conversation and see how you can get involved!