From 6fac35a7c51f3b16c4b9ac240b5ada19ecbb1298 Mon Sep 17 00:00:00 2001 From: Paul Hauner Date: Fri, 1 Mar 2019 00:18:53 +1100 Subject: [PATCH] Update main readme, add eth2/ readme --- README.md | 13 +++++++++++++ eth2/README.md | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 eth2/README.md diff --git a/README.md b/README.md index 7759c1166..e3df9c19c 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,19 @@ If you'd like some background on Sigma Prime, please see the [Lighthouse Update \#00](https://lighthouse.sigmaprime.io/update-00.html) blog post or the [company website](https://sigmaprime.io). +### Directory Structure + +- [`/beacon_node`](beacon_node/): the "Beacon Node" binary and crates exclusively + associated with it. +- [`/docs`](docs/): documentation related to the repository. This include contributor + guides, etc. Code documentation is produced with `cargo doc`. +- [`/eth2`](eth2/): Crates containing common logic across the Lighthouse project. For + example; Ethereum 2.0 types (`BeaconBlock`, `BeaconState`, etc) and + SimpleSerialize (SSZ). +- [`/protos`](protos/): protobuf/gRPC definitions common across the Lighthouse project. +- [`/validator_client`](validator_client/): the "Validator Client" binary and crates exclusively + associated with it. + ### Components The following list describes some of the components actively under development diff --git a/eth2/README.md b/eth2/README.md new file mode 100644 index 000000000..a96c1b9df --- /dev/null +++ b/eth2/README.md @@ -0,0 +1,40 @@ +# eth2 + +Rust crates containing logic common across the Lighthouse project. + +## Per-Crate Summary + +- [`attester/`](attester/): Core logic for attesting to beacon and shard blocks. +- [`block_proposer/`](block_proposer/): Core logic for proposing beacon blocks. +- [`fork_choice/`](fork_choice/): A collection of fork-choice algorithms for + the Beacon Chain. +- [`state_processing/`](state_processing/): Provides per-slot, per-block and + per-epoch state processing. +- [`types/`](types/): Defines base Ethereum 2.0 types (e.g., `BeaconBlock`, + `BeaconState`, etc). +- [`utils/`](utils/): + - [`bls`](utils/bls/): A wrapper around some external BLS encryption library. + - [`boolean-bitfield`](utils/boolean-bitfield/): Provides an expandable Vec + of bools, specifically for use in Eth2. + - [`fisher-yates-shuffle`](utils/fisher-yates-shuffle/): shuffles a list + pseudo-randomly. + - [`hashing`](utils/hashing/): Provides unified hashing methods, provided + be some external library. + - [`honey-badger-split`](utils/honey-badger-split/): Splits a list in `n` + parts without giving AF about the length of the list, `n` or anything + else. + - [`int-to-bytes`](utils/int-to-bytes/): Simple library which converts ints + into byte-strings of various lengths. + - [`slot_clock`](utils/slot_clock/): translates the system time into Beacon + - Chain "slots". Also + provides another slot clock that's useful during testing. + - [`ssz`](utils/ssz/): an implementation of the SimpleSerialize + - serialization/deserialization + protocol used by + Eth 2.0. + - [`ssz_derive`](utils/ssz_derive/): provides procedural macros for + deriving SSZ `Encodable`, `Decodable` and `TreeHash` methods. + - [`swap_or_not_shuffle`](utils/swap_or_not_shuffle/): a list-shuffling + method which is slow, but allows for shuffling a subset of indices. + - [`test_random_derive`](utils/test_random_derive/): provides procedural + macros for deriving the `TestRandom` trait defined in `types`.