⚠️ Urgent for every node.
Fix: one bodyless block header could cut the whole network into pieces
Since 18:32 UTC today a single block header with no body anywhere made every node that held it ask its peers for the body once per second, forever. A peer that cannot serve a body dropped the requester, and a requester that got a reject dropped the peer. Nodes cycled through 70-80 peers an hour, outbound connections fell from 16 to a handful, and red blocks went from 4 % to 13 %.
1.6.3 closes the loop on both sides:
- A block that is only a header locally is never re-fetched by the proof repair path (that path exists to attach a missing proof to a body we hold, nothing else).
- A re-fetch is attempted at most 3 times per block, and a failed attempt no longer drops the peer.
- A request for a block we cannot serve in full gets an immediate reject and the peer stays connected.
Measured on a production node while the rest of the network was still looping: zero disconnects in 10 minutes, peers back from 11 to 58.
Upgrade
Install 1.6.3 (keryxd + keryx-cli) and restart. Restarting alone also clears the loop on 1.6.2 until you upgrade, but a 1.6.2 node re-enters it the next time such a block appears.