lambdaclass / lambdaclass/ethlambda
Proposer silently skips its slot after every proposer-rotation wrap (slot ≡ 1 mod 512); no failure counted
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 82
- Fork
- 28
- Merge medio
- 1g 20h
- PR unite (30g)
- 20
Descrizione
Observed
On a 512-validator / 64-node devnet (image devnet5-leanvm-main, rev 691df39, 8 validators/node, 8 subnets), validator 1 has missed 100% of its proposal slots: 8/8 at first measurement (slots 1, 513, 1025, 1537, 2049, 2561, 3073, 3585 — every slot ≡ 1 mod 512), and still 5/5 when re-sampled four days and ~170 rotations later (slots 84481…86529 all absent, adjacent control slots present).
The node never logs Building block for these slots, and lean_block_building_failures_total stays 0 fleet-wide: the interval-4 build tick never fires, so nothing counts the miss.
Context
- The rotation-wrap block (slot ≡ 0 mod 512, proposer = validator 0) is imported by peers 7–8 s after its slot start at every observed wrap (7.3 s / 7.2 s / 7.8 s at slots 512 / 3072 / 3584).
- node_1 (host of validator 1, also an aggregator) is seconds behind real time when its slot arrives: its attestations for slot 512k publish 3–7 s late and its aggregation sessions run ~3 s.
- At 3 of 5 recently sampled wraps the following proposer (validator 2's node) also lost its block — net cost 1–2 blocks per 512-slot cycle, invisible to every failure metric.
Expected
A proposer that cannot build in time should at least increment a failure counter; a deterministic 100%-miss pattern tied to the proposer-rotation wrap should be visible in metrics.
Evidence
- Chain: devnet-eth35, genesis 2026-08-28 16:53:53Z (
GENESIS_TIME 1787936033), hosts ethlambda-3/ethlambda-5. - Missed-slot verification via
GET /lean/v0/blocks/<slot>(404 for every s ≡ 1 mod 512 sampled; 200 for controls). - Full measurement context: 3.9 h instrumented window + 4-day soak; per-node logs and Prometheus/Loki history retained on the hosts.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il pattern degli slot nella configurazione devnet-eth35 e confronta GET /lean/v0/blocks/ con gli slot di controllo adiacenti. Inizia dai percorsi di build del proposer e dell’interval-4 che producono il log “Building block” e la metrica lean_block_building_failures_total. Il lavoro è completo quando gli slot del proposer persi vengono conteggiati e i miss deterministici successivi al wrap sono visibili nelle metriche.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- prometheus, rust
- Ambito
- blockchain, distributed-systems, observability
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100