Update README
This commit is contained in:
parent
dc18765512
commit
2d23cd5b52
51
README.md
51
README.md
@ -1,20 +1,55 @@
|
||||
# Lighthouse
|
||||
# Lighthouse: an Ethereum 2.0-only client
|
||||
|
||||
[![Build Status](https://travis-ci.org/sigp/lighthouse.svg?branch=master)](https://travis-ci.org/sigp/lighthouse)
|
||||
|
||||
A **work-in-progress** implementation of the Ethereum beacon_chain in Rust.
|
||||
A **work-in-progress** implementation of the Ethereum 2.0 Beacon Chain in Rust.
|
||||
|
||||
It is an implementation of the [Full PoS Casper chain
|
||||
v2](https://notes.ethereum.org/SCIg8AH5SA-O4C1G1LYZHQ?view) spec and is also
|
||||
largely based upon the
|
||||
[ethereum/beacon_chain](https://github.com/ethereum/beacon_chain) repo.
|
||||
|
||||
Thanks to Parity for their excellent crates (e.g., RLP, ethereum_types).
|
||||
**NOTE: the cryptography libraries used in this implementation are very
|
||||
experimental and all cryptography should be assumed to be insecure.**
|
||||
|
||||
## Motivation
|
||||
|
||||
The objective of this project is to build a purely Ethereum 2.0 client from
|
||||
the ground up.
|
||||
|
||||
As such, the early days of Lighthouse will be very much a research effort -- it
|
||||
will be evolving on the bleeding-edge of specification without requiring to
|
||||
maintain prod-grade stability or backwards-compatibility for the existing PoW
|
||||
chain.
|
||||
|
||||
Whilst the Beacon Chain relies upon the PoW chain for block hashes, Lighthouse
|
||||
will need to run alongside an existing client (e.g., Geth, Parity Ethereum),
|
||||
only being able to stand by itself once the PoW chain has been deprecated.
|
||||
|
||||
Lighthouse aims to assist in advancing the progress of the following Ethereum
|
||||
technologies:
|
||||
|
||||
- Proof-of-Stake
|
||||
- Sharding
|
||||
- EVM alternatives (e.g., WASM)
|
||||
- Scalable, topic-based P2P networks (e.g., libp2p-gossipsub)
|
||||
- Scalable signature schemes (e.g, BLS aggregates)
|
||||
|
||||
## Progress
|
||||
|
||||
As of 02/08/2018, there is a basic libp2p implementation alongside a series of
|
||||
state objects and state transition functions. There are no syncing capabilities.
|
||||
|
||||
### Roadmap
|
||||
|
||||
- [ ] Upgrade to the v2.1 spec.
|
||||
- [ ] Implement local storage (e.g., RocksDB, LevelDB).
|
||||
- [ ] Implement a syncing procedure.
|
||||
- [ ] Align to whichever P2P spec is chosen for the Beacon Chain by the EF.
|
||||
- [ ] Provide validation services (participate in consensus)
|
||||
|
||||
## Usage
|
||||
|
||||
Presently this is proof-of-concept without p2p or any functionality you'd
|
||||
expect from Parity or Geth.
|
||||
You can run the tests like this:
|
||||
|
||||
```
|
||||
@ -30,9 +65,3 @@ project.
|
||||
|
||||
Best place for discussion is probably the [ethereum/sharding
|
||||
gitter](https://gitter.im/ethereum/sharding).
|
||||
|
||||
## TODO:
|
||||
|
||||
- [X] Implement state transitions up-to-par with the Python reference implementation.
|
||||
- [ ] Ensure bls library is secure.
|
||||
- [ ] Implement aggregate pub keys for BLS.
|
||||
|
Loading…
Reference in New Issue
Block a user