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-filekeeps the proofs in a 2 GB ring file written sequentially instead.KERYX_POM_PROOF_RING_MBsizes 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 divergenceat 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 withKERYX_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.