# 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)