From 8065d7d2fe13386ee40b3a0e10712cf0fcae72c9 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Tue, 6 Oct 2026 16:53:33 +0000 Subject: [PATCH] release 0.3.14: the exec fix merged (4c6b129d), the fourteenth field and the two-publish shape, the app side pending its rebase Co-Authored-By: Claude Fable 5.1 --- docs/plans/release-0.3.14.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/plans/release-0.3.14.md b/docs/plans/release-0.3.14.md index e56de9c2e..f5435d8c5 100644 --- a/docs/plans/release-0.3.14.md +++ b/docs/plans/release-0.3.14.md @@ -15,15 +15,20 @@ devnet's pruning point had moved from bb45cf0d (DAA 45,537) to eb2a5d70 (DAA 88, | Change | Where | State | |---|---|---| -| A deep reorg never replays from genesis on a pruned node: the follower unwinds through its persisted generations, else requests a peer's snapshot (protocol 16); a good snapshot is never overwritten by a tip-0 one | the proving agent's fix branch off bb43e9a8 | (pending) | -| A moved pruning point does not strand the anchor: a node keeps executing from its persisted state; the anchor is for a node with nothing | the same | (pending) | -| A flag file (`--igneum-exec-snapshot`) that cannot be read or whose sha does not match fails loudly at start (on the seed, as user igneum, a file under /root was ignored silently and the node replayed genesis, 16:16Z) | the proving agent's branch | (pending) | -| The p2p snapshot path refuses a snapshot at or below the node's own tip, below the restart, or at tip 0 (the seed pulled and loaded a 2,629-byte tip-0 snapshot from a fleet box at 16:16:30Z) | the same | (pending) | +| A deep reorg reloads the newest persisted generation at or below the fork (`exec-snapshot.bin`, then `.prev.bin`) and otherwise blocks loudly and asks a peer; never a genesis replay on a node whose retention root is above genesis; the ring 2,048, a loaded snapshot seeds it; `persist()` never writes a tip-0 state and never a lower tip over a file whose tip is still on the chain; `reexecuting` in `igneum_getExecStatus`, a warn a minute on every wait | the proving agent's `exec-sync-0313` 1f59c5d0 (591581b8 inside) | merged as release-0.3.14-node **4c6b129d** (11 files); igneum-exec 19; `tools/exec-sync/reorg.mjs` 18 of 18 (a 300-block reorg from the ring in 134.6 s, from the persisted generation after a restart in 261.6 s, both reaching the other node's state root, nothing from genesis); `net.mjs` 15 of 15 | +| A moved pruning point does not strand the anchor: the restart refuses cleanly below the pruning point; a node keeps executing from its persisted state; "snapshot wanted" whenever blocked | the same | in | +| `exec_restart_state_root`, the FOURTEENTH override field (block 27,276's post-state root 0xed27bb2d6128daf50493ed5539a73bb93f9d7c63ad7f70a7cbb46ba81c9e164e, read on node 1 and confirmed by the fleet on both node kinds; in the digest once set): a state that differs at the restart block is set aside and blocked, a p2p snapshot that differs is refused | the same; the packaged line 220dc03 | in: a DIGEST CHANGE, so the two-publish shape (section 2) | +| The prover's app side: the prover exports [n-1, n] and [first-1, last], seeds the exporter from the account dump (`igneum_exportSegments` `preState`), claims nothing below the restart; the exporter (`proving/igneum-prove/export`) | the proving agent's `proving-v2` 9c2a148, based on the 0.3.12 app: conflicts in seven files against ember-tune and miner-ui-3 and drags the RISC Zero tree; its rebase onto release-0.3.14 asked at 17:0xZ | (pending its tip) | +| A flag file (`--igneum-exec-snapshot`) that is missing, unreadable, mispinned or unknown to consensus blocks the executor loudly and is retried every 2 s, never runs as if unset (on the seed, as user igneum, a file under /root was ignored silently, 16:16Z) | 1f59c5d0 | in | +| The p2p snapshot path (`p2p_snapshot_gate`, unit-tested) refuses tip 0, below the restart, at or below the own tip, and anything while the executor runs unblocked (the seed pulled and loaded a 2,629-byte tip-0 snapshot from a fleet box at 16:16:30Z) | 1f59c5d0 | in | | The hands' and the seed's restart scripts: `IGNEUMD_EXEC_SNAPSHOT` / `IGNEUMD_EXEC_SNAPSHOT_FILE` (the flag; on the seed the file installed for the igneum user under `/var/lib/igneum-v4`, the quoted `EXTRA_ARGS`) and `IGNEUM_EXEC_RESET` (the persisted exec files deleted after the stop); node 1 on its own eth port 26791 | 32e004f, 0585b9e, db1205b, dd9044e, 08ddee7 (this branch; `release-0.3.13` carries the 26791 line only) | in | | The six version files | 4b25760 | in | -No re-pin of the anchor (the coordinator's decision). If the fix is code-only the object is CARRIED OVER (the thirteen-field one, digest -b18ed271... unchanged) and this is ONE publish; if a field changes, the 0.3.12 two-publish shape. +No re-pin of the anchor (the coordinator's decision): the anchor stays 27,276. The fourteenth field changes the digest, so this is the +two-publish shape: publish 1 the binary with the thirteen-field object carried over (digest b18ed271... unchanged, the hands and the seed +first, then the apps), publish 2 the fourteen-field object (a new digest; the hands and the seed, then the switch jobs in the order the +coordinator rules: the proving agent proposes every miner before the hands, the 0.3.12/0.3.13 order is the hands first). DEVNET 2 between +the payload and the live gate. ## 2. The order at the go