Sections 1 to 4 MEASURED on build-5 and build-6 (22:35 to 23:15 UK) under the lease pool and pid watchers, the harness tools/finality-attacks/v4.mjs (the v3.mjs shape with three islands, an equivocating key, a leaving voter, a strip, a kept-datadir restart, a fresh node at the heal, the carried-certificate capture; lib/net.mjs gained the per-node EVM RPC port for the lock kind) and tools/finality-attacks/verifier-row.mjs (the shared Sepolia verifier and the same contract on anvil with the harness table). 1a PASS (every island pauses); 1b PASS on runs 2 and 3 (exactly the island above half of the anchored table recovers after a full window, the others pause and join its chain; run 1 drew the island under half by Poisson jitter and paused as the rule says); 1c the measured conflict of 6.5 (two recovery certificates, the anchored history untouched) with the plan's FAIL line hit: a recovery certificate reads lockKind "final" on every node that did not form it (finding 1, node change owed), and a node holding two certificates reports active and keeps locking (finding 2, 3.11.4); 1d PASS (pause only, the equivocator stripped at the heal); 2 PASS (the fresh node holds every pre-heal lock by carried certificates, the restarted node agrees, the pause ends within two intervals of the reconnect, four epoch boundaries inside the pause); 3a to 3d PASS on the node facts; 4 PASS (a recovery certificate fails closed on both verifiers). Section 6: the enforced lane's harness needs its cache-history-node pair (c591e63b) and the 0x51cd pin; runs 1 and 2 recorded with their cause, run 3 follows. Batch fin-native-20261008T2300Z recorded (FIN-02, FIN-07 PASS on node:finality-realnode; FIN-08 RUNNING).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
infra/fast-time/override-60x.json is the devnet with every clock-like consensus parameter divided by 60 and every
block count unchanged (finality window, ban and min_daa 120 DAA; merge depth 60; Kaspa finality depth 720; pruning
depth at the anticone bound 13,838; coinbase maturity 2; the hourly program epoch 60 blocks with a 10-block lead;
the dataset day 24 minutes). The epoch length, lead and day are consensus parameters of the node since devnet-v4
a5ef8b07, carried by the override file. README lists each field, why it scales or not, the flags and the numbers.
Measured (simnet.mjs, three devnet-v4 nodes, three vmine voters at 1 block/s, one real-hash CPU miner): next
epoch seed in the template at 56.1 s, program swap at 65.1 s wall (DAA 60), first finality lock at 185.5 s wall
(checkpoint 5, DAA 149). Both harnesses take --fast-time: finality-attacks s3 PASS in 113 s wall with 16 locks
per node (the devnet rule needs 20 min of warm-up at 6 blocks/s before any lock); harness s3 partition and heal
43 s wall for three cuts against 983 s for four on the devnet profile with the same binary. Bench-log entry.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tools/finality-attacks: run.mjs drives a private igneum-devnet-800 network (ports 27800+,
/tmp/igneum-fin-attacks, skip_proof_of_work) with the test-only hostile flags of igneum-miner
(vmine, --equivocate, --sybil, --drop-votes, --pulse, fin-rpc-attack; worktree fin-attacks on
master c6d47547..2a00ff55). Seven scenarios in priority order 3,2,1,6,4,8,5 with a spec 03
criterion and a measured result each; README carries the catalogue, what needs a finality-aware
p2p probe, and a proposed diff for every FAIL.
Results (six voters): S3 dishonest aggregators PASS (35/35/35 locks, 0 conflicts, 1,018 ms);
S2 Sybil dust: weights PASS, aggregator sortition FAIL (per key, ledger F17); S1 equivocation
PASS (2/2/2 stripped, 0 conflicts); S6A 3/3 partition FAIL (floor is time-bounded, one side
crossed 56.7% at 84 s of a 90 s split, T* = 2F/13R, 9.2 days for a 50/50 split at mainnet
scale); S6B 4/2 PASS; S4 vote-dropping producer PASS (0 ms added); S8 malformed votes over
RPC PASS (9 cases, no crash); S5 pulse: no retarget amplification (ratio 0.999) PASS,
lock-alone FAIL (a 20 s burst locked checkpoints 1 to 10 alone on a young window, ledger F1,
spec 3.8 not implemented). S7 eclipse not run.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>