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: