A work-in-progress minimal Ethereum Beacon (consensus layer) client written in Rust.
The goal is to sync with the Ethereum mainnet, validate blocks, and progressively add features — starting with the core.
- Build a lightweight, modular, and understandable Beacon node.
- Sync from a checkpoint and validate the chain.
- Designed for learning and customization over performance.
We are progressing in layered steps — from data representation to sync.
⚠️ This is not production-ready. Any help, suggestions, or feedback are gladly encouraged and appreciated!
- Implement SSZ serialization and deserialization
- Derive hash tree root for basic + composite types
- Support for:
-
BitList
,BitVector
,Vector
-
Option<T>
,List<T>
,Container
,Union
-
- Test with synthetic and edge-case data
- Compliant with spec hash root calculations
This is a wip phase
- Define all required types from Ethereum Consensus Specs:
-
BeaconBlock
-
BeaconState
-
Attestation
,Checkpoint
,Validator
, etc.
-
- Derive SSZ and
hash_tree_root
for each type - Add unit tests with reference vectors
cargo build