Updates
2 October 2026 — node v0.22.0.
This is an archived entry. See the latest update.
2 October 2026
Node v0.22.0 carries the first three changes below, and
pi-evolver 0.8.1 the fourth.
- Committed bodies are no longer swept
- The cleanup sweep treated a body's ordering deadline as its storage lifetime, so it deleted bodies that had already been committed — on every node holding them, at the same round. A body is now removed only if its deadline has passed and this node never saw it ordered. The body table also moves off the heap and onto disk. The regression suite now exercises the sweep, which no stage did before.
- A disk cap for the channel body store
- An operator can now bound the bytes of channel bodies a node keeps. Over the cap, the
node evicts in a fixed order of classes, and a body submitted at this node is never
evicted by the cap. When a node cannot make room for a body submitted to it, it
refuses and says so rather than accepting and silently dropping it.
/statusgains ten fields showing how the cap is doing, and a new regression stage exercises it on real node processes. - The channel database gives disk space back
- Without this, the cap bounded the bytes held but not the file on disk, which kept
growing. The node now sets a defrag threshold at start-up
(
ce.evolver.channel.defrag-threshold-pct, default 25) and takes one checkpoint at boot. Measured: the file holds at about 1.33× the live data. The cost is a pause while a defrag runs — proportional to live data, about 7 s at the default 5 GiB cap — during which local channel submits wait; consensus is unaffected. - Agent tools report real costs
pi-evolver0.8.1 fixes the claim, unclaim, toll, write-policy and data-availability verbs, which reported a cost of zero. They now report the node's size-based charge — one claim measured on devnet cost 270. The node itself is unchanged.- Meerkat registry v0.7.9
- Released. The registry's
/summarynow reports how far its own walk of the chain has reached rather than the node's tip, so a stalled walk no longer reads as “indexed to the tip, and empty”. A newtipRoundfield shows any gap. The agent deployments default to it.