commit
fe7c475207
23
README.md
23
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
|
\#00](https://lighthouse.sigmaprime.io/update-00.html) blog post or the
|
||||||
[company website](https://sigmaprime.io).
|
[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 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
|
||||||
|
SimpleSerialize (SSZ).
|
||||||
|
- [`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.
|
||||||
|
|
||||||
### Components
|
### Components
|
||||||
|
|
||||||
The following list describes some of the components actively under development
|
The following list describes some of the components actively under development
|
||||||
@ -79,16 +92,6 @@ In addition to these components we are also working on database schemas, RPC
|
|||||||
frameworks, specification development, database optimizations (e.g.,
|
frameworks, specification development, database optimizations (e.g.,
|
||||||
bloom-filters), and tons of other interesting stuff (at least we think so).
|
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
|
### Running
|
||||||
|
|
||||||
**NOTE: The cryptography libraries used in this implementation are
|
**NOTE: The cryptography libraries used in this implementation are
|
||||||
|
37
eth2/README.md
Normal file
37
eth2/README.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# Ethereum 2.0 Common Crates
|
||||||
|
|
||||||
|
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 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 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
|
||||||
|
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 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`.
|
Loading…
Reference in New Issue
Block a user