Three runs on real nodes (igneumd a37f4b63 built from c8d22a85's code, build-5 and build-6, lease pool, pid watchers, zero restarts): 1b with e at 0.20 (A recovered at index 10 at 55.46 percent; that certificate reads lockKind recovery on A's, B's and C's nodes; 0 conflicts, 0 disagreement, all three at 24), 1b with e at 0.30 (the same at index 11, all three at 27), 1c (A and B recovered at index 11, two recovery certificates; after the heal both holders read "conflict: two valid certificates at index 11", finalityActive false, no lock installed above it; C followed A's chain, B's never reached it). Finding 1 and finding 2 of the native runs closed on the node. Batch fin-203-20261009T0127Z recorded (FIN-02, FIN-07 PASS on node:finality-realnode, manifest c8d22a85). Harness: v4.mjs records finalityActive per node; run-row.sh takes PAIR. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| override-60x-88-keys.json | ||
| README.md | ||
| run-row.sh | ||
| run-s6.sh | ||
| watch-row.sh | ||
| watch-s6.sh | ||
The native finality runs of 9 October 2026: box scripts
The runs of docs/plans/finality-native-runs-2026-10-09.md sections 1 to 4 and 6 on real nodes (rows in sim/results_v2.md,
"The native finality runs of 9 October 2026"; result files in sim/finality-attacks-results/native-2026-10-09/). On a box
(/srv/builds/_scratch/fin-runs/): the node pair under pair-fin-<sha>/ (built by tools/build-remote.sh from the lane's
fork worktree; the gate artefact is never a fleet binary and this directory is never a fleet host), tools/finality-attacks/
and infra/fast-time/override-60x.json copied from the worktree (the 88-key form a 2.0.2 node accepts: the class v6 keys
stripped, override-60x-88-keys.json here), prove-bin/ for section 6.
run-row.sh <name> <base port> <suffix> <RECOVERY 1|0> <rows...>: pid file first, thenv4.mjsunderlease pool 8 --class measure; the result markdown, JSON and node logs copied toresults/<name>*.watch-row.sh <the same>: the watcher; restarts a run that ends without its done marker (at most 3, each recorded inresults/<name>.restarts); its own pid inpids/<name>.watch.pid. Stop a run bykill $(cat pids/<name>.watch.pid), then the lease's command pid fromlease status; never by a name.run-s6.sh/watch-s6.sh: section 6, the enforced lane'sinfra/fast-time/proving-cache-history.mjson the cache-history-node pair withIGNEUM_PROOF_VERIFIER=<igneum-prove-host>exported (without it the honest nodes start with the verifier Off and nothing is verified or paid: the lane's first run, kept ass6-cache-history-run1-verifier-off).
Field names in the landed result JSONs: every vote-key hash is under keyHash (carried[].key of the cache-history harness's
output is renamed on landing; eKey, leaver, stripped of v4.mjs's first runs are equivocatorHash, leaverHash,
strippedHash), so the tree's secrets check (a 64-hex value beside "key") reads them as the public identifiers they are.