Skip to content

Keryx-node-v1.4.4-OPoI

Latest

Choose a tag to compare

@slashkrx slashkrx released this 02 Aug 21:43

v1.4.4 — Coin-age divergence: root cause fixed

Fixes the root cause of the coin-age drift behind the DIVERGENCE reports: when a tx is
re-accepted during a shallow reorg, the maturation write path processed adds before
removes and silently dropped the surviving coin's maturation entry — the coin never got
promoted and the mature/immature split drifted. Balances and the UTXO set were never
wrong.

Fix: process age-diff removes before adds + keep a retained queue entry for coins
already mature on insertion (0a7d5473), with an adversarial test harness including a
deterministic repro (37e95f4c).

Validation: full test suite green; an instrumented node re-synced the exact history
that corrupted every stock node: 19/19 self-checks OK, zero divergences.

Upgrading: drop-in — keep your datadir, just restart on the new binary. The restart
purges any accumulated drift; the fix prevents new drift. Wire-compatible, no hardfork.
All operators should upgrade.

Credits: izzback pointed straight at the mechanism and the fix
ordering. Thanks to HatabaSS, sebit, flyingpig6926, jaja, S1b3r14n, SirCP-Qc, Im mongoled,
dragonkeepers and everyone who posted their DIVERGENCE lines.