github Keryx-Labs/keryx-node v1.6.2-PoM
Keryx-node-v1.6.2-PoM

5 hours ago

Recommended for every node. No hardfork, no datadir change, 1.6.1 and 1.6.2 peer together.

PoM proofs now live in memory: ~400 GB/day less written to your SSD

Until now, every block's possession proof (~450 KB) was written to the database and deleted a few minutes later. At 10 blocks per second that is ~4.6 MB/s of constant writes, ~400 GB a day, ~145 TB a year per node, for data that lives four minutes. That is what has been wearing miners' SSDs.

Proofs are now kept in a fixed-size ring in memory (1 GB, ~4 minutes of proofs) and never touch the disk. Measured on a synced node: disk writes went from 5-13 MB/s to well under 1 MB/s outside compactions. Nothing changes for consensus: a proof lost on restart only means that block is re-fetched from another peer.

  • Costs ~1 GB of RSS: raise your pm2 or systemd memory limit accordingly.
  • Machines short on RAM (under ~16 GB for node + miner): --pom-proof-ring-file keeps the proofs in a 2 GB ring file written sequentially instead. KERYX_POM_PROOF_RING_MB sizes either ring.
  • Old proofs left in the database are purged at first start; the datadir shrinks over the following compactions.

Fix

  • A freshly synced node could stop with chain divergence at its first pruning-point move. The first cold refold after a fresh sync could ignore the verified snapshot imported at the pruning point and rebuild the service ledger from an empty state; the node then sealed a state the network does not have. Long-running nodes were not affected. Validated on the diverged node: rebuilt snapshot byte-identical to the network's.
  • Nodes already stopped with chain divergence: resync, or run once with KERYX_SERVICE_REPAIR_DAA=<daa of the previous pruning point> KERYX_REVALIDATE_DISQUALIFIED=1, then remove both variables.

Upgrade

Install 1.6.2 (keryxd + keryx-cli) and restart. No datadir, no deadline.

Don't miss a new keryx-node release

NewReleases is sending notifications on new releases.