Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions breakout-rooms/leanConsensus/pq-interop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,15 @@ By fostering rapid feedback between researchers and developers, the devnet accel

## PQ Interop Devnet Plans

| devnet # | Main objectives | Status | Date completed |
| ------------------------------- | ----------------- | ----------- | --------------- |
| [pq-devnet-0](./pq-devnet-0.md) | - Minimal consensus<br /> - No PQ signatures | Completed | October 6, 2025 |
| [pq-devnet-1](./pq-devnet-1.md) | - PQ signature signining & verification<br />- Naive aggregation (signature concatenation) | In progress | TBD (estimated: Q4 2025) |
| [pq-devnet-2](./pq-devnet-2.md) | - PQ signature aggregation<br />- No recursive aggregation | Not started | TBD (estimated: Q1 2026) |
| devnet # | Main objectives | Status | Checklist | Date completed |
| ------------------------------- | ----------------- | ----------- | --------- | --------------- |
| [pq-devnet-0](./pq-devnet-0.md) | - Minimal consensus<br /> - No PQ signatures | Completed | - | October 6, 2025 |
| [pq-devnet-1](./pq-devnet-1.md) | - PQ signature signining & verification<br />- Naive aggregation (signature concatenation) | In progress | - | TBD (estimated: Q4 2025) |
| [pq-devnet-2](./pq-devnet-2.md) | - PQ signature aggregation<br />- No recursive aggregation | Started | [Checklist](./pq-devnet-2-checklist.md) | TBD (estimated: Q1 2026) |
| [pq-devnet-3](./pq-devnet-3.md) | - Decouple aggregation from block production<br />- Aggregated signature propagation | Not started | [Checklist](./pq-devnet-3-checklist.md) | TBD (estimated: Q1 2026) |
| pq-devnet-4 | - Multiple aggregation subnets<br />- Dynamic validator set | Not started | [Checklist](./pq-devnet-4-checklist.md) | TBD |

See also: [Decision Log](./decision-log.md) for cross-devnet deferrals and references | [Readiness Checklists (HackMD)](https://hackmd.io/@bomanaps/rJjEPTjBWx)

## Breakout Room Meetings

Expand Down
26 changes: 26 additions & 0 deletions breakout-rooms/leanConsensus/pq-interop/decision-log.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# PQ Interop Decision Log

Records when features are deferred or moved between DevNets.

## Deferrals & Moves

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

## 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)
77 changes: 77 additions & 0 deletions breakout-rooms/leanConsensus/pq-interop/pq-devnet-2-checklist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# pq-devnet-2: Readiness Checklist

> **Target Date:** 2026-01-28
> **High Level Plan:** [pq-devnet-2.md](./pq-devnet-2.md)
> **Source of Truth:** [HackMD](https://hackmd.io/@bomanaps/rJjEPTjBWx)

## Specification Readiness

- [x] leanSpec: All pq-devnet-2 PRs merged [Devnet 2 Commit Hash](https://github.com/leanEthereum/leanSpec/tree/4edcf7bc9271e6a70ded8aff17710d68beac4266)
- [ ] 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 Metrics: [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/13)

## 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 28, 2026*

| Client | Status | Docker Tag | Notes |
| ---------- | -------- | ---------- | ----- |
| EthLambda | ✅ Ready | `ghcr.io/lambdaclass/ethlambda:latest` | Gossip layer done, STF added |
| Grandine | ✅ Ready | `sifrai/lean:latest` | Open-sourced, DevNet-1 interop ongoing |
| Lantern | ✅ Ready | `piertwo/lantern:latest` | Full DevNet-2 support, all tests passing |
| Lighthouse | ✅ Ready | `hopinheimer/lighthouse:latest` | - |
| Qlean | ✅ Ready | `qdrvm/qlean-mini:latest` | OOM fix PR open, GossipSub predicates WIP |
| Ream | ✅ Ready | `ghcr.io/reamlabs/ream:latest` | Checkpoint sync API pending, DB pruning done |
| Zeam | ✅ Ready | `blockblaz/zeam:latest` | Block-by-root syncing working |
| Gean | 🆕 New | TBD | Go + Lean based client |

## 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)
- [x] 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

## Open Items

| Item | Type | Relevance |
| ---- | ---- | --------- |
| leanMultisig compatibility | Blocker | leanSig compatibility |
| [PR #299](https://github.com/leanEthereum/leanSpec/pull/299) | Merged | 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) | Closed | Default Docker image config |
77 changes: 77 additions & 0 deletions breakout-rooms/leanConsensus/pq-interop/pq-devnet-3-checklist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# pq-devnet-3: Readiness Checklist

> **Target Date:** 2026-02-25
> **High Level Plan:** [pq-devnet-3.md](./pq-devnet-3.md)
> **Source of Truth:** [HackMD](https://hackmd.io/@bomanaps/rJjEPTjBWx)

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

## Open Items

| 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 DevNet 3 plan |
44 changes: 44 additions & 0 deletions breakout-rooms/leanConsensus/pq-interop/pq-devnet-4-checklist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# pq-devnet-4: Readiness Checklist

> **Target Date:** TBD
> **High Level Plan:** TBD (no plan file yet)
> **Source of Truth:** [HackMD](https://hackmd.io/@bomanaps/rJjEPTjBWx)

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

## Open Items

| Item | Type | Relevance |
| ---- | ---- | --------- |
| Dynamic validator set | Deferred | Deposit/exit interface |