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_rootfor each type - Add unit tests with reference vectors
cargo build