Nimbus Beacon Chain
!!! warning This auditors' handbook is frozen and obsolete; the Nim language manual alongside other Nim documentation, Status Nim style guide, Chronos guides, and Nim by Example supercede it.
https://github.com/status-im/nimbus-eth2
Nimbus Beacon Chain (NBC) is an implementation of an Ethereum 2 client.
Audit scope
Network Core (leveraging the libp2p framework)
Sub-topic |
---|
Discovery Protocol (discv5) |
Publish/Subscribe protocol |
Eth2 Request/Response protocol |
SSZ - (De)serialization & tree hashing |
Wire encryption |
ETH2 Specification core
Sub-topic |
---|
State transition logic |
Signature verification |
Epoch finalisation and justification |
Reward processing |
Eth1 data processing |
Fork choice logic |
Block processing and production |
Attestation processing and production |
Block synchronization |
Peer pool management |
Validator core and user experience
Sub-topic |
---|
Block/attestation signing |
Slash-prevention mechanisms |
RPC API |
Accounts management & key storage |
Command Line Interface (CLI) |
High-level view of the stack
https://miro.com/app/board/o9J_kvfytDI=/
Diagram
TODO
Specifications
We target v1.0.1 phase0 of https://github.com/ethereum/consensus-specs
The p2p-interface specs in particular describe the subset of libp2p spec that are used to implement Ethereum 2
Resources
Ethereum 2.0 Ask Me Anything: