implementation of the beacon chain in JavaScript
Clone or download

README.md

ChainSafe ETH2.0 Projects

Note: There is a lot of work being done that are core infrastructural pieces for Eth2.0. Contributions to any of the below repositories would be greatly appreciated. All the libraries are written in TypeScript (or in the process of being converted from pure JS to TypeScript):
-- PM / Meta Repo
|-- Beacon Chain
|-- Simple Serialize (SSZ)
|-- Fixed Size Numbers
|-- BLS Singatures and Signature Aggregation
|-- Gossipsub

Build Status Join the chat at https://gitter.im/chainsafe/lodestar

Overview

The goal of this repository is to provide an implementation of the beacon chain. As even the Ethereum Core dev team don't know how the finalized beacon chain will be implemented, this is our contribution to the effort to transitioning Ethereum from a PoW blockchain to a PoS blockchain.

This is currently a work in progress and you can ask questions and contribute in our gitter.

Our current file structure is:

lodestar/
-- beaconChain/  # Non-solidity components
-- solidity/     # Contracts, truffle project

What you need

You will need to go over the specification. You will also need to have a basic understanding of sharding. Note that that the specification is an ongoing document and will get outdated. The reference implementation by the Ethereum development team is written in Python and can be found here.

Run

  1. cd beaconChain
  2. npm install
  3. npm test

Note about tests

For solidity/ you will need to ensure that there is a terminal window with ganache-cli running to execute the tests. Ensure the dependencies are installed then run truffle test.

For beaconChain/ you can run npm test after installing dependencies.

Contributors

If you would like to contribute, please submit an issue or talk to us on our gitter.

Donations

We are a local group of Toronto open source developers. As such, all of our open source work is funded by grants. We all take the time out of our hectic lives to contribute to the Ethereum ecosystem. If you want to donate, you can send us ETH at the following address: 0x3990a27b2dA3612727dD3A9cf877C94465C32776