# Lean Ethereum DevNet Readiness Checklists
This document provides readiness checklists for tracking DevNet milestones and maintaining a shared source of truth for feature inclusion/deferral decisions.
## DevNet 2 Readiness Checklist
**Target Date:** 2026-01-28
**Objectives:**
1. Implement leanMultisig PQ signature aggregation
2. Establish baseline performance metrics for PQ signature aggregation
### Specification Readiness Branch/Open PR's
- [x] leanSpec: All pq-devnet-2 PRs merged [Devnet 2 Commit Hash](https://github.com/leanEthereum/leanSpec/tree/c187aab89e0ecc6ce9c1fd9304fd708312ea7106)
- [ ] leanSig: Target commit validated and compatible [Devnet 2 Commit Hash](https://github.com/leanEthereum/leanSig/tree/73bedc26ed961b110df7ac2e234dc11361a4bf25)
- [ ] [leanMultisig](https://github.com/leanEthereum/leanMultisig/tree/e4474138487eeb1ed7c2e1013674fe80ac9f3165): Compatible with leanSig (**BLOCKER**)
- [x] [Justification compression PR merged](https://github.com/leanEthereum/leanSpec/pull/273)
- [x] [Checkpoint sync spec finalized](https://github.com/leanEthereum/leanSpec/pull/279)
- [x] [Zero hash in justification roots refactor](https://github.com/leanEthereum/leanSpec/pull/305)
- [ ] Block-by-root syncing spec finalized
- [ ] Lean VM aggregation integrated
- [x] Lean Meterics: [DevNet 2 branch](https://github.com/leanEthereum/leanMetrics/tree/3b32b300cca5ed7a7a2b3f142273fae9dbc171bf)
### Metrics Readiness
- [PR #18](https://github.com/leanEthereum/leanMetrics/pull/18)
- [PR #16](https://github.com/leanEthereum/leanMetrics/pull/16)
- [PR #13](https://github.com/leanEthereum/leanMetrics/pull/130)
### Bug Fixes Required (from DevNet 1)
- [ ] Node syncing (graceful recovery without full restart)
- [ ] Genesis block checkpoint alignment
- [ ] Memory leak fixes
- [ ] Peer connection fixes
- [ ] SSZ implementation alignment
### Client Implementation Readiness
*Status as of Jan 14, 2026*
| Client | Status | ETA | Notes |
| ---------- | -------- | ------------- | ----- |
| Lantern | ✅ Ready | - | Full DevNet-2 support, all tests passing |
| Ream | ⏳ WIP | 1-2 days | Checkpoint sync API pending, DB pruning done |
| Zeam | ⏳ WIP | Jan 19, 2026 | Block-by-root syncing working |
| Qlean | ⏳ WIP | 1 week | OOM fix PR open, GossipSub predicates WIP |
| Lighthouse | ⏳ WIP | TBD | - |
| Grandine | ⏳ WIP | TBD | Open-sourced, DevNet-1 interop ongoing |
| EthLambda | ⏳ WIP | TBD | Gossip layer done, STF added |
| Gean | 🆕 New | TBD | Go + Lean based client |
### Infrastructure Readiness
### Infrastructure Readiness
- [x] lean-quickstart updated
- [ ] Grafana dashboards ready
- [x] All client Docker images submitted to [readiness issue](https://github.com/blockblaz/lean-quickstart/issues/87)
- [ ] Docker images include [commit hash metadata](https://github.com/blockblaz/lean-quickstart/issues/91)
- [ ] Default Docker image configuration ([Issue #94](https://github.com/blockblaz/lean-quickstart/issues/94))
### Go/No-Go Criteria
- [ ] leanMultisig <-> leanSig compatibility resolved
- [ ] All clients pass spec tests
- [ ] Network runs 1+ hour without finality loss
- [ ] Node can rejoin after disconnect
### May Defer to DevNet 3
- [ ] Committee-based aggregation ([PR #282](https://github.com/leanEthereum/leanSpec/pull/282))
- [ ] Multiple aggregation subnets
- [ ] Recursive aggregation
## DevNet 3 Readiness Checklist
**Target Date:** 2026-02-25
**Objectives:**
1. Decouple aggregation from block production (separate aggregator role)
2. Establish protocol for propagating aggregated signatures
### Specification Readiness
- [ ] High-level plan [PR #56](https://github.com/leanEthereum/pm/pull/56) merged
- [ ] leanSpec: Committee aggregation [PR #282](https://github.com/leanEthereum/leanSpec/pull/282) merged
- [ ] compute_subnet_id() function [PR #58](https://github.com/leanEthereum/pm/pull/58) merged
- [ ] Aggregator role fully specified
- [ ] New gossipsub topics defined (`attestation_{subnet_id}`, `aggregated_attestation`)
- [ ] GossipSub propagation predicates for topic message acceptance/rejection
### PR #282 Remaining Work
- [ ] Handle aggregators not observing sufficient signatures by interval 2
- [ ] Add gossipsub propagation predicates
- [ ] Rebase to latest main
### Client Implementation Readiness
| Client | Aggregator Role | Subnet Topics | Interop |
| ---------- | --------------- | ------------- | ------- |
| Lantern | ⏳ | ⏳ | ⏳ |
| Ream | ⏳ | ⏳ | ⏳ |
| Zeam | ⏳ | ⏳ | ⏳ |
| Qlean | ⏳ | ⏳ | ⏳ |
| Lighthouse | ⏳ | ⏳ | ⏳ |
| Grandine | ⏳ | ⏳ | ⏳ |
| EthLambda | ⏳ | ⏳ | ⏳ |
| Gean | ⏳ | ⏳ | ⏳ |
### New Functionality
**Aggregator Role:**
- [ ] Collect attestations from subnet topic
- [ ] Aggregate signatures (no recursive aggregation)
- [ ] Propagate to `aggregated_attestation` topic
**Proposer Updates:**
- [ ] Listen to `aggregated_attestation` topic
- [ ] Include aggregations in block
### Infrastructure Readiness
- [ ] validator-config.yaml with `is_aggregator` field
- [ ] lean-quickstart updated for subnet topology
- [ ] Grafana dashboards for subnets
### Go/No-Go Criteria
- [ ] PR #282 merged
- [ ] All clients implement aggregator role
- [ ] Aggregated signatures included in blocks
- [ ] No regression in finality
### Out of Scope
- Multiple aggregation subnets -> DevNet 4
- Recursive aggregation -> Future
- Random validator-to-subnet assignment -> Future
- Dynamic validator set (deposit/exit) -> DevNet 4+
### Deferred from DevNet 2
- [ ] (To be filled based on DevNet 2 outcome)
## DevNet 4 Readiness Checklist
**Target Date:** TBD
**Objectives:**
1. Multiple aggregation subnets
2. Dynamic validator set (deposit/exit interface)
### Specification Readiness
- [ ] Multiple aggregation subnets spec
- [ ] Dynamic validator set spec ([PR from Zepturo](https://github.com/leanEthereum/leanSpec))
- [ ] Random validator-to-subnet assignment
### Planned Features (from earlier deferrals)
- [ ] Multiple aggregation subnets (from DevNet 3)
- [ ] Dynamic validator set - deposit/exit (from DevNet 3)
### May Include (pending research)
- [ ] Recursive aggregation (if performance targets met)
- [ ] Full Beacon spec parity items (DAS, execution, etc.)
### Client Implementation Readiness
| Client | Multi-subnet | Dynamic Validators | Interop |
| ---------- | ------------ | ------------------ | ------- |
| Lantern | ⏳ | ⏳ | ⏳ |
| Ream | ⏳ | ⏳ | ⏳ |
| Zeam | ⏳ | ⏳ | ⏳ |
| Qlean | ⏳ | ⏳ | ⏳ |
| Lighthouse | ⏳ | ⏳ | ⏳ |
| Grandine | ⏳ | ⏳ | ⏳ |
| EthLambda | ⏳ | ⏳ | ⏳ |
| Gean | ⏳ | ⏳ | ⏳ |
### Deferred from DevNet 3
- [ ] (To be filled based on DevNet 3 outcome)
## Decision Log
Records when features are deferred or moved between DevNets.
| Date | Item | From | To | Reason |
| ---- | ---- | ---- | -- | ------ |
| 2026-01-14 | Dynamic validator set | DevNet 3 | DevNet 4 | Adds complexity while devnets aren't stable; defer until checkpoint sync improves stability |
| 2026-01-14 | Multiple aggregation subnets | DevNet 3 | DevNet 4 | Derisk complexity; focus on single subnet first |
## Open Items to Track
### DevNet 2
| Item | Type | Relevance |
| ---- | ---- | --------- |
| leanMultisig compatibility | Blocker | leanSig compatibility |
| [PR #299](https://github.com/leanEthereum/leanSpec/pull/299) | Open | Interop testing |
| [Issue #87](https://github.com/blockblaz/lean-quickstart/issues/87) | Open | Client Docker images submission |
| [Issue #91](https://github.com/blockblaz/lean-quickstart/issues/91) | Open | Docker commit hash metadata |
| [Issue #94](https://github.com/blockblaz/lean-quickstart/issues/94) | Open | Default Docker image config |
### DevNet 3
| Item | Type | Relevance |
| ---- | ---- | --------- |
| [PR #282](https://github.com/leanEthereum/leanSpec/pull/282) | WIP | Committee aggregation |
| [PR #56](https://github.com/leanEthereum/pm/pull/56), [PR #58](https://github.com/leanEthereum/pm/pull/58) | Merged | High-level plan DevNet 3 plan |
### DevNet 4+
| Item | Type | Relevance |
| ---- | ---- | --------- |
| Dynamic validator set | Deferred | Deposit/exit interface |
---
## References
### Repositories
- [leanSpec](https://github.com/leanEthereum/leanSpec)
- [leanMetrics](https://github.com/leanEthereum/leanMetrics)
- [leanSig](https://github.com/leanEthereum/leanSig)
- [leanMultisig](https://github.com/leanEthereum/leanMultisig)
- [lean-quickstart](https://github.com/blockblaz/lean-quickstart)
- [pm repo](https://github.com/leanEthereum/pm/tree/main/breakout-rooms/leanConsensus/pq-interop)
### DevNet Specs
- [pq-devnet-2.md](https://github.com/leanEthereum/pm/blob/main/breakout-rooms/leanConsensus/pq-interop/pq-devnet-2.md)
- [pq-devnet-3.md](https://github.com/leanEthereum/pm/blob/main/breakout-rooms/leanConsensus/pq-interop/pq-devnet-3.md)