85 KiB
Release 0.3.22: Devnet 3 (ordered 7 October 2026, 17:2x BST; genesis by 18:30 BST on the founder's word)
Main's order (17:26 BST): Devnet 3 goes now, not after 0.3.21. 0.3.22's node = the release-0.3.21-node worktree on build-1 (96161037, both node gates PASS) + the sub-version 3 igneum-pow pin (the 017e7037 line, byte 7, pairing id a785001687d8688a; the Counter lane's handoff by 17:40 BST, else the node lane takes it from the audit-freeze-2026-10-07 tag) + the igneum-devnet-3 network object (its own network id and p2p port, every activation at 0: program_class_v4, difficulty_v2, finality_v3, fees_v1, proving_v1, latency_ladder rung 0; the genesis cut; NO override file on the new chain) + era VDF f2ecf452 only if its merge is clean and green in the same run (else 0.3.23 by an activation height; era_vdf_activation_daa stays at never on devnet-3 unless main's object names it). Built as an incremental on build-1's lease ahead of the 0.3.21 app gate.
Gates before genesis: the box suite on the exact commit (the consensus crate whole, consensus-core, the miner against sub-version 3's packs, kaspa-pow, the exec suite, the three checks); from the build on the fleet's pods: the empty-datadir canary, the fresh-genesis digest agreement on two fleet boxes from empty (the same digest and the first lock between them), the late joiner's sync from them, the shutdown under 1 s, the proving ids present on a bare node. After genesis on the live chain: the relay cases (with a relay kept synced before the window, the warm rule) and the hands. Genesis on green with the fleet's two genesis boxes (the standing-fleet shape: supervisor, kill file, vote key, miner); the old devnet keeps running until Devnet 3 has 24 hours; the apps move by signed update after that. The genesis is reported as a clock reading.
Staged (the build-server lane, 17:27 BST): the Devnet 3 seed on build-1 as a bare process (p2p 0.0.0.0:26631, gRPC 27630, JSON 27632, EVM 27810, empty datadir /home/build/dn3seed); the hands' second instances node1-dn3 (p2p 26651, rpc 26650, json 28650, evm 26830, --enable-unsynced-mining, peers the seed) and observer-dn3 (p2p 127.0.0.1:26661, rpc 26660, json 28660, evm 26860); ufw allows 26631 and 26651 since 17:27 BST; provision.sh's P2P_PORTS carries both; infra/build-server/devnet3/devnet3.{env,sh} with the NET_FLAGS placeholder until the node lane names the flag; read-back by the first log line, the commit-string count, the digest line, the "[igneum-exec] genesis executed" line and the server lines. The hands' nodes take no vote key (the miner's label is the key). The fleet: four gate pods on separate hosts renting with DESTROY=0; the fresh-genesis form, dn3_ tables, pay-by-key on the new chain and the no-stop cutover script follow; the capacity plan (a second node per standing box or a parallel set, the Devnet 3 hub) by 19:00 BST.
The app side: the app must start its node on igneum-devnet-3 (the network flag the node lane names; the manifest's channel; no override object), the chain scene and the ladder reading the new chain's facts, the first-block and earnings rows from zero: 0.3.22's app cut after the node is live, by signed update when Devnet 3 has 24 hours.
Era VDF (the era lane, 17:3x BST): f2ecf452 on 96161037, one round; the consensus crate whole 120 + 1 + 1, consensus-core 142, kaspa-pow 7; with the fields unset the digest is unchanged (the pinned devnet digest c562d70e read with the fields present; era_vdf_fields_enter_the_digest_only_when_set); at 0 it costs a node nothing for 180 days, then one core for an hour once; O-4.10 owed before any era 1.
The frozen sub-version 3 object (the Counter lane, 17:3x BST, handed to the node lane): igneum-pow 017e703764 on ca3-v4-amend (the audit-freeze-2026-10-07 tag; 2a111fb1 and 6941da1d above it are docs only). Object byte 7, PROGRAM_SUBVERSION_V4 = 3, the devnet epoch-0 program id a785001687d8688a (must-differ c120d7963abdcd96, 1a4230699a6b9c60, a788661687db4bb3); the kit packs-ca3-v4-sub3 zip sha256 4f2445c50c58d76a5544023492d8b858d0b07c5e372d31f9c90c4ce51f829154 (eight packs); fingerprints equal on Metal, Apple OpenCL, the fleet's 5090 (Linux CUDA) and PC 2 (Windows CUDA): mx8-devnet-epoch0 90f794dd556f7a3b (the v3 control), v4-devnet-epoch0 e370fb2080b7dbb1, era-0 b7237555d31fc3cf, era-1 b6b167fa15dfe2c9, era-2 28bdf65eff33f2c4, era-3 e26d38c46f3f1b16, era-4 dd8fdf6ff4f59eed, era-5 8bf40f5cb858d835. Both attack-pass gates GREEN on 017e7037 (the 64-seed hot-set census at 2^24: 60 of 64 under 1.2x; the exhaustion gate by construction and 0 of 24,631 chain-shaped seeds, max attempt 29); suite 103 of 103; CI success. Open, stated as open: the four-seed tail (p10 1.50x, p8 1.38x, p34 1.25x, p4 1.22x; main's ruling: the window model's unattributed residue with nil chip consequence; attribution for 0.3.23); the 10^6 chain-path count runs on as a strengthening line; the epoch draw costs about two attempts at 2.2 s once an hour; the owed measurements (G2, G3, the ladder, AMD on PC 1, the 2019-class core) do not gate Devnet 3. No further hash change rides 0.3.22. Devnet 3's object sets program_class_v4_activation_daa 0 and signals byte 7 from genesis.
1. The candidate: release-0.3.22-node = fa7f854f (16:37:50Z, 17:37 BST)
Three commits on 96161037: bd710a36 the sub-version 3 re-pin (byte 7, igneum-pow 017e7037, epoch-0 id a785001687d8688a, must-differ c120d796 / 1a423069 / a7886616); aded4620 era VDF (the era lane's f2ecf452, clean); fa7f854f the Devnet 3 object. The object: network igneum-devnet-3, flag --devnet --devnet-suffix=3, default p2p 26631 (ten above the previous suffix; gRPC, JSON and EVM on the devnet defaults unless passed); genesis 2026-10-07T00:00:00Z, payload "igneum-devnet-3 | 2026-10-07 | every upgrade on from block zero | coins here have no value | resets are announced", hash a6fa348e2a0fc6a5fa0ae3cb080160f5e2be865af71bac0068ca2fb8d1fcfd7b, bits 0x1d100000 (the DAA takes over after 600 blocks); active from DAA 0: difficulty v2, proving v0 and v1 (8 blocks a segment, 600 DAA, aggregator 1,000 bps, the fresh rule), finality v3, program class v3 and v4 (byte 7 from genesis, a one-day signal window), the latency ladder at rung 0, calibrated v1 fees, era VDF (main's ruling); at never (as on the live devnet, not in main's list): difficulty v3, the finality DAA-seconds rule, fork gate, peer directory, signing bonus, finality leave, pool split, consensus proof verify, exec restart (the chain executes from genesis). The node refuses --override-params-file on igneum-devnet-3 (mainnet, testnet, devnet suffixes 3 to 99; harness suffixes above 99 keep the file) and prints the digest with no file. Not in it: the N15 kept-datadir numbering class (p12-vast and pool-1 off by 2), 0.3.23's, the release note names it. Gates from 16:38Z: the release build on build-1 (gate priority); on build-2 the consensus crate whole, consensus-core, kaspa-pow with 017e7037's packs, the miner, the exec suite; then from the build the empty-datadir canary, the fresh-genesis digest agreement on two boxes, the late joiner, the shutdown under 1 s, the proving ids on a bare node.
build-1 for Devnet 3 (the build-server lane and the fleet, reconciled 17:40 BST), nothing started: the seed a bare process on p2p 0.0.0.0:26631 (rpc 27630, json 27632, evm 27810, empty datadir /home/build/dn3seed); the observer node on Devnet 3 is the fleet's instance (/srv/hands/bin/run-observer-node-dn3.sh, appdir /srv/hands/observer-node-dn3, rpc 26650, json 28650, p2p 26651, evm 26850, its observer.mjs on dn3_ tables running); the second node1 on p2p 0.0.0.0:26671 (rpc 26670, json 28670, evm 26870, appdir /srv/hands/node1-dn3, --enable-unsynced-mining); ufw allows 26631, 26651 and 26671; four units installed and DISABLED (igneum-observer-node-dn3, igneum-observer-dn3, igneum-hash-origin-dn3.service and .timer at 08:30 UTC with --prefix dn3_). On the go, in order: the 0.3.22 pairs under /srv/artefacts/0322-fa7f854f/ with the evm-types read, devnet3.env and dn3.env pointed at that igneumd, then seed --go, node1 --go, observer-node --go, each read back by the first log line, the string count, the devnet-3 digest line, the genesis line and the server lines.
Main (17:4x BST): fa7f854f accepted; the nine switches at never stay at never for the genesis (nothing untested flips under this clock); Devnet 3 is the chain they go live on by activation height, one at a time, each after its own gate, no further reset; consensus proof verify stays off until the proven share reads one. After genesis: the table of the nine (built and gated, built and ungated, not built; the owning lane; the earliest height) for the founder.
The fleet's Devnet 3 set, STANDING at 16:44Z: five boxes on five hosts (the hive package, the kill file, box-dn3.sh, a vote key each, the binary slot empty until the artefact lands): dn3-g1 RunPod 3070 (64.119.209.250, p2p mapped 21703) = the Devnet 3 HUB and default peer; dn3-g2 Vast 3070 Utah (154.64.230.67, p2p 27017) = the second genesis node; dn3-j1 Vast 3060 12 GB = the late joiner from empty; dn3-c1 Vast 3060 12 GB = the empty-datadir canary (12 GB, so the prover statement reads there); dn3-x1 Vast 3060 12 GB = spare and second joiner; hairpin checked (every Vast box reaches dn3-g1's mapped port and build-1's 26631). The cutover dn3-genesis.py (per box: the binary with its sha read back, box-dn3.sh with --devnet --devnet-suffix=3, appdir /root/fleet/dn3, no override, FRESH=1, UNSYNCED=1 on the two genesis boxes only, seeds dn3-g1, dn3-g2, build-1's 26631 and 26671; read back the string, the devnet-3 digest, the genesis hash line, synced, the first lock; nothing named on the old devnet), dry-tested. The gate dn3-gate.py: digest agreement g1/g2, the same first lock on both, the late joiner synced from them, the canary mining ten minutes with its blocks held by dn3-g1 and 0 rejects, shutdown under 1 s then the restart on the kept datadir, the proving ids on a bare node; one line per check with its UTC time, DN3 GATE PASS/FAIL. hub-1's second node staged (36610/36611/36790, outbound only, FRESH, MINE=0). Pay-by-key on the new chain through dn3-g1. The watcher on /srv/artefacts/0322-*/ starts the gate within the minute of the binary. Capacity for day one: a SECOND NODE PER STANDING BOX (box-dn3.sh on 36610/36611/36790, FRESH from empty, the box's existing key label on the new chain, MINE=1 with a second miner on the same card), rolled in three waves of 5/5/4 after the genesis pair locks, nothing stopped on the old chain; plus the five gate boxes and hub-1's and build-1's second nodes: about 22 voters; cost USD 9.2/day for the five gate boxes, the second nodes USD 0, the 0.3.21 warm set 11.52/day; the fallback a parallel set of fourteen 3070 pods (USD 44/day) only if the first wave shows card contention (the read: the live miner's rate and the dn3 node's template timing). Spend at 16:40Z: 406.49 of 1,000.
The 0.3.21 set, running on: c22-1's wipe in IBD; the warm-set cases' window running; N15's live line: p2-4090-1b's kept snapshot tips were side-tip blocks on the hub's DAG, the node refused them rightly and loaded the hub's snapshot, healthy, no discontinuity line (the node lane holds the reading); p1-5090 now; roll lines p2-3090-2 2.3314 and p2-3090-3 2.8553 IGN verified by key.
Main (17:4x BST): yes to the second node per standing box, three waves of 5/5/4 after the genesis pair locks, nothing stopped on the old chain, with two conditions: (1) a 24-hour exception to the one-miner-per-GPU rule, not a new rule: when the apps move to Devnet 3 and the old chain's miners stop, each box is back to one miner (written as an exception with its end in the fleet notes); (2) the contention read on wave 1 decides the fallback mechanically: a live miner's rate on any of the five down more than 10 percent against its hour-before mean, or the dn3 node's template latency above the 0.3.20 gate figure, takes the 3070 set for the remaining waves without asking; spend under the USD 1,000 ceiling either way.
The app side of 0.3.22 (the shipper): the app's node starts on igneum-devnet-3 through its packaged config (Runtime.network "devnet" with devnet_suffix 3, read from igneum-app.json in the 0.3.22 package; the OTA update replaces the package, so the signed 0.3.22 update is the move), with node_dir devnet-3 (a fresh datadir beside devnet-v4, the old chain's kept for the way back), the node_override_file None on a suffixed devnet (the node refuses the file; the OTA manifest's consensus.override is ignored with a log line on devnet-3), the chain scene, the ladder, first-block and earnings reading the new chain from zero, the prover on the new chain's records; the manifest for the 0.3.22 publish carries channel "devnet-3". Cut after the genesis on its own branch release-0.3.22 off release-0.3.21's tip; published by signed update when Devnet 3 has 24 hours (main's clock).
5. The genesis: 69d1b56e, 18:06:19 BST
The timestamp fault and the fix: fa7f854f and 21d8f454 carried a genesis timestamp of 2026-10-08T00:00:00Z, so every block read "too far into the future"; the node lane's 69d1b56e sets 2026-10-07T00:00:00Z (genesis hash 4020cb4382e3fe4b…b925, test every_compiled_genesis_lies_in_the_past_of_the_clock). ab9af79f is void with it; the igneum-devnet-3 digest with no override file on 69d1b56e is 83eb50cdf2eda4cb…22b2.
Gates on 69d1b56e, every one green: build-1 release build 18:03:03 BST; box suites on build-2 (kaspa-consensus whole 120 + 1 + 1 at 18:02:17, igneum-exec 36 at 18:03:09, kaspa-consensus-core 152 at 18:03:40, kaspa-pow 17 at 18:04:31, igneum-miner 25 at 18:05:22 against the sub-version 3 packs); the canary set from the artefact (object 7 / 1794, era VDF from 0, ladder rung 0, fees v1, shutdown 677 ms after SIGTERM, the override file refused exit 1 while the shared devnet still takes it, two empty nodes handshaking with equal digests, the shared-devnet node rejected with the network mismatch); the pack gate PASS by construction on dn3-g1 (miner c29f33bb = the pair's, the pack exported on the box, the hive 0.3.20 miner 4050c255 refused); the program id read back fce15bf61030be57 (see the correction below).
The pairs: node-lane pair igneumd 0751598f (57,816,736 B) and igneum-miner c29f33bb under /srv/artefacts/0322-69d1b56e/node-lane/; the build-server lane's hands pair igneumd efb54938 (57,817,120 B, GLIBC_2.39) and igneum-miner 07246920 under /hands/, seed pair fb15cecf and f8c40e1c under /seed/ (the miners byte-identical to 21d8f454's: the miner does not embed the genesis). The shipper's ruling: the node-lane bytes stand as the genesis pair on dn3-g1 and dn3-g2; the hands pair goes on the joiners, hub-1 and build-1.
The genesis reading: dn3-g1 (the Devnet 3 hub, 64.119.209.250:21703) up 18:04:55 BST, "igneumd/2.1.0-69d1b56e", digest 83eb50cd, "genesis 4020cb43… executed: chain id 4463", miner from 18:05:19, FIRST BLOCK ACCEPTED 18:06:19.920 BST ("PoW accepted c313ddac… by igneum-lottery-v2-bound, daa 0, epoch seed 4020cb43…"), 85 of 85 GPU blocks by 18:10, 287 by 18:14, 0 rejected. dn3-g2 (154.64.230.67:27017) up 18:17:58 BST on the same pair, synced from g1 (639 blocks at 18:18:52), mining from 18:18:15; 702 blocks, daa 702 at 18:19:08, 0 rejected on either; finality checkpoints 20 (985353b4…), 21 (e788fac0…, blue score 631), 22 (f45336bd…, blue score 660) identical on both logs. The genesis declared on that agreement at 18:25 BST (main noted it at 18:18 BST). The object's finality window is 7,200 DAA, so no checkpoint can lock before about 20:10 BST; the first lock is a follow-up line, not a gate (the fleet's check 2 re-lettered to "first common lock within 30 minutes of DAA 7200"). The go to build-1's seed (26631), node1-dn3 (26671) and the observer unit on the hands pair went at 18:24 BST; the joiners dn3-j1, dn3-c1 (ten-minute canary) and dn3-x1 place on the hands pair. Nothing in the go path reads GitHub (both lanes confirmed: /srv/artefacts, the box mirror for the observer clone, the dl host for the hive package and the kit zip). The executor on a fresh devnet-3 node logs "waiting for consensus to sync before the executor starts (the sink is 61,000 s old)" until the first block, then executes genesis: expected (the genesis is 17 hours old by design), not a fault; runbook row.
Program id correction (the Counter lane, 18:1x BST): Devnet 3's epoch-0 class v4 program id is fce15bf61030be57 (read in the 0.3.22 miner's "cache ready" line on build-1 at 18:10:39 BST and on dn3-g1); a785001687d8688a is the SHARED devnet's epoch-0 id (genesis edc4fa84) and the kaspa-pow pairing pin, which is unchanged because the id follows the seed. Every Devnet 3 box's gate wants fce15bf61030be57 at epoch 0 and stops the miner on 1a4230699a6b9c60 or a785001687d8688a; the per-epoch form (the miner's line equals the node's seed-derived id, read each 3,600 DAA) is for after tonight. Both paired miners on dn3-g1 printed fce15bf61030be57, so the node drew Devnet 3's seed and the record is right.
The nine switches: recorded as section 6.11 of docs/plans/counter-asic-3-node.md (branch ca3-v4-node e70535fc on the box mirror, 18:15 BST), one row per switch with state, owner, gate and the earliest Devnet 3 height; signing bonus is not gateable on 69d1b56e (c7ea1e21 silent_split missing) and is 0.3.23's; every height reads as lock time + DAA seconds at 1 block/s.
Found by the 0.3.21 wipe canary, fixed 18:14:35 BST: the Hetzner live seed 188.245.5.161:26611 was still on the old sixteen-field object (digest eada4bda) one hour forty after the 0.3.20 sweep; it was never in a wave (the 15:56 go listed the hands and bps-seed, not it). Per tier: fleet voters, hub and pool-1 unaffected (they peer on the hub); every 0.3.20 app on the floor file saw a reject line at each dial of the seed and synced through the hub and node1 instead (c22-1 did); a fresh joiner configured with only the seed could not join. The build-server lane (infra/devnet/restart-seed.sh over the ops key) installed the c4459193 seed-class igneumd 4a2d8a8d and the floor file 294f1f80, unit igneumd-v4 down about 3 s, read-back "igneumd/2.1.0-c4459193", digest 4bbbe816 MATCH, 278 blocks accepted in the first minute. Rule 5 now names the seeds with a read-back line.
6. After the genesis: the clocks, the rulings, the 0.3.22 tree (18:3x to 18:5x BST)
DN3 GATE PASS (the fleet, 18:36 BST): digest and checkpoint agreement on dn3-g1/g2 (checkpoints 20 to 29 identical, lock line 855414eb identical), late joiner twice (dn3-j1, 911 then 1,099 blocks), canary blocks held (dn3-c1, 15 of dn3-g1's last 900), shutdown 589 ms, bare-node proving ids present; two of the six lines read by hand after script faults of the fleet's (inspect arguments reversed; a token read broken by spaces), both fixed and recorded. Eight nodes on five hosts plus build-1's seed, node1-dn3 and observer, all on 83eb50cd, about 1,900 blocks at 18:36 BST. The relay set dn3-relay, dn3-poison, dn3-twin rented for the cases. The first finality lock at DAA 7,200, about 20:10 BST; the second-node wave 1 on the standing boxes starts on that line (main's two conditions).
The two clocks (main): the 0.3.22 apps publish at 18:30 BST on 8 October on green (the 24-hour line is 18:06 BST); the first Discord card (Devnet 3 + 0.3.22) publishes after the fleet's relay run on Devnet 3 reads CASES END with the relay cell read AND the 0.3.22 apps are out; the card names the first-block time, the chain id and the launch-first chip line from master 9b996d06, no prize; staged at scratchpad/r0322/discord-card-devnet3-0322.md, main reads it after the relay run.
The 0.3.22 app tree and its order (accepted by main): release-0.3.22 at 27ab317e on the box mirror = release-0.3.21 44b63ac9 merged (7f07a37f) + driver-check 46cc41e9 (27ab317e; the eGPU driver-install hold and warning); app gate GREEN on build-2 at 18:33 BST (259 + 33 + 8, pre-push 56). Missing, in closing order: (a) the node pin = N15 dfae08e5 rebased onto 69d1b56e on release-0.3.22-node, gated, plus whichever switch heights are green by the cut; (b) the Windows node pair from build-1's cross and the payload inputs, the installer by the PC 2 job shape while GitHub is out, the Mac node pair and DMG on the Mac under the lock; (c) the hive 0.3.22 package with the sub-version 3 kit inside; (d) the manifest on channel devnet-3, KEEPING the floor file for the 0.3.20 and 0.3.21 apps until the intake shows no app below 0.3.22 for 24 hours (main's ruling; the 0.3.22 app ignores the file by construction); (e) the app's vote key hash to the intake and the publisher's --public ui arm; (f) node_peers adds dn3-g1 64.119.209.250:21703 and dn3-g2 154.64.230.67:27017 beside build-1.
the founder's ruling on the nine switches (through main, 18:4x BST), executed by the node lane on Devnet 3 by activation height, each with its gate line and a read-back on every node, no reset, one at a time: (1) peer directory, pool split, fork gate ON in that order, each height set the moment its 6.11 condition reads true; (2) difficulty v3, the finality DAA-seconds rule, finality leave up: mid-chain crossing tests on the fast-time harness tonight, each height set as its test goes green; (3) signing bonus: one paragraph for the founder on whether it changes total minted supply or only who is paid, with the number; (4) mandatory proof verification ON after 24 hours of every Devnet 3 block proven on the hash-origin report, the fleet's provers on Devnet 3 from tonight, the share reported hourly; (5) exec restart never. Mechanics (main): a height is a constant in the igneum-devnet-3 Params of a node commit, rolled out by the sweep (one box at a time, commit string and height line read back, the hub first); never a file, no new signed-record mechanism; one commit may carry several heights staggered so the chain crosses them one at a time; a node that misses the commit forks off at the height, as designed, which is the test; each commit is a release of the node line (0.3.22, 0.3.23) and reaches the apps by the signed update. Recorded in 6.11 by the node lane as heights are set; each height to main as a clock reading.
Testnet re-arm (main, through the build-server lane): the arming on fork e6dd3afd (digest 4fbb2152, genesis 01294fd3) is void (old object; a go on it hard-forks at sub-version 3). The node lane cuts a testnet genesis object on release-0.3.22-node in the Devnet 3 shape (byte 7 from genesis, every activation at 0 that Devnet 3 has at 0, era VDF at 0, a past genesis timestamp with the future-genesis test beside it, no override file, the testnet's seeds and chain id as they are); the build-server lane builds the seed-class pair under /srv/artefacts/testnet-/seed/ and dry-runs wave1-0320.sh against seed1/2/3 at height 0; nothing onto a seed and nothing mines before the founder's word (not before 15 October, LG-2).
0.3.21 Windows, the toolchain finding (18:37 BST): PC 2's installer job (take 2, 68 s) verified the payload (igneum-app.exe 151803c7 prints "igneum-app 0.3.21", igneumd.exe 49502cc7 "igneumd 2.1.0") and stopped on PC 2's toolchain: no MSVC (no window host "Igneum Miner.exe", whose host.cpp changed in update-return-21) and no Inno Setup 6 (no installer; winget refused by the job as told). Three shapes put to main at 18:45 BST: the Mac entry now and Windows later (the manifest carries a platform that lands later; 0.3.20 Windows apps do nothing until their entry arrives); winget Inno Setup on PC 2 (still no 0.3.21 host); the host by mingw on the box (dry compile asked) or Windows held until GitHub returns and windows.yml runs. deploy.sh carries --mac-only for shape (1); the full preflight stands for the Windows entry.
Proving on Devnet 3 opens (the fleet, 18:45 BST): dn3-x1's first segment 1024..1031 claimed 18:44:23 BST and SUBMITTED 18:45:49 (8 of 8 shards accepted, proof 1,272,909 bytes, 86.1 s end to end, peak 8,534 MiB on a 3060 12 GB); its record waits in dn3-g1's pool for a carrier; the paid-by-key line opens the 24-hour window for the founder's mandatory-verification rule. Sizing: about 42 segments an hour per 12 GB card against 450 an hour made, so 11 cards reach a share of one; 14 more 3060 pods renting (about USD 0.85/h together, 20 a day). The 0.3.21 warm cases (CASES-W21 END rc 0, 18:47 BST, on 96161037): the target refused every version-1026 block (44,081 seen, 0 accepted), restarted back at the tip, the hub holds 900 of its last 900; the relay cell again reads the target's own refusal, not a relayed poison block, so Devnet 3's relay run (relay on the hands pair synced before the window, the twin peered to the relay alone) is where that cell gets read, and its CASES END is the card's gate.
7. the founder moves the apps to Devnet 3 tonight (19:1x BST): the pin, the tree, the clock
the founder's word (through main, 19:10 BST): the apps and the site's live page move to Devnet 3 now, not tomorrow. The clock: the 0.3.22 node pin at 19:15 BST; the Mac entry about 20:15 BST on channel devnet-3 (the floor file kept in the manifest for the 0.3.20 and 0.3.21 apps until the intake shows none below 0.3.22 for 24 hours); the Windows entry as its own entry when PC 2's smoke runs, about 21:00 BST, the 0.3.21 Windows entry skipped in its favour (said in the notes); the hive 0.3.22 package with the sub-version 3 kit published with the pin, the fleet's standing boxes moving in waves after the first lock; the site's live page pointed at the dn3 observer on build-1 after the first lock (about 20:10 BST), deployed from the box with the Vercel CLI as a site-only deploy of master's live tree (GitHub dark), edge time to main. Heights ride 0.3.23, set from the 0.3.23 sweep's finish with a two-hour margin (plan: 12:00 BST 8 October, difficulty v3 at the first multiple of 7,200 DAA at or after 14:00 BST, the other two 7,200 apart).
The pin: release-0.3.22-node = 34a2dbaa at 19:15 BST, no heights (69d1b56e + the testnet object 6ed56f63 + the N15 kept-datadir fix dfae08e5; igneum-devnet-3 digest 83eb50cd unchanged, igneum-testnet-1 87d103b6 on the same binary). Gates on the exact commit: build-1 build 18:40:26 BST (igneumd bc25693c, node-lane pair under /srv/artefacts/0322-34a2dbaa/node-lane/); build-2 suites consensus 122, exec 37 (the new scan test), pow 17, miner 25, core 152 by 18:42:51; canary set green (shutdown 567 ms, override refused, handshake, mismatch rejection). The Devnet 3 join-and-restart read is the fleet's. Crossing cases on the fast-time harness: difficulty v3 pass GREEN 19:08 BST and known-failed FAIL as expected; the DAA-seconds rule and finality leave green on the chain's reading but the harness's checkpoint read used the wrong RPC parameter, rerun by 19:22 BST; no heights commit could carry gates by 19:15, so every height rides 0.3.23 (0.3.23 line: 18473645 = 43360992 + d840537b subsidy_per_block, gates green, digest edit list 25; daa61847 rebased by the genesis-forward lane).
The 0.3.22 app tree at 19:15 BST, release-0.3.22 c977786b on the box mirror: 27ab317e (release-0.3.21 44b63ac9 + driver-check 46cc41e9) + pool-finish-21 8f2aae75 (the Devnet 3 split-read tool) + signing-22 e1b01654 (vote on by default pinned by test; Overview and Cards rows read signing or silent with the reason) + key-22 6501558f (scene/live-dag.js 2.0.5 legend, the app's chain card renders it, the site untouched) + c977786b (node_peers adds dn3-g1 64.119.209.250:21703 and dn3-g2 154.64.230.67:27017; self-test reads four). App gate on build-2 GREEN at every step (last 259 + 33 + 8, rc 0); pre-push 56 on each push. Riding if on the mirror by 19:45 BST, else 0.3.23: boot-start-22 (the engine starts at boot without a logon on Windows; a headless engine never reads a closed stdin as the host leaving), the export-wait reliability item (a worker never waits on the export past one retry interval), the driver-check hold-every-card-of-the-vendor rule, the UI lane's shard words. The Mac node pair builds on 34a2dbaa under the lock from 19:12 BST (r0322/mac-node-34a2dbaa.sh), then the DMG.
PC 2 tonight: the take-4 0.3.21 installer (mingw host, run-20261007-175020) was picked up at 18:51:57 BST before its removal deployed and the runner's abort ended the install in its first second (the build-server lane's fault, two rules added to the job tooling: an installs-app job is never removable without --force; never remove a published job without reading the machine's latest line); the update-return lane re-ran the kept installer at 19:07:56 BST and the 0.3.21 engine then restarted four times a minute apart and died ("quit requested by the window host went away (stdin closed)" 3 s after the node start: an engine started by a parent whose stdin closes at once); the founder reinstalled PC 2 by hand with the public 0.3.20 installer (45b2f3fb, the MSVC host; the public alias confirmed as that file by hash at 19:12:54 BST). PC 2 is read-only for every lane until its app uploads as 0.3.20; then the 0.3.22 installer job (--installs-app) and the smoke, one job at a time; then the Intel lane's driver retry with the minidump copy folded in (one UAC click). PC 1: released to the Counter lane's queue at 19:04:37 BST (the 0.3.21 MSVC host e223db18 built there in 9 s, collected by the relay Blob); one slot for the 0.3.22 host (app/windows/version.h moved to 0.3.22, host.cpp untouched).
8. Published: the Mac entry and the hive, both download folders (20:0x BST)
The 0.3.22 tree closed at 5a84925b (19:46 BST) = c977786b + MF-14 7a9c8371 (export wait) + driver-hold-22 f8ed911e (every card of the vendor) + boot-start-22 345336d8 (boot start, headless engine, no stdin quit) + shards-22 9a4d3429 + the pool daemon fix 9fd3b258 + window-22 07a97c65 (the opening size from the primary monitor) + boot-start-22 8da235e6 (the window host gate) + ota-cut a4f58820 (ui/VERSION 1.0.2, the pair check) + driver-hold-22 d571a120 (Intel 6733 row); app gate GREEN on build-2 at every step (last 269 + 34 + 8), UI 83, pre-push 59; then 58409175 (the Windows node pin to 34a2dbaa) and 4cdcab31 (the pool split-read tool) on the packaging and tools side only.
Interface 1.0.2 LIVE 19:45:33 BST in the 0.3.21 manifest (the Prove switch fix, cut from the 0.3.22 UI tree at 1d975bcc, min_engine 0.3.21, bundle 84b679ce), after the founder's Mac screenshot showed interface 1.0.1 (cut from 0.3.20) serving the pre-fix rules over the packaged 0.3.21 UI; the version-pair gate (pair-check.mjs) now refuses a manifest whose interface bundle is not from the app entry's tree.
The token rotation (main's A, 19:5x BST): the current dl token sits once in history (564acab5, a deleted bench log), so it rotates in 0.3.22: dl-token.next minted on the Mac (the first value voided at 19:54 BST after one tool trace printed it, its folder removed; the replacement's fingerprint 6a5f3d09, never printed), the new folder created, every cut from then reads the .next file (build-dmg.sh and make-payload.sh by default), the 0.3.22 manifests written in BOTH folders (publish-manifest.sh --dest and --base-url for the new one, the override, min_supported and the signed 1.0.2 interface entry carried by hand; the interface entry keeps its old-folder URL until 0.3.23 re-signs it in the new folder; the two manifests differ only in the folder inside the URLs), one deploy; the old value is refused 24 hours after the intake shows no header on the old path, the same clock as the floor file's removal; the history rewrite masks it. publish.mjs (ui-ota) reads dl-token directly and takes the .next rule on 0.3.23. The hive package carries no token. New jobs publish with URLs in the new folder.
Mac LIVE 20:00:42 BST, channel devnet-3, both folders: Igneum-Miner-0.3.22-34a2dbaa.dmg 5ec57528 (45,442,838 bytes; app 5a84925b, the Mac node pair 7346022d/d91ad025 built on the Mac under the lock from 34a2dbaa; packaged config igneum-devnet-3, four peers, no override file, the new folder's manifest URL), interface 1.0.2 with ui_version stamped, the floor file kept for the 0.3.20 and 0.3.21 apps; the old folder's manifest advertises 0.3.22, so every app moves on its next check; read back from both folders. Runbook r0322/deploy.sh (preflight: both manifests same fields, every mac URL inside its own folder). HiveOS 20:03:07 BST: igneum-hive-0.3.22.tar.gz 8ad6dcef (the 34a2dbaa hive pair glibc 2.31, the two hive-class workers, the two kit zips under packs/ incl. the Devnet 3 epoch-0 pack fce15bf61030be57, smoked in ubuntu:20.04) in both folders and at the public alias (publish-public.sh names the alias target from igneum-hive-.tar.gz, so the public copy carries the plain name); the fleet sweeps the Devnet 3 nodes to 34a2dbaa after wave 1 (dn3-g1 first; the live shared-devnet nodes stay on c4459193 until the apps have moved).
Devnet 3 first lock 20:02:46 BST: checkpoint 235 LOCKED on both genesis boxes (block 50266abe, blue score 7050; dn3-g2 signed 100.1 percent of active, dn3-g1 98.4 percent), 1 h 56 min after the first accepted block; finality active from DAA 7,200; wave 1 of the standing boxes' second nodes started 20:03:06 BST. Proven share, first hour (19:59 BST read): 0.285 cumulative since genesis (no prover in the chain's first 51 minutes); ten provers claiming at about 1.2 times the chain's rate; the 24-hour window for mandatory verification counts from the first hour whose own segments read one. Relay cases on Devnet 3: CASES END rc 0 at 19:49:06 BST with the relay cell READ on the relay's own log (the poison's digest refused twice, 0 peers, 0 blocks); the hub-holds-target cell on a fresh pod goes in the record. The card (r0322/discord-card-devnet3-0322.md) read by main at 20:05 BST, three edits taken; it publishes the minute the Windows entry is live.
Rule from the pool lane (recorded here and in the pool plan): a pool daemon is built from the same repo tree as the chain's node, never a release behind; the 0.3.21-tree daemon hashed class v4 sub-version 2 against Devnet 3's sub-version 3 and refused every share as WRONG HASH; the Devnet 3 pair runs the 0.3.22-tree daemon (c15b39b0) since 20:02 BST. Also: a template every second on a 1-block-a-second chain outlived the 12-job window (25,477 unknown_job shares); the daemon keeps jobs 60 s or 256 per member (9fd3b258, in 0.3.22).
Windows, in flight: the 0.3.21 Windows entry is skipped in favour of 0.3.22's; window-22 changed host.cpp and the host gate refuses a host without the cut's version, so a fresh MSVC host builds on PC 1 in a slot after the hash lane's 5090 pass (about 20:20 BST, unelevated, no click), then host.sha256, the kit, the PC 2 installer job (--installs-app) and the smoke (0.3.21 to 0.3.22, the LG-4 timed steps as one measured row "one run, PC 2, not a fresh image"); reading about 21:30 BST. The rights-at-install step (3fbf4280) raises one UAC on a first install and the founder's rule tonight is no click, so it rides 0.3.22 only with a "deferred in a job session" commit by 20:20 BST, else 0.3.23. PC 1's elevated passes cannot run under the no-click rule; the hash lane rebuilt the efficiency pass through the Power Helper task (unelevated).
9. After the Mac entry: the 0.3.23 line tonight, the testnet text, the Windows host (20:1x to 20:3x BST)
the founder's rule applied by main: no calendar waits. The 0.3.23 node (release-0.3.23-node = 2720d8d2 = a099594f, the cache-rung digest fix with Devnet 3's digest 83eb50cd read back, + the three heights in devnet3_params(): difficulty_v3_activation_daa 79,200 about 16:01 BST 8 October, finality_daa_rule_activation_daa 86,400 about 18:01, finality_leave_activation_daa 93,600 about 20:01, one weight window apart, from the lock at DAA 7,298 at 20:02:46 BST; 72,000 refused as one minute above the floor) cuts tonight the minute its gates read green; the Devnet 3 sweep to it follows the 34a2dbaa sweep with no gap; the 0.3.23 apps go out on the pollers tonight. Class v5 is its own release, 0.3.24, cut the minute every v5 gate reads green at any hour (the v5 kit packs-ca3-v5-20261007T183921Z.zip e6c088bb, program id e5a4ac5978462156, fingerprint 82b19cbde8557ea5 on Metal, Apple OpenCL and CUDA; the class_signal under-window fix on class-v5-node-wire). The 34a2dbaa pin's last gate PASS at 20:07 BST (the dn3-c1 join-and-restart with the N15 line). One release is one crate tree: the rights step at install (boot-start-22 332b82eb, deferred in a job or session-less install; the WebView2 right webview2-runtime@109.0.1518.78, no bootstrapper until packaging/windows/webview2.sha256 names one) and the unattended driver install (driver-hold-22 50cdb8e4) landed after the 0.3.22 close, so they ride 0.3.23: release-0.3.23 opened on the mirrors at 4cdcab31, now 2f27ecb1 + check-labels-23 e6f9ef0b; app gate GREEN on build-2 (279 + 34 + 8).
The testnet text is VOID until the re-cut (main, 20:2x BST). The testnet object on the 0.3.22 line (6ed56f63, in the pin 34a2dbaa) and on the 0.3.23 line carries the 4 October genesis message "igneum-testnet-1 | 2026-10-05 | proposed, not final | coins here have no value | resets are announced", hash 52a3e6a9; nobody reads 52a3e6a9 as the go object. The FINAL text ("igneum-testnet-1 | 2026-10-05 | coins here have no value | resets are announced") exists only on the testnet lane's tree testnet-genesis-2-node (59d05bf2, 18 decimals, the 16-byte subsidy layout). latency_ladder_cache_rung_activation_daa does not exist on the 0.3.22 line (predates the genesis-forward merge); the 0.3.23 line sets it at 0 for the testnet. Ruling (confirmed by main): the testnet object is re-cut on the 0.3.23 line after the founder's decimals word at 21:40 BST (the decimals lane's code, the final text, the cache-rung field, a new testnet genesis hash and digest; Devnet 3 untouched), the seeds re-armed on it; if 2720d8d2 is green before his word, 0.3.23 ships tonight with the void testnet text (harmless: nothing mines there, the apps default to Devnet 3) and the re-cut is 0.3.24's second item. The node lane's scratch read cuts the object at 18 and 8 decimals (hash and digest of each) so his answer is a one-line switch.
PC 1 tonight (no click on any PC job, the founder away two hours): the 5090 efficiency pass through the Power Helper task exited 0 at 20:16:27 BST (the elevated form at 19:31 BST exited 251, the UAC prompt unanswered); the 0.3.22 MSVC window host job holds the slot from 20:17 BST (unelevated, nine seconds, from the installer kit at 4cdcab31; window-22 changed host.cpp and the host gate refuses a host without the cut's version); then main's order: the second 5090 pass 1,400 MHz to the driver floor, the 5080 pass, the measurement rows, the two tunes. The live page: live-dn3 (the UI lane, f449119e) deploys the minute its gate is green by the documented shape (the box builds and gates the export, the Mac's CLI uploads it).
7. The founder moves the apps to Devnet 3 tonight (19:1x BST): the pin, the tree, the clock
The founder's word (through main, 19:10 BST): the apps and the site's live page move to Devnet 3 now, not tomorrow. The clock: the 0.3.22 node pin at 19:15 BST; the Mac entry about 20:15 BST on channel devnet-3 (the floor file kept in the manifest for the 0.3.20 and 0.3.21 apps until the intake shows none below 0.3.22 for 24 hours); the Windows entry as its own entry when PC 2's smoke runs, about 21:00 BST, the 0.3.21 Windows entry skipped in its favour (said in the notes); the hive 0.3.22 package with the sub-version 3 kit published with the pin, the fleet's standing boxes moving in waves after the first lock; the site's live page pointed at the dn3 observer on build-1 after the first lock (about 20:10 BST), deployed from the box with the Vercel CLI as a site-only deploy of master's live tree (GitHub dark), edge time to main. Heights ride 0.3.23, set from the 0.3.23 sweep's finish with a two-hour margin (plan: 12:00 BST 8 October, difficulty v3 at the first multiple of 7,200 DAA at or after 14:00 BST, the other two 7,200 apart).
The pin: release-0.3.22-node = 34a2dbaa at 19:15 BST, no heights (69d1b56e + the testnet object 6ed56f63 + the N15 kept-datadir fix dfae08e5; igneum-devnet-3 digest 83eb50cd unchanged, igneum-testnet-1 87d103b6 on the same binary). Gates on the exact commit: build-1 build 18:40:26 BST (igneumd bc25693c, node-lane pair under /srv/artefacts/0322-34a2dbaa/node-lane/); build-2 suites consensus 122, exec 37 (the new scan test), pow 17, miner 25, core 152 by 18:42:51; canary set green (shutdown 567 ms, override refused, handshake, mismatch rejection). The Devnet 3 join-and-restart read is the fleet's. Crossing cases on the fast-time harness: difficulty v3 pass GREEN 19:08 BST and known-failed FAIL as expected; the DAA-seconds rule and finality leave green on the chain's reading but the harness's checkpoint read used the wrong RPC parameter, rerun by 19:22 BST; no heights commit could carry gates by 19:15, so every height rides 0.3.23 (0.3.23 line: 18473645 = 43360992 + d840537b subsidy_per_block, gates green, digest edit list 25; daa61847 rebased by the genesis-forward lane).
The 0.3.22 app tree at 19:15 BST, release-0.3.22 c977786b on the box mirror: 27ab317e (release-0.3.21 44b63ac9 + driver-check 46cc41e9) + pool-finish-21 8f2aae75 (the Devnet 3 split-read tool) + signing-22 e1b01654 (vote on by default pinned by test; Overview and Cards rows read signing or silent with the reason) + key-22 6501558f (scene/live-dag.js 2.0.5 legend, the app's chain card renders it, the site untouched) + c977786b (node_peers adds dn3-g1 64.119.209.250:21703 and dn3-g2 154.64.230.67:27017; self-test reads four). App gate on build-2 GREEN at every step (last 259 + 33 + 8, rc 0); pre-push 56 on each push. Riding if on the mirror by 19:45 BST, else 0.3.23: boot-start-22 (the engine starts at boot without a logon on Windows; a headless engine never reads a closed stdin as the host leaving), the export-wait reliability item (a worker never waits on the export past one retry interval), the driver-check hold-every-card-of-the-vendor rule, the UI lane's shard words. The Mac node pair builds on 34a2dbaa under the lock from 19:12 BST (r0322/mac-node-34a2dbaa.sh), then the DMG.
PC 2 tonight: the take-4 0.3.21 installer (mingw host, run-20261007-175020) was picked up at 18:51:57 BST before its removal deployed and the runner's abort ended the install in its first second (the build-server lane's fault, two rules added to the job tooling: an installs-app job is never removable without --force; never remove a published job without reading the machine's latest line); the update-return lane re-ran the kept installer at 19:07:56 BST and the 0.3.21 engine then restarted four times a minute apart and died ("quit requested by the window host went away (stdin closed)" 3 s after the node start: an engine started by a parent whose stdin closes at once); the founder reinstalled PC 2 by hand with the public 0.3.20 installer (45b2f3fb, the MSVC host; the public alias confirmed as that file by hash at 19:12:54 BST). PC 2 is read-only for every lane until its app uploads as 0.3.20; then the 0.3.22 installer job (--installs-app) and the smoke, one job at a time; then the Intel lane's driver retry with the minidump copy folded in (one UAC click). PC 1: released to the Counter lane's queue at 19:04:37 BST (the 0.3.21 MSVC host e223db18 built there in 9 s, collected by the relay Blob); one slot for the 0.3.22 host (app/windows/version.h moved to 0.3.22, host.cpp untouched).
10. The chain id finding, the proven share, the pool hour (20:5x to 21:0x BST)
Chain id, a fact for the record (main's ruling 21:0x BST, corrected by the node lane 21:1x): eth_chainId answers 0x116f (4463) on both the live shared devnet and Devnet 3 (the fleet's read at 20:59 BST while closing the steward's MINER_KEY item), so from Devnet 3's first block at 18:06 BST until the class v5 floor's crossing (the 0.3.24 object, about 01:00 BST on 8 October at the estimate) a signed transaction replays across the two chains by the chain id alone (the networks refuse each other at p2p; a raw transaction carried by hand to the other chain's RPC is accepted). Nothing of value sits on either chain. The first form ("existing transactions judged by the id they carried at acceptance, new ones at 4464") does not hold: body validation checks every EVM transaction of every block against one fixed id and the executor runs each recorded transaction under one env id, on history as on new blocks, so a 0.3.24 node at a flat 4464 would refuse every past Devnet 3 block carrying a 4463 transaction and re-execution would move the state root. The form that lands in the v5 object commit: on a suffixed devnet the chain id is a function of the block's DAA score, 4463 below program_class_v5_activation_daa and 4464 from the floor on, for validation, execution and CHAINID; the mempool and templates take the id valid at the tip (so until the floor a new transaction still carries 4463), eth_chainId answers the executed tip's; one digest move at the crossing the v5 object already makes. Rule from tonight, a gate check: every network object names a chain id no other object carries (mainnet 4461, the testnet 4462, the shared devnet 4463, Devnet 3 4464, a suffix N devnet 4461 + N; the simnet keeps 4463 as the devnet's tooling twin), a test over every Params table, known-failed first on tonight's duplicate.
The steward's two items before the public repository opens, both closed: tools/exec-attacks/lib/common.mjs MINER_KEY is the public Anvil/Hardhat default account 1 key (five harnesses use it; balance 0 and nonce 0 on both chains at 20:55 and 20:59 BST; the fix is a chain-id guard in the five harnesses and a README line, a 0.3.24 steward row); app/igneum-wallet/src/hd.rs's KEY in one history commit is the public Hardhat default account 0 key in a removed test.
Proven share, the second hour (20:59 BST): cumulative 0.468 (1,848 of 3,952 shards since DAA 0); the hour's own segments 0.84 (1,094 of 1,304), the shortfall mostly the 34a2dbaa sweep's one-minute node restart per prover; eleven provers (five 3060s at about 85 s a segment, two 3090s, three 4090s, one A5000), a twelfth starting; the next hour's own segments should read one and the founder's 24 hours count from the first that does. The pool hour counts from 20:33:28 BST (dn3-pool-b's first OPEN SHARE on the 017e7037 daemons a357c581; WRONG HASH 0 since), the pool split's condition.
11. The 0.3.23 cut (21:1x to 21:3x BST): the fold, the version miss, the LG-4 shape
release-0.3.23 = 05c2ddfe on the mirror: 2f27ecb1 (the rights step 332b82eb with the deferred rule and the WebView2 right, the unattended driver install 50cdb8e4) + check-labels-23 e6f9ef0b + ota-token-23 757d7870 + the Windows pin to 2720d8d2 + dpi-23 ad407b13 (per-monitor DPI; BUILD-APP.bat, host.rc, host.manifest, host.cpp) + network-23 b18a5b0f (the first-run network step: the manifest's default_network, the testnet card present and refused until testnet_open, --testnet --netsuffix=1 with the seeds as --addpeer; view.test.mjs resolved as the union of the check-labels and network tests) + install-close-23 5140e6fe (main's fold inside 15 minutes: the installer's stop step ends the window host first by path and waits up to 30 s for the unlock, CloseApplicationsFilter and SetupMutex in the .iss, install-running.flag holds every relaunch, the engine prints EXIT update and the host ends instead of restarting; tests known-failed first on tonight's PC 2 sequence) + the version bump 05c2ddfe. App gate GREEN on build-1 at every step (last 284 + 35 + 8), UI 86, pre-push 59. The version miss (rule 15): the branch carried 0.3.22 in every place until 21:26 BST, caught by the build-server lane before the host job; the exes and kit from 1c5323be are void. The Mac DMG re-cut under the lock on the 2720d8d2 Mac pair (igneumd efff01cd, igneum-miner 45c4c68f); the 0.3.23 host from the 05c2ddfe kit in the PC 1 slot after the hash lane's floor grid; the manifest carries default_network devnet-3 and keeps the floor file; the 0.3.23 Windows smoke is the first read of install-close-23 over a running app (the installer's own stop step, no pre-stop by the job) and of the OTA-return line through the app's own path.
The 0.3.22 Windows smoke, take 1 FAIL (20:54 BST), the job shape: the installer 5ac3dc62 built clean on PC 2 (every exe 0.3.22, the MSVC host 4bc25b7f through the host gate), but the job's silent install over the running 0.3.21 app sent api/quit, the engine stopped, the window host (the same pid since 19:14 BST) never stopped and its restart ladder relaunched the old engine 10 s later, Inno could not replace the locked host with its message box suppressed, every file stayed 0.3.21. Take 2 in the 0.3.10 smoke shape (the job stops the app by pid first, installs, asserts every file's version and sha, starts the host, reads the app alive at 60 s on 0.3.22 with stdin open). The defect is install-close-23 in 0.3.23. Devnet 3: the 34a2dbaa pass complete on every node by 21:17 BST (thirty-two read-backs incl. hub-1's and pool-1's second nodes); the 2720d8d2 pass started 21:17:23 BST with dn3-g1, the pair whole (igneumd df6476ed, miner dfdc6883, paired: program id 571131ccbd6e0de9 equal with c29f33bb at epoch 2).
LG-4 (the founder: "use PC 1 or PC 2 or get another machine"; main's ruling): on PC 2 tonight after both smokes, a fresh Windows user account created by job (no Igneum state, no card cache), the three timed steps (download and install, sync to the tip, dataset build to the first accepted share) as FIRST-SHARE lines, ten runs with the app uninstalled and the profile wiped between runs, no click anywhere, the rows on /evidence labelled "PC 2, fresh user account, not a fresh image, 7 October 2026", the 9-of-10 under-10-minutes bar read against them; macOS the same way as a fresh user account on the Mac tomorrow; a rented Windows VM only if the account shape fails the bar for a reason an image would change. PC 1 stays the founder's desk.
0.3.22 Windows take 2 FAIL (21:13 BST) and the skip: the job's detached helper was ended with the job's process tree before its first sleep ran out (Start-Process stays in the runner's tree; a survivor needs Win32_Process.Create or a scheduled task); nothing was installed, every file still 0.3.21, the payload untouched. Ruling: no take 3; the 0.3.22 Windows entry is skipped (the Mac and HiveOS entries stand); the first install over a running app is 0.3.23's installer with install-close-23 in the simplest job shape (Start-Process -Wait; the installer's own stop step and the install-running flag do the work), its smoke read the gate line for both; the Discord card publishes on the 0.3.23 Windows entry. The version miss, second layer (21:30 BST): the box cross of 0.3.23's exes failed in build.rs because igneum-app.rc still read 0.3.22 (Info.plist and the installer's AppVersion too); fixed at release-0.3.23 = 7c7489ac, the rule 15 check extended to six places and green on the tree; the 0.3.23 node pairs under /srv/artefacts/0323-2720d8d2/ (hands f2cf6a87/fb147dd1, seed 3edaf83d/be5ca735, win 8326d78a/38c74545) with the engine string.
12. The 2720d8d2 split and the one-minute form (21:1x to 21:4x BST)
The 0.3.23 node's heights move Devnet 3's digest to ba75bf6f, and the one-box-at-a-time sweep to it split the network: dn3-g1 flipped at 21:18 BST and sat alone twenty minutes on its own fork (blocks 12,553 to 12,793, peers 0; the 83eb50cd nodes refuse ba75bf6f at the handshake; build-1's seed logged 27 digest-mismatch rejects by 21:37); the fleet stopped the pass at 21:31 after that one box (the Vast ssh proxies ssh1, 3, 4, 5, 6 refused the next five, so nothing else flipped) and reverted dn3-g1 to 34a2dbaa on its kept datadir, where it reorgs onto the network's heavier chain; no record or share of the network's sat on the solo blocks; the pool pair, the provers and the second nodes stayed on 83eb50cd. The shipper's part of the fault: the 0.3.23 Mac entry (both folders, 21:39:09 BST, DMG 4ada2807 on 7c7489ac) and the 0.3.23 HiveOS alias (0d716ed9, 21:37) were published ahead of the fleet's move, against rule 5's own word; both pulled back to 0.3.22 (live again at 21:41:08 and 21:44:48 BST; the Mac still runs 0.3.22; the 0.3.23 hive package held in scratch r0323/held-public). The move to 2720d8d2 is the 0.3.20 form (rule 5 extended): binaries pre-placed on every Devnet 3 node (the fleet's thirty, build-1's three, the pool pair's two), every node restarted inside one minute at a clock the fleet names ten minutes ahead once the proxies answer, the digest read back per node, the first lock on the new side as the line; the 0.3.23 Mac entry, the hive alias and the Windows entry publish at that minute or after. Pool split: the hour's 13,209 + 7,200 = 20,409 lands before the 0.3.24 publish minute, so the split goes into the 0.3.24 object at or after the v5 floor on IGNH/IGNW (pending main); the node lane holds it out of the v5 object commit. PC 1: the 5090 floor grid exited 0 at 21:41 BST but the Power Helper hung at its 1,000 MHz step and the 5090 mines at the 1,100 MHz lock until the hash lane's unelevated restore job runs; the grid gets the fix (stop at the first helper timeout, restart the task before the reset).
Decimals (the founder, 21:40 BST): 18. The testnet GO object re-cut goes on the 0.3.24 line as its second item on top of the v5 object commit (the 0.3.23 pin 2720d8d2 is frozen in the move): base_unit_decimals 18 with the UTXO/EVM scale fixed and tested, the 16-byte subsidy layout, the emission rescaled, the final 5 October message, the cache-rung field at 0, class v5 at 0 only if its Devnet 3 crossing reads clean, chain id 4462, the override file refused; the seeds re-armed on the dry run, nothing mining until the founder's go. Pre-place for the one-minute move (the fleet, 21:5x BST): the 2720d8d2 pair as .new on all 34 Devnet 3 nodes (20 rented, 14 standing second nodes), 2 of 34 placed while the Vast ssh proxies ssh1 to ssh9 refuse or time out since about 21:30; build-1's three pre-placed at 21:46 BST with the restart armed on the minute; dn3-g1 re-peered on 34a2dbaa at 21:43:32 BST (13 peers, three reorg lines, the 25 minutes of solo blocks orphaned). One miner per card restored by the fleet's v2 pass (p2-4090-3 first at 21:51:55 BST: the Devnet 3 miner alone at 55.96 MH/s, supervisors 4 to 1). A pool-mode miner finding (0.3.24 item, the pool lane): --exit-on-seed-change does not fire in pool mode; pool-b hashed the epoch-2 pack for 56 minutes after the 20:53 BST seed change (47,700 shares wrong_hash) until a re-export and restart by hand; the settled pool hour holds pool-b's shares to 20:53:09 only. PC 1: the Power Helper hang cleared by the hash lane's restore job at 21:45:58 BST (the 5090 back at 2,865 MHz); the 0.3.23 host slot open from 21:51 BST.
13. The one-minute move to 2720d8d2 and the 0.3.23 Mac entry (22:1x to 22:3x BST)
The pull path (main's order, the fleet's build, live 21:59 BST): every Devnet 3 box runs a puller that fetches a signed move file from build-1's /fleet/ each minute (the fleet ssh key, namespace igneum-fleet-move, verified against the key the box already trusts), downloads the 2720d8d2 pair as a tarball from /srv/artefacts, sha-checks it, posts FETCHED to the intake, and at the named minute restarts node and miner together from its running environment, posting APPLIED with the version, digest, peers and synced; the puller's install rides ssh once per box, after which a move never needs ssh; the dl host's moves/2720d8d2/ folder (both tokens, the hands pair f2cf6a87/fb147dd1, SHA256SUMS, 21:56 BST) stays the apps' path. The minute: 22:30:00 BST, published in the move file at 22:16 BST with 33 of 34 nodes fetched (dn3-g1 and g2 on the node-lane pair df6476ed/dfdc6883, every other node on the hands pair); dn3-j1 behind the dead proxy ssh6 falls off onto 83eb50cd alone and rejoins by the pull when its proxy answers (main's cut, named in the move file's notes); the new 3090 prover dn3-q05 applies on its first fetch. build-1's seed, node1-dn3 and observer restarted at 22:30:54 BST on the hands pair, each "igneumd/2.1.0-2720d8d2", digest ba75bf6f, the N15 latency-ladder line, 21 peers within the first minute. The fleet's per-node APPLIED lines and the first lock on the ba75bf6f side follow.
0.3.23 Mac entry LIVE 22:31:50 BST (the copy at 22:30:28, the minute), both token folders, channel devnet-3: Igneum-Miner-0.3.23-2720d8d2.dmg 4ada2807 (45,465,754 B; app 7c7489ac, the Mac node pair efff01cd/45c4c68f from 2720d8d2; packaged on the new token), interface 1.0.2 with ui_version stamped, the floor file kept, both manifests same fields, read back from both folders; the HiveOS alias on igneum-hive-0.3.23.tar.gz 0d716ed9 (the 2720d8d2 hive pair, both kit zips) at the same deploy; armed by r0323/publish-at-minute.sh on the fleet's minute (rule 5's digest-moving form). The Windows entry and the card wait on take 2.
0.3.23 Windows take 1 FAIL (22:07 BST), install-close-23's own gap: the installer sent the engine api/quit, the window host (alive since 21:20 BST) never stopped because stop-igneum.ps1 sits only in [UninstallRun] and CloseApplications cannot close it with the message box suppressed; the running 0.3.21 engine does not read the new install-running flag (expected) and relaunched 45 s after the quit from the host; every file stayed 0.3.21. Two more: the installer came out named Igneum-Miner-Setup-0.3.0.exe (BUILD-INSTALLER.bat passes no version; the job now passes -Version from version.h and asserts the output name; the batch fix is a packaging commit), and the stale flag is removed by a one-file job. The fix (the update-return lane): the .iss install path runs the stop step itself (the host by path after the quit, then the unlock wait), packaging only, the crate unchanged at 7c7489ac, so it rides 0.3.23; the kit re-cuts from it, take 2 in the same shape, the smoke read the gate (the known-failed shape: an install over a running 0.3.21 host, read on PC 2). The test the lane wrote asserted the stop script's text, not the install path's execution.
PC 1 (22:2x BST): the Power Helper task's process dies at once after each start since 22:08 BST (six "helper started" lines, no command processed, the task Running with no process; its last processed command 21:45, its idle exit at 22:05 clean; the app's tune idle), so the 5080 grids took unlocked rows only and the hash lane runs the lock-free jobs first (the 9070 XT G1 and ladder from 22:27 BST, then the family run and the v5 bench), the locked grids and the SM-sparse job returning when the helper answers; the helper's death is a 0.3.24 item for the update-return lane (the helper writes its reason before exiting, the engine shows "power control: helper not running ()"). The pool lane's 0.3.24 strings: fork pool-prepare-node 95ae3e50 on the v5 object tip (the pool-mode seed-change exit and the prepare deadline), daemon pool-finish-22 05f86a7f (the node connections reconnect by themselves after a node restart; the rejection counters), register MF-15 ff17216d; the split switch stays never. The 0.3.24 object pairs with the frozen class-v5 1c420786; the post-freeze fix 8ca66afa (AP-F4-1's weak-day redraw, the verified last resort; the pinned packs and fingerprint unchanged) is 0.3.25's.
14. The 0.3.23 move closed, the 0.3.24 pin, the public alias (22:4x to 23:0x BST)
The 0.3.23 move closed 22:40:25 BST: every one of the 34 Devnet 3 nodes reads igneumd/2.1.0-2720d8d2 on digest ba75bf6f, synced (20 by the puller at 22:30:25, build-1's three at 22:30:54, the 11 MINE=0 nodes by hand 22:39:04 to 22:40:25 after the puller's two faults; their nodes were down 22:34:31 to 22:39, the rescue script's own pkill matched its shell; the 18 hands miners back 22:34:16 to 22:35:46 once fb147dd1 entered the gate list). The chain rate: 0.03 chain blocks/s at 22:31, 0.18 at 22:34, 0.49 at 22:35, 0.44 at 22:48. First lock on the new side: checkpoint 584, block cde51734, blue score 17,522, at 22:49:04 BST, 93.1 percent of active and 85.8 percent of total signed. The puller's two fixes are in and redeployed on all 34 (MINER_ONLY never carried into a restart environment; every box holds move/env-last refreshed each minute so a MINE=0 box restarts too; the pack gate's pair list is the parameter PAIR_MINER_SHA16), their self-tests on the two known-failed shapes run on dn3-x1 before the next move file. dn3-j1 behind the dead proxy rejoins by the pull.
The public alias (main's rule: a public alias moves in the same publish as the manifest entry, checked post-deploy by index version == manifest version per platform): dl/public/igneum-downloads.json had named Mac and Windows 0.3.20 while the manifest served 0.3.23. The --public arm had refused every publish since interface 1.0.1 ("the public igneum-app-latest.json would still carry the token": the signed interface entry's URL); fixed on release-0.3.24 (80a4cfb1: the public copy leaves the interface entry out, the apps read it from the token manifest); the signer rebuilt under the lock; the public Mac alias and the index moved to Igneum-Miner-0.3.23-2720d8d2.dmg 4ada2807 at 22:56:42 BST (the hive already 0.3.23; Windows stays 0.3.20 until its entry). The post-deploy assertion is a 0.3.24 tooling item.
The 0.3.24 node pin: 774f16c9 on v5-object-0323 (the v5 object: program_class_v5_activation_daa 28,800 on igneum-devnet-3, byte 6 exact, the window 86,400, pairing igneum-pow class-v5 1c420786, chain id 4463 below the floor and 4464 from it, the uniqueness test over every object, the heights unchanged, the pool split out), cut on the fast-time lane's restart-step PASS (pair 4 c8f9b383); every gate green: build ed36f246 (22:29 BST, igneum-pow-v5 paths 8), core 155, miner 28, pow 19, p2p-flows 38, exec 46, consensus 126 at gate priority (22:44:24 BST; the first run's one red at 205 ms under box load 127, the known class), the canary set with digest 4a284b1d and the mixed-version refusal both ways against a 2720d8d2 node; release-0.3.24-node open on it at 22:45:19 BST. The floor at 28,800 is about 01:52 BST on 8 October at 1.0 DAA/s and holds for a publish minute up to 23:52 BST (DAA 21,600); past it the constant re-cuts to 32,400 (one script run, the same gates, about 25 minutes). The testnet re-cut staging 47b9b229 (774f16c9 + 34892a36: 18 decimals, the 16-byte subsidy layout, the emission rescaled, the final 5 October message, the cache-rung field at 0, v5 at never on the testnet until the post-crossing re-cut, chain id 4462; testnet digest b2e856ed, genesis re-hashed; every gate green, Devnet 3's digest unchanged at 4a284b1d on its binary, a live testnet node on the old object refused) fast-forwards onto release-0.3.24-node after one Devnet 3 canary read on its own binary (rule 4a), and the pin is then 47b9b229, one cut carrying both. The 8ca66afa post-freeze fix is 0.3.25's pairing. release-0.3.24 (the app side) open at daa7427b: the version bump first (rule 15, six places green), dash-24 19ab2a87 (the .screen caps 1280 and 1440 px, Settings in two columns), pool-finish-22 05f86a7f (the daemon reconnects after a node restart; rejections by code), igneum-pow and proto-cuda/packs-ca3-v5 from 1c420786 (rule 7: the node, the pool daemon and the app's CPU re-check pair against the pinned igneum-pow; the Mac node pair build on 774f16c9 failed on StateStream until the tree carried it; the build-server lane's --ship seed class the same, its overlay re-pointed), power-helper-24 f1395775 (the helper's start facts and exit reasons; the engine names a helper that is not running), publish-public.sh's interface fix; app gate GREEN on build-1 (284 + 35 + 8), UI 87.
0.3.23 Windows take 2 (22:37 BST) FAIL before the install: ISCC exit 2 on install-close-23's new [Code] (an unused Age: TDateTime var; Inno's Pascal has no TDateTime); fixed at 4ad6c199, release-0.3.23 = 710e1fea, take 3 in the same shape. PC 1's helper reading (22:46 BST): the exe on disk is the 0.3.20 engine (sha 0443ae17), an unelevated helper started by a job runs and answers, the scheduled elevated instance is refused (Last Result 0x800710E0) and invisible to an unelevated job, and the 0.3.20 engine's tune path wrote the legacy helper.ps1 and truncated cmd.txt (its "task not registered" branch, the prompt path); the locked grids on PC 1 wait for the 0.3.24 helper (f1395775 plus the S4U registration and the legacy branch deleted); the lock-free jobs run: the 9070 XT G1 14 of 14, the ladder flat at 18.8 to 19.2 MH/s (the watts owed), the family run next.
15. The 0.3.24 cut (23:0x BST)
The node pin: release-0.3.24-node = 47b9b229 (774f16c9's v5 object plus the testnet re-cut 34892a36), fast-forwarded on both mirrors at 23:01:05 BST after the Devnet 3 canary set read clean on its own binary (igneumd 6bc18ac2, igneum-miner b55b60c7, /srv/artefacts/0324-tn-47b9b229/node-lane; digest 4a284b1d with no file, object version 6 stamped into the headers, the override refused, shutdown 725 ms, two empty nodes handshaking, the shared-devnet dialler and a 2720d8d2 node refused both ways); the pairing igneum-pow class-v5 1c420786. The hash-side board (the Counter lane, 23:0x BST): F8 on 1c420786 PASS at 23:03 BST (64 seeds at 2^24 on the chain path with the v5 dataset, the pairing bit for bit, 61 of 64 under 1.2x, the three over inside the named residue p4/p8/p10, p10 1.5047x the worst), F4 PASS (byte-identical to v4's census), the (c''') floor measured, the kit e6c088bb byte-identical to the tip, the fingerprint 82b19cbde8557ea5 on three platforms (AMD on PC 1's queue, Intel deferred). Main's ruling on the clock: the cut's gates are F4, F8 and the consensus rerun, all green, so the cut runs now (the pin, the pairs, the hive, the staging, no gap); F9 (10^5 exhaustion) and F1 (10^5 redundancy), running on build-1 as strengthening lines, gate the PUBLISH and the one-minute move: the move file publishes at at_epoch 0 for the fetches, and its minute is named only after both read PASS; anything but PASS and the staging stays staged, main hears first. The 28,800 floor holds for a publish by 23:52 BST (the node lane re-reads dn3-g1 at 23:30 BST and on the minute); past it the constant re-cuts to 32,400 and the pairs with it.
The app tree: release-0.3.24 = 1a58f384 on the mirror (the version bump first, rule 15 green at six places; dash-24 19ab2a87; pool-finish-22 05f86a7f with dn3-split-read.mjs as the pool lane's; igneum-pow and proto-cuda/packs-ca3-v5 from 1c420786, which the Mac node pair build on 774f16c9 needed (StateStream, StateLeaves, ProgramClass::V5) and the build-server lane's --ship seed class the same, its overlay re-pointed; publish-public.sh's interface fix 80a4cfb1; power-helper-24 f1395775 and b9a72b9b (the engine never runs an elevated helper of its own on Windows, the task registered S4U with the right power-helper-task@unattended, the helper's start facts and exit reasons); the Windows pin to 47b9b229); app gate GREEN on build-1 (289 + 35 + 8), UI 87, pre-push 60. The Mac node pair builds on 47b9b229 under the lock from 23:06 BST; the 0.3.24 host is a fresh PC 1 build (version.h 0.3.24) in a slot after the hash lane's family run; the pairs, the hive with three kit zips (the two sub-version 3 and the v5 kit) and the Windows chain on the build-server lane. The PC 1 helper reading (the update-return lane, 23:01 BST): the elevated helper on PC 1 is alive and blind, not dead: the 0.3.20 helper's pre-0.3.21 skip rule skipped every 2-line rewrite as present at start; Stop-ScheduledTask writes no exit line; 0x800710E0 is the scheduler's record of a Start meeting a running instance; no crash; the 0.3.23 kit carries the effective_skip fix and PC 1 answers again once that kit replaces its exe.
16. The floor re-cut to 32,400 and the move minute's gate (23:3x BST)
Main's ruling (23:31 BST): the 28,800 floor is lost to the clock (the pairs from 47b9b229, the hive kits, the fleet's fetches and the ten minutes after the last FETCHED cannot land before 23:52 BST), so the constant re-cuts now rather than at 23:52: release-0.3.24-node = c9e385eb (23:32:09 BST; 47b9b229 with program_class_v5_activation_daa 32,400, epoch 9, everything else unchanged: byte 6, the window 86,400, the heights, the pool split at never, chain id 4463 below and 4464 from the floor, the testnet re-cut, pairing 1c420786); its gate set runs from 23:32:12 BST (the build at gate priority on build-1, consensus at gate priority and the five other suites on build-2, the Devnet 3 canary with the mixed-version step, the testnet canary, the fast-time pair); 774f16c9 and 47b9b229 are void as pins and their pairs with them. From dn3-g1's read at 23:30:17 BST (DAA 20,268 at 1.0 DAA/s): the floor lands about 02:52 BST on 8 October and holds for a move minute up to a publish at DAA 25,200, about 00:52 BST. After the digest move the node lane's DAA reads come from a 0.3.24 node the fleet names (build-1's 0.3.22 seed falls off at the move). The app side: release-0.3.24 = 25528e4b (the Windows pin to c9e385eb on 9854030b's crate); the Mac node pair and DMG rebuilt under the lock on c9e385eb from 23:34 BST.
The move minute's gate (main, 23:36 BST): F9's full 10^5 completes about 00:40 BST, too close to the 00:52 ceiling, so the minute is named on the new pin, the last FETCHED plus ten, and an F9/F1 interim line from the attack-pass lane read inside the five minutes before the minute showing 0 exhausted, 0 panics and 0 redundancy failures over everything drawn so far (16,003 seeds at 23:35 BST, 0 exhausted, max attempt 25; geometric at 0.68, the same shape as sub-version 3's 10^6; exhaustion unreachable by construction with the 256 cap and the deterministic last resort); any non-zero before the minute holds the move and main hears first; the full 10^5 lands as the record line after.
The Devnet 3 row for the site and this record (main's wording through the Counter lane): a 0.3.23 node that has not updated falls off at the digest move minute, not at the crossing; the crossing is the class change on nodes already past the digest. Served as: "update before <the fleet's move minute> or the node stops following Devnet 3; class v5 begins at DAA 32,400, about 02:52 BST", the minute filled when the fleet names it.
17. The second lost floor and the named minute (00:5x BST, 8 October)
c9e385eb's gates all green at 23:39:31 BST (build at gate priority, consensus 134, exec 47, pow 19, p2p-flows 38, core 175, miner 28, both canary sets; the fast-time SUMMARY PASS cross-0324-c9e385eb at 23:49:32 BST: the ladder's rung 1 by signal at epoch 6, class v5 by signal at byte 6 from epoch 8, 11 of 11 program ids equal to the CPU verifier's, the stale node refused 86 of 86, the restart step across the boundary resynced in 28.1 s, four sinks equal). The app side re-pinned to c9e385eb (release-0.3.24 = 25528e4b), the Mac pair (igneumd 29448a07, igneum-miner 9c7b5601) and the DMG 23fa82b7 built under the lock, the Mac entry re-staged in both folders. The 32,400 floor lost at 00:53 BST: dn3-g1 read DAA 25,126 at 00:52:03 and 25,169 at 00:52:38, the publish DAA past 25,200 at about 00:53:09 with no move made. The cause: the build-server lane reported nothing from 00:17 BST (the c9e385eb pairs and hive ordered at 23:41, the 0.3.24 host job on PC 1 in the slot since 23:13, 0.3.23 take 3 on PC 2 since 22:58; a read of all three asked at 23:43 and again at 00:57), so the fleet had no pairs to point its move file at and named no minute; the fleet's 22:59 BST proven-share line also unreported (asked four times). The named minute (the shipper, 00:56 BST, to stop a fourth chase): the move minute is 02:00 BST on 8 October (01:00Z), or the fleet's last FETCHED plus ten if later but before 02:53 BST; the floor cut from it in one go: program_class_v5_activation_daa 39,600 (epoch 11; the publish DAA at 01:00Z about 29,200, plus 7,200 is 36,400, the next 3,600 boundary), about 04:52 BST, holding for a publish up to DAA 32,400 at about 02:53 BST (a fifty-minute margin past the minute); the same gate set on the new object, the pin line in about 20 minutes, the pairs from it, the move file, the F9/F1 interim read at 01:55 BST (the attack-pass lane sends it unprompted), the apps' entries at or after the minute. If the build-server lane stays silent past 01:05 BST, the fleet moves from the node lane's pair as dn3-g1 and g2 did at 22:30, and the hive and the Windows pair wait on main's word for another builder. The crossing estimate for the record: about 04:52 BST on 8 October (chain id 4464 from that block); the Devnet 3 row's "" reads 02:00 BST unless the fleet names a later one.
18. The 0.3.24 pin dfbd1e10 and the dark lane (01:0x BST, 8 October)
The pin: release-0.3.24-node = dfbd1e10, every gate green at 01:01:52 BST (build at gate priority 00:56 BST, igneumd 4870ccf2 / igneum-miner aa8c2978 under /srv/artefacts/0324-dfbd1e10/node-lane, igneum-pow-v5 8 paths; pow 19, consensus 134 at gate priority, p2p-flows 38, exec 47, core 175, miner 28; the Devnet 3 canary with digest b1ba7822, object version 6 in the headers, the override refused, shutdown 2,015 ms, two empty nodes handshaking, a 2720d8d2 node refused both ways; the testnet canary on b2e856ed refusing a live old-object seed). The object: the class v5 floor at 39,600 (epoch 11, about 04:53 BST on 8 October), the Devnet 3 digest b1ba7822 from ba75bf6f, holding for a publish up to DAA 32,400 at about 02:53 BST; everything else as c9e385eb. The fast-time SUMMARY on it runs on its lane. The app side: release-0.3.24 = 20213a7b (the Windows pin to dfbd1e10 on 9854030b's crate), the Mac node pair (igneumd 7907e161, igneum-miner e0979436) and the DMG 1aa301cc (45,653,186 B) built under the lock at 00:59 BST, the Mac entry re-staged in both token folders (interface 1.0.2, the floor file kept) and armed for the fleet's minute.
The build-server lane dark (read at 01:04 BST): the dl host's jobs file was last published at 23:05 BST and carries no 0.3.24 host job for PC 1 and no 0.3.23 take 3 for PC 2 (its last jobs there: 0.3.23's host build and upload, take 2's ISCC log read); the lane answered nothing after 00:17 BST to asks at 23:43, 00:57 and 01:04. With it sit the c9e385eb and dfbd1e10 hands, seed and Windows pairs, the 0.3.24 hive with the v5 kit, the 0.3.24 Windows chain, 0.3.23's Windows entry (and so the card), and its tooling commits (the detached-helper rule, the inline-rm check, the publisher's digest gate, the alias assertion, push-inputs' overrides). Rulings by the shipper, main asked to confirm: "slot void" to the hash lane at 01:05 BST (PC 1's lock-free queue moves: the v5 kit fetch, the 9070 XT v5 bench, the CA4 unlocked rows); the fleet moves EVERY Devnet 3 node from the node lane's dfbd1e10 pair (native glibc 2.39, the fleet's boxes' class), as dn3-g1 and g2 did at 22:30, aa8c2978 into the pack gate's list, build-1's three nodes restarted by the fleet itself on the minute; the 0.3.24 deploy publishes the Mac entry alone if no hive exists by the minute (the HiveOS alias stays on 0.3.23 and that gap is recorded; the public Mac alias moves in the same publish by main's rule); the Windows app chain waits for daylight or another builder, so tonight's 0.3.24 is Mac (and HiveOS if the shipper takes the package on main's word), with the 0.3.23 and 0.3.24 Windows entries and the card behind them. Main's word asked on three points: the shipper taking the hive and the Windows node pair through build-remote (the lease tool or plain), the Windows app chain's owner and hour, and take 3's publisher.
The 0.3.24 class v5 kit, one line for a reader diffing kits (the Counter lane, 01:1x BST): the 0.3.24 packs are packs-ca3-v5-20261007T183921Z.zip, sha256 e6c088bb, the kits lane's export byte-identical to the frozen igneum-pow 1c420786 the pin pairs with (the v5-dn3-epoch0 pack, program id e5a4ac5978462156, fingerprint 82b19cbde8557ea5); packs-ca3-v5-20261007T221001Z.zip (4aaf9b9e, from class-v5 7f58af97) carries the same three packs, ids, kernels and leaves and differs only in the kit host code beside them (the bench lanes' kit for the fingerprint jobs, not the miners' pack set); the next export changes the program_id_derivation TEXT field only (the "sub/" suffix wording), the ids unchanged. The fleet places e6c088bb on every Devnet 3 box; the hive carries it.
19. 01:41 BST: no move file, two lanes dark
dfbd1e10 fully gated: the fast-time SUMMARY PASS cross-0324-dfbd1e10 at 01:12:57 BST (the shipped binaries; 12 of 12 program ids equal to the CPU verifier's, the stale node refused 95 of 95, the restart across the v5 boundary resynced in 36.2 s with its own mining held, four sinks equal), on top of every box gate green at 01:01:52; the kit's fingerprint 82b19cbde8557ea5 equal on four platforms (Metal, Apple OpenCL, CUDA, and the RX 9070 XT at 01:16:14 BST on PC 1, the v4 control PASS; Intel held with PC 2); class-v5 091a0758 (text arm and page rows, ids unchanged) landed at 01:40 as a post-freeze commit and is 0.3.25's with 8ca66afa; 0.3.24 pairs with 1c420786 as published.
The clock line (01:41 BST): the fleet published no dfbd1e10 move file: build-1's /fleet/move.json still names commit 2720d8d2 with the 22:30 BST minute; no FETCHED count, no named minute, no 0.3.24 DAA reader for the node lane, no answer on build-1's three old-object nodes, no 22:59 or 23:59 BST proven-share line (asks at 01:05, 01:16, 01:41; the fleet lane's last line was its 22:4x report). With the build-server lane dark since 00:17, the two lanes that could move the fleet are silent, and the two that remain cannot (the node lane holds no box keys for the pods; the shipper holds the Mac). So the 02:00 BST minute cannot hold and the 02:53 ceiling (DAA 32,400) stands only if a signed move file lands within minutes and the 34 pullers fetch inside forty. Main's word asked on: (a) waking or replacing the fleet lane tonight (the puller is self-contained: a new signed move file at build-1's /fleet/ naming the node-lane pair and a minute is all the boxes need); (b) otherwise a fourth re-cut of the floor from a morning minute main names, the 0.3.24 Mac entry standing down until then (rule 5: no app alone on b1ba7822); (c) the four words from 01:06 and 01:20 (the hive and the Windows node pair by the shipper; the Windows app chain's owner and hour; take 3's publisher; "PC 2 clear" on the dark lane's ground). The attack-pass interim reads at 01:55 regardless; PC 1's lock-free queue runs (the CA4 unlocked rows from 01:17 BST). The update-return lane's PC 2 S4U proof and PC 1 re-probe stand on take 3, which never ran.
Route (A) staged, not placed (01:50 BST): the dfbd1e10 pair tarball on build-1 and served (fleet/dfbd1e10-node-lane.tgz, 27,495,110 B, sha256 e59ed0e6; igneumd 4870ccf2, igneum-miner aa8c2978); the move file (id mdfbd-1, commit dfbd1e10, want_version igneumd/2.1.0-dfbd1e10, want_digest b1ba7822, both pair slots on that tarball, at_epoch 0) written and signed with the fleet key in the shipper's scratch (r0324/move), the signature verified against the fleet's public key in the puller's namespace; nothing on /fleet/ changed, no box fetched. The gap that stops (A) as the file alone: every box's pack gate (box-dn3.sh's PAIR_MINER_SHA16 default list 07246920, c29f33bb, dfdc6883, fb147dd1) lacks aa8c2978 and the puller restarts box-dn3.sh from the box's running environment without reading the move file's miner sha into it, so a move by the file alone restarts every node on b1ba7822 with every miner refused as "not a paired miner" (the 22:31 shape on all 34 boxes at once, chain rate zero until a hand fixes the list); the fix before the minute is one line per box over ssh with the fleet's keys and tooling (on this Mac under ~/igneum-fleet; the Vast proxies limit reach), the fleet lane's work or, on main's word, the shipper's. Rule for the puller (0.3.25 tooling): the move file names the pair's miner sha and the puller carries it into PAIR_MINER_SHA16 for the restart, so a pair's miner is paired by the file that moved it, never by a list a hand keeps. The node lane's three facts (01:5x BST): a 0.3.24 reader node on build-1 (dfbd1e10's binary, loopback JSON RPC 28690, never mines) dials ten fleet nodes and follows the chain from the move, so the crossing read waits on no fleet reader; the fourth re-cut is one script run from a named minute (about 20 minutes to the pin plus 14 for the fast-time pair); a morning minute later than about 12:50 BST on 8 October puts the floor at or above 79,200 (the difficulty v3 height) and moves the three heights up with it in the same commit.
Route (A) ready on one word (01:56 BST): the gate script (r0324/move/pair-gate-aa8c2978.py: one line per box putting aa8c2978 into the pack gate's list in env-last and box-dn3.sh's default, dry run by default, apply on a literal argument, nothing restarted) dry-ran over the fleet's inventory with the fleet's Box helper, reads only: 33 of 35 Devnet 3 boxes reachable, every one on the old list (fb147dd1 last, aa8c2978 absent, no env-last override); unreachable dn3-relay and p2-4090-1b (dead Vast proxies; they fall off at the move and rejoin by the pull); the apply about 90 s with each gate read back. The F9/F1 interim at 01:55 BST read zeros across the line (71,292 seeds drawn, 0 exhausted, 0 panics, max attempt 30; F1 at 2 h 23 min with 0 redundancy failures), so the move's gate clears from the attack-pass lane; the full 10^5 and F1's result land as the record lines after. On "A": the gate line 02:00, the move file placed at at_epoch 0 02:02, the last FETCHED about 02:05, the minute 02:15 BST (publish DAA about 30,100, inside the 02:53 ceiling), the Mac entry at the minute, the fleet lane stopped and respawned after. Absent the word by 02:15: the stand-down, the fourth re-cut from a morning minute before 12:50 BST, the Mac entry held.
20. The night's outcome (02:58 BST, 8 October)
Main's word on route (A) or (B) did not come (asked 01:41, 01:50, 01:53, 01:56 BST), so nothing applied, nothing placed, no minute: build-1's /fleet/move.json still serves the 22:30 BST 2720d8d2 move (m2720-1); every Devnet 3 node is on the 0.3.23 pin 2720d8d2, digest ba75bf6f (dn3-j1 behind its dead proxy unverified since 22:30); the 0.3.24 Mac entry stands staged (DMG 1aa301cc, both token folders) and unpublished; the live manifest is 0.3.23 (Mac and HiveOS), the 0.3.23 and 0.3.24 Windows entries and the Discord card unpublished; the shipper's stand-down at 02:15 held by default (its line was not sent at 02:15, the shipper's miss; the state was unchanged). Finding: build-1's Devnet 3 seed (the --go process on 26631 with JSON RPC 27632, the node lane's DAA reader) is DOWN at 02:56 BST (no process with --appdir=/home/build/dn3seed; node1-dn3 26671 and the observer 26651 run on 2720d8d2; the node lane's 0.3.24 reader on 28690 runs); the last DAA read held is 25,169 at 00:52:38 BST, and at 1.0 DAA/s the chain passed 32,400 at about 02:53 BST, so the 39,600 floor is lost and the fourth re-cut is from a morning minute main names (before 12:50 BST, or the three heights move with the floor in the same commit); the fleet's nodes dial 26631, so the seed's restart on the pin is part of the morning's move. The morning's shape on main's word: the fleet lane and the build-server lane respawned (the puller and the gate script r0324/move/pair-gate-aa8c2978.py ready; 33 of 35 boxes reachable at 01:55); build-1's seed restarted on the pin; the pin re-cut from the minute; the pairs and the hive with the v5 kit e6c088bb; the one-minute move with the gate line first; the Mac entry at the minute; the Windows chain (the 0.3.24 host on PC 1, the installer and smoke on PC 2 in the simplest shape, 0.3.23's take 3 first) and the card after; the attack-pass record lines (F9's full 10^5, F1's census) as they land. The night's clean lines: the interim zeros at 01:55 (71,292 seeds, 0 exhausted, 0 panics, max attempt 30); the kit's fingerprint equal on four platforms; PC 1's lock-free queue (the 9070 XT G1 14 of 14 and its v5 fingerprint, the family rows, the 5080 grid through the cleared helper, the CA4 rows); dfbd1e10 fully gated with the fast-time PASS. Three rules from the night for release-rules: a digest-moving release's minute is named from the pairs on the boxes, never from a clock the pairs have not met (the three lost floors); a lane that owns a gate in the critical path answers within ten minutes or its work is reassigned by main, not waited on (the two dark lanes); the move file carries the pair's miner sha into the pack gate (the puller rule above).
build-1's seed, the reading and the repair (03:0x BST): /home/build/dn3seed.log ends at 02:09:05 BST at DAA 29,732 mid-stream with no stop, shutdown or panic line (an igneumd stop writes "igneumd has stopped"), so it was killed abruptly; it ran under nohup from a shell, so no journal names the killer, and the OOM record needs sudo (the morning's build-server lane reads it); the datadir intact (13 GB). The node lane's DAA reads 25,169 (00:52:38) and 28,906 (01:55:09 BST) came from it while it lived; the chain read 32,659 at 02:57:50 BST from node1-dn3's JSON on 28670 (the observer 32,660), past 32,400 at about 02:53 as computed. Restarted on the shipper's word at 03:00:09 BST on the kept datadir with the 2720d8d2 hands pair (igneumd f2cf6a87; the same flags; setsid nohup with stdout appended behind a dated banner, the stop line in its own log; the restart script at /tmp/dn3seed-restart.sh for the morning's move): digest ba75bf6f, object version 7, the N15 lines (resumed from the exec snapshot at tip 11,901, the records continuous), DAA 32,905 in step with node1-dn3, 22 peers at 03:02 (20 inbound, the fleet's dials returning; 38 before the kill). A repair of the hub the fleet dials, not a release change; the DAA reads come from 27632 again. dn3-floor-cut.sh (the fourth re-cut from a named minute: the DAA from 28670, the floor = the publish DAA plus 7,200 to the next 3,600, the commit, both mirrors, the gate set, about 20 minutes plus the fast-time pair's 14; the latest minute before the heights move is about 12:50 BST) stands ready for main's minute.