devnet-3 in progress

Consensus built
for clarity

A Go consensus client for Lean Ethereum, built around the idea that protocol simplicity is a security property.

terminal

$ make build

$ ./bin/gean \

--genesis config.yaml \

--bootnodes nodes.yaml \

--validator-keys keys \

--node-id node0

gean started. listening on :9000

Capabilities

Built for security,
designed for developers

Post-Quantum Ready

XMSS signature integration provides cryptographic security against quantum computing threats, future-proofing the consensus layer.

Fast Finality

A complete redesign of Ethereum's consensus layer delivers finality in seconds, not epochs. Security without the wait.

Readable by Design

Code written so anyone can follow it. Explicit naming, linear control flow, and no premature abstraction.

Minimal Dependencies

Fewer imports means fewer things that can break, fewer things to audit, and fewer things to understand.

P2P Networking

Full ENR and Discovery v5 implementation for peer discovery, built on libp2p with production-grade reliability.

Verifiable End-to-End

If you can't inspect it end-to-end, it's not fully yours. Every path is traceable, every decision auditable.

Philosophy

Protocol simplicity is
a security property

A consensus client should be something a developer can read, understand, and verify without needing to trust a small class of experts. If you can't inspect it end-to-end, it's not fully yours.

01

Readable over clever

Code is written so that someone unfamiliar with the codebase can follow it. Naming is explicit. Control flow is linear where possible.

02

Minimal dependencies

Fewer imports means fewer things that can break, fewer things to audit, and fewer things to understand.

03

No premature abstraction

Interfaces and generics are introduced when the duplication is real, not when it's hypothetical. Concrete types until proven otherwise.

04

Flat and direct

Avoid deep package hierarchies and layers of indirection. A function should do what its name says, and you should be able to find it quickly.

05

Concurrency only where necessary

Go makes concurrency easy to write and hard to reason about. We use it at the boundaries and keep the core logic sequential and deterministic.

Roadmap

Current status

pq-devnet-0

Complete

leanSpec@4b750f2

All milestones complete

pq-devnet-1

Complete

leanSpec@050fa4a, leanSig@f10dcbe

Consensus envelope pipeline

SignedAttestation, SignedBlockWithAttestation, proposer-attestation ordering, signed storage/sync path

XMSS/leanSig integration

CGo bindings, key management, signing, verification

Cross-client interop

Multi-client devnet compatibility testing

pq-devnet-2

Complete

leanSpec@4edcf7b, leanSig@73bedc2, leanMultisig@e447413

Consensus envelope pipeline

SignedAttestation, SignedBlockWithAttestation, proposer-attestation ordering, signed storage/sync path

XMSS/leanSig/leanMultisig integration

CGo bindings, key management, signing, verification, signature aggregation

Cross-client interop

Multi-client devnet compatibility testing

Persitent Storage

Implement persistent storage

pq-devnet-3

In progress

leanSpec@TBD, leanSig@TBD, leanMultisig@TBD

Aggregator role decoupling

Separate aggregator role from block production, new is_aggregator ENR field, validator-config.yaml updates

Attestation subnet networking

attestation_{subnet_id} gossipsub topic, aggregation gossipsub topic, subnet assignment by validator_id % subnets_count

Aggregated signature propagation

Aggregators collect and aggregate attestations, propagate to aggregation topic, proposer includes aggregates in blocks

Slot interval restructuring

5 intervals × 800ms (build & propagate, attest, aggregate, update safe target, accept attestations)

Cross-client interop

Multi-client devnet with 5 initial validators (1 per client), north star target of 128 validators

Validation Network

Protocol Consensus

gean is MIT-licensed and maintained by a growing network of independent node operators and contributors.

Go

Language

MIT

License

76+

Stars

10

Contributors