From 6fac35a7c51f3b16c4b9ac240b5ada19ecbb1298 Mon Sep 17 00:00:00 2001 From: Paul Hauner Date: Fri, 1 Mar 2019 00:18:53 +1100 Subject: [PATCH 1/3] 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`. From 8842adb53b97c859eac1ea3bf80ee98ade976d3a Mon Sep 17 00:00:00 2001 From: Paul Hauner Date: Fri, 1 Mar 2019 00:25:11 +1100 Subject: [PATCH 2/3] Fix typos in READMEs --- README.md | 24 +++++++----------------- eth2/README.md | 17 +++++++---------- 2 files changed, 14 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index e3df9c19c..c26dae219 100644 --- a/README.md +++ b/README.md @@ -31,15 +31,15 @@ If you'd like some background on Sigma Prime, please see the [Lighthouse Update ### Directory Structure -- [`/beacon_node`](beacon_node/): the "Beacon Node" binary and crates exclusively +- [`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 +- [`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`](eth2/types/src/beacon_block.rs), [`BeaconState`](eth2/types/src/beacon_state.rs), 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 +- [`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 @@ -92,16 +92,6 @@ In addition to these components we are also working on database schemas, RPC frameworks, specification development, database optimizations (e.g., bloom-filters), and tons of other interesting stuff (at least we think so). -### Directory Structure - -Here we provide an overview of the directory structure: - -- `beacon_chain/`: contains logic derived directly from the specification. - E.g., shuffling algorithms, state transition logic and structs, block -validation, BLS crypto, etc. -- `lighthouse/`: contains logic specific to this client implementation. E.g., - CLI parsing, RPC end-points, databases, etc. - ### Running **NOTE: The cryptography libraries used in this implementation are diff --git a/eth2/README.md b/eth2/README.md index a96c1b9df..e7b69635a 100644 --- a/eth2/README.md +++ b/eth2/README.md @@ -1,4 +1,4 @@ -# eth2 +# Ethereum 2.0 Common Crates Rust crates containing logic common across the Lighthouse project. @@ -13,25 +13,22 @@ Rust crates containing logic common across the Lighthouse project. - [`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. + - [`bls`](utils/bls/): A wrapper around an 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. + - [`hashing`](utils/hashing/): A wrapper around external hashing libraries. - [`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. + 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 From 3753782c40187d06df310730f773acfef916d5fa Mon Sep 17 00:00:00 2001 From: Luke Anderson Date: Fri, 1 Mar 2019 13:10:50 +1100 Subject: [PATCH 3/3] Just some small gramatical improvements on READMEs --- README.md | 8 ++++---- eth2/README.md | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c26dae219..8552d64ee 100644 --- a/README.md +++ b/README.md @@ -33,12 +33,12 @@ If you'd like some background on Sigma Prime, please see the [Lighthouse Update - [`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`). +- [`docs/`](docs/): documentation related to the repository. This includes contributor + guides, etc. (It does not include code documentation, which can be produced with `cargo doc`). - [`eth2/`](eth2/): Crates containing common logic across the Lighthouse project. For - example; Ethereum 2.0 types ([`BeaconBlock`](eth2/types/src/beacon_block.rs), [`BeaconState`](eth2/types/src/beacon_state.rs), etc) and + example: Ethereum 2.0 types ([`BeaconBlock`](eth2/types/src/beacon_block.rs), [`BeaconState`](eth2/types/src/beacon_state.rs), etc) and SimpleSerialize (SSZ). -- [`protos/`](protos/): protobuf/gRPC definitions common across the Lighthouse project. +- [`protos/`](protos/): protobuf/gRPC definitions that are common across the Lighthouse project. - [`validator_client/`](validator_client/): the "Validator Client" binary and crates exclusively associated with it. diff --git a/eth2/README.md b/eth2/README.md index e7b69635a..cf041e987 100644 --- a/eth2/README.md +++ b/eth2/README.md @@ -8,19 +8,19 @@ Rust crates containing logic common across the Lighthouse project. - [`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 +- [`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 an external BLS encryption library. - - [`boolean-bitfield`](utils/boolean-bitfield/): Provides an expandable Vec + - [`bls`](utils/bls/): A wrapper for an external BLS encryption library. + - [`boolean-bitfield`](utils/boolean-bitfield/): Provides an expandable vector of bools, specifically for use in Eth2. - [`fisher-yates-shuffle`](utils/fisher-yates-shuffle/): shuffles a list pseudo-randomly. - - [`hashing`](utils/hashing/): A wrapper around external hashing libraries. + - [`hashing`](utils/hashing/): A wrapper for external hashing libraries. - [`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 + 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. @@ -30,8 +30,8 @@ Rust crates containing logic common across the Lighthouse project. - [`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. + 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. + method which is slow, but allows for a subset of indices to be shuffled. - [`test_random_derive`](utils/test_random_derive/): provides procedural macros for deriving the `TestRandom` trait defined in `types`.