mirror of
https://github.com/luxfi/consensus.git
synced 2026-09-24 00:26:58 +00:00
The recovery index records height→id for every finalized block, so a behind node can name a gap the ledger's own window has pruned. But the engine's accept loop derived each block's height from pendingBlocks — and a gap block is by definition no longer tracked there, so its height read as 0. The index then filed every gap block under height 0 and answered for none of them: the fix populated nothing it could read. The fold already knows each step's height. Plan now carries AcceptHeights alongside Accept, and the accept loop reads the height from there — authoritative for a tracked or an untracked block alike. The recovery index records the true height. Co-authored-by: Hanzo Dev <[email protected]>