Update main readme, add eth2/ readme

This commit is contained in:
Paul Hauner 2019-03-01 00:18:53 +11:00
parent ed032dddea
commit 6fac35a7c5
No known key found for this signature in database
GPG Key ID: D362883A9218FCC6
2 changed files with 53 additions and 0 deletions

View File

@ -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

40
eth2/README.md Normal file
View File

@ -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`.