Skip to content

Keryx-node-v1.6.3-PoM

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Sep 20:45

⚠️ 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.