v0.7.11
v0.7.11 — reorg header clobber, fastsync cold start, offline compaction
Fix demoted headers clobbering BEST_CHAIN after a reorg. A batch holding a
losing header, its winning sibling and the winner's child let the deferred
store_entries flush re-insert the demoted loser over what the reorg had just
written. The in-memory chain stayed correct, so it only surfaced on the next
restart — the node then applied the losing block body and wedged one block
later on an AVL missing-key. Operators on v0.7.5-v0.7.10 may already carry a
clobbered index; the new boot-time linkage check reports it but cannot repair
it, so recovery is a resync.
Fix fastsync losing one header per chunk: chainSlice excludes fromHeight, but
phase 1 treated it as inclusive. On a cold start the lost header is genesis,
so the chain could never bootstrap. Never previously exercised.
Add --compact-state, validated on a real 247.4 GB mainnet database:
247,439,298,560 -> 2,155,876,352 bytes (99.1% reclaimed), digest verified
against every reachable node.
Bump ergo_avltree_rust to 568e7c3: proof generation was quadratic (769s ->
46s), and crafted proofs no longer abort the verifier.
Addons: fastsync 0.1.7, indexer 0.2.8.
Full Changelog: v0.7.10...v0.7.11