How lambdaclass/ethlambda works
ethlambda is a Rust Lean Ethereum consensus client. Its principal workflow is to connect to peers, receive blocks and attestations, process state transitions and fork choice, persist chain state, and produce validator attestations or blocks for gossip. The map also includes the separately runnable event monitor, which collects node events and serves a dashboard. README capabilities guide coverage; sampled excerpts confirm selected startup, storage, networking, and monitor paths, so uncertain internal wiring is omitted.
Main entry points: src/lib.rs Chain Runtime · main.rs Node Startup · src/lib.rs P2P Service · handlers.rs Request Responses
Components 24
Client Runtime
- Node Startup
bin/ethlambda/src/main.rs - CLI Commands
bin/ethlambda/src/command.rs
Consensus Processing
- Consensus Types
crates/common/types/src/lib.rs - Signing Crypto
crates/common/crypto/src/lib.rs - Chain Runtime
crates/blockchain/src/lib.rs - State Transition
crates/blockchain/state_transition/src/lib.rs - Fork Choice
crates/blockchain/fork_choice/src/lib.rs - Block Building
crates/blockchain/src/block_builder.rs - Attestation Aggregation
crates/blockchain/src/aggregation.rs - Validator Keys
crates/blockchain/src/key_manager.rs - Chain Store
crates/storage/src/store.rs
Peer Networking
- P2P Service
crates/net/p2p/src/lib.rs - Gossip Handlers
crates/net/p2p/src/gossipsub/handler.rs - Request Responses
crates/net/p2p/src/req_resp/handlers.rs
Node Interfaces
- RPC Service
crates/net/rpc/src/lib.rs - Metrics
crates/common/metrics/src/lib.rs
Event Monitor
- Monitor Startup
tooling/event-monitor/src/main.rs - Node Collectors
tooling/event-monitor/src/collector.rs - Event Hub
tooling/event-monitor/src/hub.rs - Dashboard Server
tooling/event-monitor/src/server.rs - Dashboard UI
tooling/event-monitor/web/app.js
Other components
- Operator
- Consensus Peers
- Validators
Connections 28
- Operator → CLI Commands: invokes
- CLI Commands → Node Startup: selects command
- Node Startup → Chain Runtime: starts node
- Node Startup → P2P Service: initializes P2P
- Node Startup → RPC Service: starts service
- Chain Runtime → State Transition: processes blocks
- Chain Runtime → Fork Choice: selects head
- Chain Runtime → Block Building: builds blocks
- Chain Runtime → Attestation Aggregation: aggregates votes
- Chain Runtime → Validator Keys: signs duties
- Validator Keys → Signing Crypto: signs with
- State Transition → Consensus Types: processes
- Fork Choice → Consensus Types: evaluates votes
- Chain Runtime → Chain Store: reads and writes
- P2P Service → Gossip Handlers: dispatches messages
- P2P Service → Request Responses: dispatches requests
- Consensus Peers → P2P Service: exchanges messages
- Gossip Handlers → Chain Runtime: delivers consensus data
- Request Responses → Chain Store: reads chain data
- Request Responses → Consensus Peers: responds to requests
- Validators → Node Startup: supplies duties
- RPC Service → Chain Runtime: serves node data
- Chain Runtime → Metrics: records metrics
- Monitor Startup → Node Collectors: starts collectors
- Node Collectors → Event Hub: publishes events
- Monitor Startup → Dashboard Server: serves dashboard
- Dashboard Server → Event Hub: streams events
- Dashboard UI → Dashboard Server: fetches and streams