mirror of
https://github.com/Xahau/xahaud.git
synced 2026-06-03 16:56:36 +00:00
Re-enable FullBelowCache in null-nodestore mode. Previously disabled via useFullBelowCache() returning false, forcing sync to walk every branch. That was a workaround for the stale-claim problem where an FBC entry could outlive the canonical node it vouches for, leading to SHAMapMissingNode on later reads. At the two FBC short-circuit sites (SHAMap::addKnownNode and gmn_ProcessNodes), null mode now: - validates the claim via TreeNodeCache::fetch (returns non-null iff the canonical node is held alive anywhere in the system), and - anchors the canonical into THIS SHAMap via canonicalizeChild, so retention is structural and independent of whichever ledger originally anchored the claim. Disk-backed mode is byte-identical to before (gated on isRWDBNullMode()). With the anchor rule in place, the post-sync wiring walks in InboundLedger::init() and done() are redundant; drop both and call setFullyWired() directly in null mode. Adds projected-source markers at key points for the design doc at .ai-docs/null-nodestore-backend.md.j2 (not tracked).