diff --git a/docs/plans/counter-asic-3-status.md b/docs/plans/counter-asic-3-status.md index 942781d36..c6d51d1b6 100644 --- a/docs/plans/counter-asic-3-status.md +++ b/docs/plans/counter-asic-3-status.md @@ -593,6 +593,38 @@ THE SUCCESSION CASE PASSES (22:04 UK, the enforced lane; build-8, 21:34 to 22:04 A CONSENSUS-LEVEL FAULT (22:08 BST, the node lane, read from build-1): igneum-devnet-4 split into at least four chains at the class v5 epoch cuts. The matrix (eth_getBlockByHash on each node at 22:06): build-1's seed (188.40.146.49:26631, a dial target) stuck at executed tip 6,162 (daa 10,799, its epoch-3 boundary) since 21:34, holding 1a87e870 as chain block 5,760 (its epoch-3 seed); the hand (26671) holding the same 1a87e870 at 5,760 then its own epoch-4 seed 550eab88 at 7,988, tip 8,144 (daa 14,474), still mined; the light reader (26882) holding neither, its epoch seed f8dffb78 at 5,560, tip 6,919 (daa 20,496), locking checkpoints 681 to 683 at 59.7 percent of total; the fleet's chain (peers 213.173.111.10, 203.57.40.129, hub 64.119.209.250) on 756ff5bd as its epoch-3 seed, absent from all three; the seed refusing every fleet epoch-3 header ("header rejected before the PoW engine: invalid proof of work", strikes, bans), the fleet banning the seed for 600 s (N6) for re-advertising its refused tip f09df69b; the seed's, the hand's and the light reader's IBD attempts against fleet peers dying in the 300 s wait "no published state stream after 756ff5bd (the block is not on its chain)"; the seed logging voter EQUIVOCATIONS at indexes 76 to 83, 250 and 262 and holding locks 260 and 261 by certificate with zero local votes: the voters split across the chains. THE CAUSE (two node classes, both in 2.0.1 and in 6c7abacb): (1) the class v5 IBD catch-up syncing bodies once, before the first deferred chunk, so every further epoch boundary costs the 300 s state wait and an IBD restart (measured on 6c7abacb's fresh node: 1,943 for 300 s, then 2,645 to 3,843 in 20 s after the restart); (2) structural: a node whose executor captured block X as epoch N's reference validating only epoch-N headers seeded by X; another chain's epoch-N headers (seed Y) refused for want of the state after Y, their post-cut weight never counting, GHOSTDAG never moving the virtual to Y's chain, the executor never capturing Y: once two nodes differ at a cut they can never rejoin, each extending its own chain with whatever miner points at it; a lock above the fork (the seed's 260/261) making it permanent: THE D5 PARTITION HAPPENING LIVE WITHOUT A PARTITION, THE EPOCH CUT ITSELF THE PARTITION. The fresh-sync read on 6c7abacb's pair red for the wrong reason (1,943 to 3,843 across the first two cuts, then 3,844 whose carried proof no build-1 node serves in 20 s, the records lost after the hub reorg; the lock rule unable to cover it on a fresh node; the seed's "tip" a dead fork). THE NODE LANE'S DEFAULTS unless main says otherwise by 22:40: (a) fix (1) on the 2.0.2 line as one commit by 22:45 (bodies re-synced to the highest validated deferred header on every state wait, the 300 s budget reset on progress), the six suites read back; the 2.0.2 name sliding once from 22:35 to 23:30; (b) fix (2), the foreign-seed capture (on the state wait for Y, the executor executing Y's selected-parent chain from the fork point in a scratch state and publishing the stream under Y's hash, so the headers validate, the weight counts and the virtual can move), designed with the enforced and hash lanes (class v5 design section 5) and built on the 2.0.2 line tonight, suites by 02:00, the two-node cache test's shape as its gate; (c) nothing by hand on the chain (no seed restart, its datadir the fork; no lock; no reorg); (d) the 23:20 freeze line standing on its own inputs (the D1 candidates gated on the live line before the split). Devnet-4 as it stands cannot heal with 2.0.1 binaries on the fleet; a reset (a devnet-5 genesis, or a coordinated restart from one chosen chain's snapshot) main's call, the node lane recommending a reset once (b) is read back; the coordinator's default to main: the chain left as it stands overnight under the guards, the 2.0.2 roll with fix (1) proceeding, the reset the 08:00 read-back's first item with (b)'s evidence, no genesis cut without main's word; the shipper's cut held on fix (1); the canary's pass line the node reaching the FLEET's chain tip from genesis through every cut, never build-1's seed; the fleet lane reading which chain the hubs, the rented miners and the voters' majority weight extend by 22:40. MAIN'S RULING ON THE SPLIT (22:1x UK): (a), (b), (c), (d) standing as the node lane set them; the 2.0.2 cut proceeding with fix (1) for the fleet kit (the fleet one chain, the roll keeping it one); no home-machine entry (Mac, Windows, HiveOS) publishing until its rule 33 canary proves a fresh install reaches the fleet's majority tip (within ten blocks of hub-1's) with the entry's dial targets verified by the fleet lane as nodes on that chain; the entries waiting on fix (2) if it needs it (a fresh install syncing to a dead seed's chain worse than no entry); the reset the founder's decision: the chain left overnight under the guards, the fleet rolling 2.0.2 with fix (1), the home machines waiting, the 08:00 read-back opening with the split, its cause, fix (2)'s evidence and the node lane's recommendation (a devnet-5 genesis against a coordinated restart from the majority chain's snapshot) with the cost of each; no genesis cut without his word. FOR THE REGISTER (main's words): the epoch cut acted as a partition and the network did not heal on its own: the D5 property tested live and FAILED on 2.0.1; the fix is software rolled, never hands. +THE ADVERSARY's PLACED 32-LANE FULL CORE, its last clock (22:09 BST): 23:15 to 00:15 (the fleet host's global placement of the 393,000-cell core with six macros in its timing-driven passes at 22:08, 70 minutes against 25 for the 8-lane core; the second host dead at memory, destroyed with its logs home; then detailed placement, the clock tree without its repair, routing about 40 minutes, the two routed simulations and the power read about 30); the row at 00:15 with its delta, or a fault with its evidence and a morning clock. +FLOOR LANE 2's AMENDMENT LANDED (22:10 BST, read back): box master 5058b72fcec0f2afc58933dfe7ed23025e58ece0 (86e5b0fb: shadow-k.md with the placed gated cores and the placed 64-register window core, tools/chip-model/rtl; 89 checks); its rows ADV-05 and ADV-06 moved by its own repeat batch; thirty-three landings by the hand. + +THE SIXTY-SIXTH LANDING on master at ac7ce131. THE FLEET's SPLIT CENSUS (22:10 to 22:17 BST, all 102 fleet boxes, nothing restarted): seventeen chains by the epoch seed each node captured at the epoch-3 cut (DAA 10,800), none a majority: f428577a 33 boxes (2 mining; lp-4090-02, -07, -08 and thirty non-mining provers; last lock checkpoint 568 at 76.5 percent), 3c3fab43 24 (epoch 2's seed: these nodes never crossed the cut, their miners mining nothing; lp-4090-01 and the 23 peerless boxes), 04dca339 20 (7 mining, the most miners: p1-5090, p1-a5000, pool-1, the lc and dn3-r boxes; last lock 264 at 67.3 percent), f8dffb78 6 (3 mining; hub-1 at DAA 20,719, dn3-q03, dn3-q04, lp-4090-03, -05, -06; hub-1 locking checkpoint 691, its own read 34.1 percent of total at 22:16), 550eab88 4 (dn4-seed at 14,484, 1 mining), the genesis seed 2 boxes stuck at 3,600, three nodes down, eleven one-box islands each "locking" its own chain at 83 to 100 percent with its single voter; the six dial targets on five chains; seeds.igneum.network's records serving at least three of them; 756ff5bd nobody's chain (the earlier premise wrong); no majority tip for a canary; the fleet lane's recommendation: one chain by main's rule (hub-1's f8dffb78 the highest DAA with the voters that signed 620 to 691; 04dca339 the most miners), every fleet node restarted onto it from empty datadirs behind the 2.0.2 kit. MAIN'S RULING (22:1x): software first (fix (2) built tonight, suites by 02:00, the 2.0.2 kit with it, the roll as the convergence test); if not one chain by 04:00 the fleet lane restarts every fleet node onto hub-1's chain f8dffb78 from empty datadirs behind the 2.0.2 kit, recorded as an operator reset, never healing; no genesis cut without the founder; every "measured on the 2.0 devnet" row after 20:00 UK labelled "on an island, not a network" by the steward until the fleet is one chain; the two-hour hold and the home-machine entries waiting for it; fix (2) the night's critical path with build-7, 8 and 9 at the node lane's disposal; the 08:00 read-back opening with the split, the cause, fix (2)'s evidence, whether the roll converged or the reset ran, and the devnet-5 question with the cost of each answer. THE FLEET LANE'S FAULT, ONCE (22:14:49): the 04:00 gate (reset-to-hub1.sh) compared the clock as HHMM numbers and fired at once, its first stage stopping dn4-seed (dn3-g1) by pid files, moving its datadir aside (kept, the 550eab88 fork of four boxes) and restarting it on the 2.0.1 kit from an empty datadir with SEED set to hub-1; the script stopped by its pid file at 22:16:03 before its second stage; dn4-seed syncing onto hub-1's chain from genesis (60 peers, MINE 0); the gate re-armed on epoch seconds for 2026-10-09T03:00:00Z with the staged reset (dial targets first, then the hubs, the miners in tens, the nodes, the 23 outage boxes and dn2-2, each stage read back); the convergence read (converge-check.py: every mining box's tip from its own EVM RPC, "one tip on every mining box" the test) in every 15-minute watch line, 33 distinct tips among 35 mining boxes at 22:13 (70 across all 99 nodes); the reference feed build-1:/srv/canary/hub1-tip.txt written every minute (" ", first 22:16:48, "7289 0x40360ccf 21088"); the dial targets verified on hub-1's chain at its tip 8ca20b7e3a3e7736 (DAA 20,879, 22:13): hub-1, lp-4090-04, -05, -06; dn4-seed, lp-4090-01, -02, -07, -08 and build-1's two nodes off the list; both rule-33 canaries gating on ten blocks of hub-1's tip, running only after convergence or the reset. THE SAME-WORK ROW GATES THE FREEZE (main's ruling, 22:1x): the pool's engine (class-v6-node-review e8773ff5 over igneum-pow 1a938abe, the class composed from the enum alone) and the hash lane's CPU reference (the recipe --class mx8+sh256x27+state+reg64c+fold+rw --era 0:edc4fa84 --era-widths 4) disagreeing on every nonce of every phase over context 02; the pool lane's direct check on build-4 (hash-bound from the same tree with the engine's own composition, nonces 0 to 64, against both) naming the side within the half hour; the frozen object one composition read equal from the engine, the CPU recipe, the CUDA reader and the pool reader on the same pair; until the side is named and the fix is in F0 does not sign; unresolved by 23:30 the register "frozen pending, same-work disagreement between the engine's enum composition and the recipe", the slide to 00:30 spent on it; the hash lane owning the composition (one function, the enum and the recipe derived from it, a test on the context's three phases), its line by 23:20. LANE D's 6.13 (21:49 to 21:54 on build-6, both era inputs at 1a938abe4): era 0:af89be5d drawing 442a1691b3e3507f (era label 93a14ac6, equal to hl-v6-all-chainseed), era 0:edc4fa84 drawing 2a1d6caab4c24564 (label d810f22d); both PASS under the full rule and the crate's own predicate at widths 4 and 1 (accepted at attempt 0, every acceptance part 0, (c''') 0.9999, the largest bucket +5.25 to +5.50 sigma), attack-f8 PASS on both; the one differing reading: at width 4 the era-0:af89be5d program sits in the bit-R class (bit 12 = R at site 2, 18 sigma), the era-0:edc4fa84 program clean of it; commit fddf641fd in the landing queue. THE STEWARD's GUEST-FORMAT LANDING (22:12): box master c4d5df15 (ci-guest-format 9df81fed, 92 checks): tools/ci/guest-format-check.sh, the diff rule in merge-to-master.sh (a GUEST_INPUT_FORMAT bump with no change under proving/igneum-prove/elf/ refused), the tree rule in the gate (the manifest's guest_input_format against the source constant; off with a source_commit naming the commit the kit's prover builds from, not red; off with no provenance red); the recorder dropping a lifted reason-only record when a real cell lands, R2-F03-R01 PASS; THE BOARD on c4d5df15: 190 cases, NOT RUN 180, FAIL 6, PASS 3, BLOCKED 1 (INT-07), 76 in progress. THE V6-07 SUB-LANE's CORRECTION (one message): the 0-bytes fault NOT V6-10's format word: a host from cef5234b5 (without 7604fcf5d or the P22 stages) executing the pinned shard guest to "public values are 0 bytes, expected 328", a plain host from master's tip dc94dda95 "expected 392", the served 0317 host passing on the same card and server; the drift between the 0.3.17 host build and cef5234b5 in proving/igneum-prove (candidates 6dbd5d2f8 "shard guest: the D4 proving-payment split" at 17:45 and 2ceb09be9 "key succession, the host embedding both pairs" at 18:34); the un-re-pinned 5 October guest its own CI item; a three-point bisect on one rented 3060 by 23:00. THE SITE (22:18, read back by the lane): master b3a0f827 at the edge: /prize (the terms: a placed or measured adversarial implementation beating the served bracket, or a reproduced shortcut; not confirmations, synthesis-only, outside budget, excluded classes; judged in-house, the finding served either way, hello@igneum.network; the amount "set by the founder and served here when set"), linked from the litepaper chip section, the scorecard and the nav; /acceptance rendering 190 cases in 18 suites with INT beside REV; "disclosure prize" off the served forbidden list on tonight's word; the site lane released. THE KIT LANE (22:19, read back): class-v6-kits 8ab1fabfa on master at ded1ef953 (the kit scripts, the Metal worker's generator 6 lift, the cell kit:class-v6-fingerprints on R2-F03-R02 NOT RUN in progress, the class-v6 tip merged); zip 4 /srv/artefacts/packs/packs-class-v6-20261008T202808Z.zip sha256 bb66a546885f5d650a95e9e8578c7bcbb914a832795b4834a9c0aee05153db63 (every kernel text, vectors and leaves byte-identical to zip 3, the fingerprints its by construction; four of six on the all pack, the generator 5 record seven of seven beside it); three merge runs slipped with their causes on the page; released. The adversary's full core 00:15 (its last clock). +THE SAME-WORK DISAGREEMENT's LIKELY CAUSE (22:19 UK, the steward's hand, with evidence): the pool run's nonce 0 and nonce 1 hashes (e821d552, a9b5b987) byte for byte the node reader's PRE-fix hashes; the node reader's fault at 22:10 a standalone engine process that never called install_pow_genesis, so IgneumEngine::build_day sized the day cache by days since genesis day 0 (fourteen doublings at day 20730) and every item differed; with install_pow_genesis(20730, 28) before the first epoch_for the node reader reads PASS on phase 1 (1,048,576 agree, the id 0x2a1d6caab4c24564 equal to the pack's; same-work-node cc23f9bd); the pool lane rerunning with the one call, its PASS or FAIL on context 02 by 22:45 the test (a PASS closing the freeze gate by evidence, the hash lane's composition test still the standing one; a FAIL leaving main's ruling as written); the island label through the recorder in the steward's identity landing by 22:40, the recorder gaining a labelling pass other lanes' rows take at their next replay. The V6-07 branch v607-floor-memory at 25ad03b35 (the rows, the floors at 8,500 MiB, the document); the host bisect on box 3 the last amendment before 01:00. +PHASE 1 (j) THE LIVE-DATASET CENSUS ON MASTER (22:22 UK, the census hand, read back): 3b1169ca (census-rows-live 3db01676): docs/analysis/class-v6/rows/live-dataset-census-1a938abe4.md with 22 rows and the per-run TSVs, job lists and restart logs under build-5 and build-6; the batch census-v6-live-20261008-2210 (cell census:class-v6, method native, manifest 1a938abe); the harness class-v6-census-all4 b819c23a4 (binary 6448ade354bc665a byte-identical on both boxes), the kernel path's interpreter on the chain's memory-hard dataset with the node1 leaves under header-bound init words, every run under a pid file through a restarting driver: the object hl-v6-all 4de7b836cc40a4ea over eight headers and 2^18 nonces each (268 million reads per box): the top 0.1 percent of items holding 0.2138 and 0.2140 percent of reads against the windowed control's 0.2141 (0.9989x and 0.9995x of the window model; 1.10x flat), every site's distinct ratio 1.0001, the worst index bit under 4 sigma, the worst address 6 to 7 reads of 134 million (5e-8), the worst cell 4 of 4 million, every item of the dataset touched; sixteen chain seeds p18 to p33 under the class: window-model ratios 0.998 to 1.001x, min site ratio 0.99986 to 0.99997, worst bit 2.6 to 4.0 sigma; F06's live half: all 64 registers x 4,096 probes per box on live data moving every lane's first address and hash under every probe (1.000000 at the least live register): LIVE on live data, not by construction; the one fault in the rows: the job-list writer's unquoted list collapsing the seed jobs into one line the harness refused three times (22:00), rewritten with explicit splitting at 22:01; owed in the file: the 2^24-per-header live point and a per-site LRU trace. The chain-seed read on build-4: 2a1d6caab4c24564 at era 0:genesis accepted (min ratio 0.99988, bucket +6.25 sigma, no site over 6; 256 of 256 at r 0.129, 0 exhausted, 0 (c''') refusals), the freeze's (c''') read on the coordinator's word; 442a1691b3e3507f at era 0:block the research comparison (min ratio 0.99992, bucket +5.25). +FIX (1) GREEN (22:24 BST, the node lane): e189afb4 on successor-2.0.1 = release-2.0.2-node, six suites green on build-9 (p2p-flows 39, miner 33, exec 95, consensus-core 183, consensus 143, pow 19; 0 failed), the pair placed on build-1 and build-2 (igneumd e80687dc, igneum-miner 0f42ef8c), "igneumd 2.0.2", the canary set done 22:20; on top ab489403 = the pool session binding v2 (consensus-core session_binding_v2/sign/verify, the miner's authorize carrying binding_v; consensus-core 185 and miner 33 green; the pool lane switching its verifier to it), the pair placed (igneumd 36583db8, igneum-miner 8302fb2e), its canary running; the fresh-sync canary dialling the hubs only and passing on holding hub-1's tip block from /srv/canary/hub1-tip.txt within ten blocks, the e189afb4 read running, ab489403's behind it, the lines to the shipper with the name by 23:30; the HEAL lane (fix (2), branch foreign-seed-capture off e189afb4, rebasing onto ab489403) with main's ruling, build-7/8/9 and the design answers (the enforced lane: payouts on the scratch by acceptance, verified_by_acceptance(carrier_daa), its function by 00:30; the hash lane: nothing in class-v5-stored-state assuming one stream per epoch, the design note amending section 8 and 2a.1, the DoS bound a named property); the finality runs lane spawned, yielding the three boxes until fix (2) is green; the reset recommendation drafted (A: a devnet-5 genesis, about 3 h of lane work after fix (2), nothing in a devnet's state worth keeping; B: a coordinated restart from a chosen chain's snapshot needing the record-store persistence and proof serving first, 2 to 4 h, a fresh node stopping at the first block whose carried proof no peer holds), final by 06:00; a correction once: the dn4-seed the fleet lane moved is the FLEET box named dn4-seed, not build-1's seed unit (still on its fork at 6,162, untouched by the rule). +THE SIDE READ LIVE (22:22 BST, the hash lane on build-5 from the frozen tree): the engine's enum composition (--program-class v6 --era-hex edc4fa84) and the CPU recipe (--class mx8+sh256x27+state+reg64c+fold+rw --era 0:edc4fa84, widths [4 B]) ONE composition already: both through LoadClass::era(V6_CLASS, era, [1 word]) then generate_from_seed_bytes_class; `show` printing the same class string mx8-erad810f22d+sh256x27+state+reg64c+fold+rw, the same id 2a1d6caab4c24564, the same era layout (width 4 B, stride 0x9ad30d99 rot 29, interleave [0, 2, 12, 13], the same 16 windows) on both; `hash-bound` with prehash 00...01 on the chain pair reading nonces 0 to 3 as 2394c9f10f9447a2, e932575c1fa53740, 07d7c653f64390b6, df60f0bc4bd53d02 on BOTH paths, equal to the staged reference b77c61d8; the recipe not the side; the steward's reader-install class the explanation, the pool's rerun with the call deciding by 22:45; the standing test landing tonight regardless: chain_class(ProgramClass, era) -> LoadClass in igneum-pow as the one function both the enum arms and the recipe derive from, plus a test that the two Epoch paths agree (program, id, bound hashes) on the class v6 pair, the class v5 pair and the v5-to-v6 switch of one seed, the sha by 23:20; the tree's draw not moving. +THE NODE READER's SAME-WORK VERDICT (22:26 UK, the steward's hand on build-1): PASS on all three phases of context 02: igneum-miner recheck-vectors on same-work-node cc23f9bd (off class-v6-node-review e8773ff5 with class-v6 1a938abe4; IgneumEngine::epoch_for_bounded then EpochRef::hash_bound per nonce, the pool.rs seam, install_pow_genesis(20730, 28) as the live miner calls it): 1,048,576 agree, 0 disagree, 0 missing per phase, program id 0x2a1d6caab4c24564 on every segment equal to the packs', phase 2's boundary at nonce 1572864 switching day 20730 to 20731 with both boundary hashes equal to the reference and the id unchanged across the day rotation; the evidence /srv/artefacts/tas/same-work-20261008-02/node/node-{1,2,3}.json (233ad301, b09c3075, acc7eeab), rule 24 green on build-2; the engine's enum composition and the CPU recipe agreeing on the three phases; the pool's disagreement the install class, its rerun by 22:45 the remaining read; the island label: the node1 state stream for contexts 01 and 02 written on build-4 at 16:34 box time before the split (the cells carrying the phrase with that time), context 03's stream (22:18, build-1's seed) one island and labelled. +THE POOL LINE ON THE 2.0.2 TREE (22:2x, the pool seat): pool-2.0 at 587cb565 (INT-15's switch to the node's shared session_binding_v2 cherry-picked onto f61eecff; the fork worktree at ab489403; the pool suite 54 of 54 on build-2 against that pairing, read back), the pool line and release-2.0.2 one tree; one slip once: the push of 587cb565 before its box result was read (the first suite compiled against the old fork pairing, red for about twelve minutes until the pairing was fixed and the suite read green on the same commit): a push ahead of the read, the class the rule names; no master touched, nothing shipped. +THE HOST-FORMAT FIX ON MASTER (22:32 UK, read back): cb3ba6095 (host-format-guard 7c6d4156, the gate green with rule 24's host suite, every mirror): the served pair's provenance in the manifest (source_commit 15bb6cdd4, guest_input_format 1), Manifest::check_input_format refusing a host of another format before every input-building mode with the source commit to build from named (id and verify modes answering on a held pin), the known-failed test; the steward's guest-format-check the gate check for the class; the cut's rule: the 2.0.2 kits ship the served 0317 pair built at 15bb6cdd4, a prover from master's tip refusing to start instead of failing every proof, the layout-by-manifest host on 2.0.3 with a card-measured proof; also in it the dead-holder worktree-lock takeover in build-remote's library (a build-remote killed by its pid leaving its box lock for the 3-hour rule; the fix node's build-7 chain waited an hour); the succession PASS batch with the harness and the H and W proposal in the gate (two red attempts on mis-staged files, corrected). +THE LOST-PROOF WALL ON HUB-1's CHAIN (22:33 BST, the node lane's read through the shipper): fix (1) e189afb4 takes a fresh node through both epoch cuts in 70 s (2.0.1 took 300 s and a restart per cut), but every fresh sync then stops at chain block 3,844 on hub-1's own chain ("carries 1 proof records whose proofs this peer did not deliver in 20 s" from each of the four verified peers in turn): the lost-proof class (proofs living only in the in-memory pool, dropped past the record window); no fresh sync of devnet-4 can pass 3,844 on any kit, and the 04:00 operator reset from empty datadirs would strand every node there unless some node still serves the bytes (the fleet reading hub-1's igneum_getProofRecords by 22:50); the fix the record-store lane's (03:00): persistence under the block store for the future, and for a chain whose bytes are gone an IBD lock from the peer's carried certificates (the body taken under missing_proofs_taken_under_lock), riding the 2.0.2 sha with fix (2) or the next; the one 2.0.2 kit's clock the later of fix (2) (02:00) and the record-store fix (03:00); the reset gate firing only on the shipper's word that the kit carries it, else no reset and the stall recorded for the morning; the home entries waiting with the fleet. +THE NODE LANE's OWN READ (22:35 BST): fix (1) measured on two fresh nodes (e189afb4 and ab489403) dialling hub-1 and lp-4090-04/05/06 only: genesis to 1,943 at 22:25:44, 3,843 at 22:26:44, both cuts in 70 s; both stopping at chain block 3,844 (a101d79d, DAA 7,422, on hub-1's chain), every peer answering "carries 1 proof records whose proofs this peer did not deliver in 20 s": the lost-proof class (a fresh node's lock trailing its virtual, the lock rule unable to cover the block); the RECORD STORE lane spawned at 22:30 (03:00): proof persistence and serving under the block store for the future, and for a chain whose bytes are gone an IBD lock from the IBD peer's carried certificates (rule v4 6.2's anchored test against the table frozen at the requester's last lock, the body then passing under the lock rule), a two-node known-failed-then-pass test, riding the 2.0.2 sha with fix (2) or the one after; the 2.0.2 kit for the convergence roll or the reset needing fix (1), fix (2) AND the record-store half, all three at 03:00, the 04:00 reset holding on it; for the costs line: the record-store half removes option B's precondition (a snapshot restart needing the same serving), the two options differing only by whether devnet-4's history is kept. +THE COMPOSITION TEST LANDED EARLY (22:35 BST, the hash lane, read back): class-v6 6d607608b1b630c432116ee978424fac469c2cfb on the mirror, the suite on build-7 154 passed, 0 failed, 8 ignored: generator::chain_class(ProgramClass, era) -> LoadClass = LoadClass::era(class.load_class(), era, V3_ALLOWED) the one function the enum arms (V4, V5, V6 with era bytes: the engine, the export, the pool reader) and the CLI's class-string recipe both call; no draw moving (each path did exactly this through its own line before; packs, v6fold, pairing and every pinned suite unchanged); tests/composition.rs reading the two Epoch paths equal in program, id and bound hashes (three warps at 0, 32 and 2^20) on the class v6 pair (id 2a1d6caab4c24564 asserted), the class v5 pair and across the v5-to-v6 switch of one seed; the enum composition and the recipe never apart; the readers' hashes on context 02 node, CPU and CUDA agreeing bit for bit; the OpenCL cell PC 1's job re-cut to run all three phases (the day switch at nonce 1572864 through the worker's prepare line), whole when the runner frees (08:30 at the latest). +THE BYTES ARE NOT LOST (22:33 to 22:36 BST, the fleet): igneum_getProofRecords for block 3,844 (0xf04) on hub-1 and lp-4090-05 returning 8 carried records with no bytes and an empty pool; on lp-4090-04 and lp-4090-06 the same 8 carried records plus seven pool entries with proofBytes of 1,272,897 B each, verified, both carried proof hashes (ba56462d, a31ebd97) among them: the nodes that received the records through the relay keep them in the pool well past the record window, the ones that got them carried by a block never had them; the joiner's "did not deliver in 20 s" from each peer in turn a serve or relay fault on the IBD path, not lost bytes; the live read agreeing: dn4-seed, fresh from empty since 22:15 on 2.0.1 with those four peers, crossing 3,844 and reaching EVM 4,379 by 22:36 (54 "did not deliver" lines on the way), then stopping at 4,288 on "the proofs of 2 carried records are not held yet", the same class one epoch on; the 04:00 gate disarmed at 22:33 (the script stopped by its pid file), re-armed only on the shipper's word that the kit carries the record-store fix; the node lane holding the pool entries' keys and shapes. +MAIN'S GATE RULE (22:3x): the 2.0.2 node sha carrying fix (2) at about 03:30; the fleet lane's convergence gate two hours after the fix (2) roll ends, no later than 06:00; if not one tip then, the operator reset onto f8dffb78 so the devnet is whole before 08:00; if the sha slips past 03:30, the 06:00 reset on the kit with fix (1) alone and fix (2) rolling after; the 08:00 read-back's first line carrying what actually happened; relayed to the fleet (the gate re-armed on epoch seconds for 05:00Z with the decision file and the sixty-second window, the kit whatever the shipper's folder holds at the firing, a stall at the 3,844-class walls recorded, not rescued), the shipper and the node lane. +THE GATE RE-ARMED (22:36:11 BST, reset-to-hub1.sh, pids/reset.pid): firing at the earlier of two hours after the 2.0.2 roll's end on every box (roll-202.sh writing its end as epoch seconds to roll-202-end.txt) and 2026-10-09T05:00:00Z, compared as epoch seconds; at the firing the convergence read and the decision written to reset-decision.txt first, a sixty-second wait, then the staged restart onto hub-1's chain f8dffb78 from empty datadirs behind whatever kit the shipper's fleet folder holds (its name and sha in the decision line), dial targets first, the hubs, the miners in tens, the nodes, the outage boxes and dn2-2, each read back; a box walling at a 3,844-class stop recorded with its block; the register line "operator reset of the devnet after the 2.0.1 split" with the time and the chain; a converged fleet means no stage runs. +THE PAIRING ROW ON MASTER (22:34 BST, read back): f7a949d22f7f (hash-registry-1 eb280370, gate green on 3bb9f399): docs/analysis/class-v6/rows/pairing-20261008.md and batch hash-lane-20261008-batch3 (POW-01, POW-02, POW-08; manifest 1a938abe4; method native); a class for every lane writing rows: the identity grep forbids "BST" in any export-list document (a local-time zone names the location), rows carry UTC stamps; the three-phase OpenCL cell for same-work context 02 published to PC 1 (both day packs, the day switch at 1572864 through the worker's prepare line, each phase's digest against the context's reference slices), behind the knee rows. +THE SAME-WORK HARNESS ON MASTER AND THE FREEZE GATE CLOSED (22:38 UK, the steward, read back): box master 05feee40 (same-work-harness 953391d1, 92 checks, under the lock): the driver with its prepare step, the spec page, the three job contexts under docs/analysis/class-v6/same-work/, the batches same-work-20261008-01/02/03, every cell labelled "on an island, not a network" with its stream's time; context 02 (the signing object 2a1d6caab4c24564): the node reader PASS on all three phases, the CPU reference cross-checked twice, CUDA 5090 phase 1 PASS (phases 2 and 3 running), the pool's D1-pairing reader PASS on phase 1 after the install fix (the same class as the node reader's: THE POOL'S EVERY-NONCE RED CLOSED BY EVIDENCE, the engine's enum composition agreeing with the recipe), phases 2 and 3 running, the pool kit row BLOCKED by its V5 pins, Metal and OpenCL at 08:30; context 01 (the frozen pack) POW-01 in progress; context 03 (the live class v5 object 81fbfa3aa413173f) about 23:45; the node reader branch same-work-node cc23f9bd on the fork mirror unmerged (the node lane's call); for F0 at 23:30 the same-work row: engine, CPU recipe, CUDA (phase 1) and pool (phase 1) agreeing on 2a1d6caab4c24564 over the same (seed, state) pair, the remaining phases by 06:00. +THE 22:4x LANDINGS, read back. The enforced lane: box master 2b81f990d (verdict-cache-fix a75a1838, 22:37): the batch enforced-proving-20261008-02 (the succession PASS on 3f672661, seven cases on harness:proving-enforcement, the evidence docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json), the harness's succession shape, docs/design/key-succession-schedule.md with the H and W proposal (W one live epoch of 3,600 DAA; H the first epoch boundary at least an epoch after a clean 24-hour run on 2.0.2, waiting on the devnet-4 reset; pin C next, the served pair prior); the node side verdict-cache-fix-node e8301085 (the follower paying an accepted block's carried records by the acceptance, never by the bounded verdict cache; the HEAL lane taking the function) and cache-history-node 37c75991 on release-2.0.2-node ab489403, exec 96 green on build-9; the two-node cache-history case on build-9 on its node rebuild (a main-repo build on the same worktree had wiped the node tree, a build-remote class to the build-server lane), RESULT by 23:15. Lane D's 6.13 on master at 17dee5bc (22:40): section 6.13 naming the era-edc4fa84 column (2a1d6caab4c24564) the signing object's, PASS, clean of the bit-R class, the af89be5d column the pack's reproduction; POW-02, ROT-07, ROT-08 through batch family-gate-20261008c; lane D released. The census hand's chain-seed row on master at 7694d426 (22:44): docs/analysis/class-v6/rows/chainseed-census-1a938abe4.md (2a1d6caab4c24564 on seed af89be5d, era genesis, day 20730, the node1 state: the rule with the (c''') floor ACCEPTED at min site ratio 0.99988, bucket +6.25 sigma, worst free bit 3.06, no site over 6; 256 of 256 at r 0.129, 0 exhausted, 0 refusals: PASS as the freeze's read; 442a1691b3e3507f beside it), the batch census-v6-chainseed-20261008-2230; the window trace on the signing program on build-4 for 23:10, then released. THE 2.0.1 ROLL's CLOSE (the fleet, once): ROLL END 21:51:21; 88 boxes across five stages (lp-4090-11 at 20:42, the 24 mining boxes by 20:56, the 40 nodes by 21:21, 22 of the 23 outage boxes on empty datadirs by 21:41, dn2-2 last; hub-1's miner alone by pid at 21:43); one failure: lp-4090-18's scp timing out at 21:41 (on 2.0.0 with no miner, a no-floor box); no Illegal instruction, no template refusal; hub-1's last 300 blocks after each stage 9, 9, 8, 4, 4 keys (0x8db0505b 138, 0x53fe9802 80, 0xf2d04a5b 78, 0xdfaea673 4): hub-1's chain mined by its own four keys while the other 31 miners mine their islands; the 22 outage boxes restarted fresh walling at 3,600 (the tip-lag class). Floor lane 2's second disk fault with its fix (22:4x): the int8 tile's 3,000-cycle trace (12 GB) outrunning the per-row deletion, the trace killed by pid, the finished designs' databases removed (26 GB free), the tile re-simulated at 300 cycles; core8r64 placed 23:00, the tile 23:10, the crossbar and core32 23:30, core32r16 and core32all the morning's. + +FIX (2) GREEN THREE HOURS EARLY AND THE 3,844 WALL's REAL CAUSE (22:55 BST, the node lane). (1) The HEAL lane's foreign-seed-capture 01b083b1: six suites green; the two-node heal across a class v5 cut measured on real nodes (without the fix B never leaving its chain in 300 s; with it B switching at +20 s and both reading the same executed tip and epoch seed at +60, +120 and +300 s; the JSON under /home/build/heal-fixtures on build-7 and build-8). (2) The shipper's fold: ONE sha 39b13990 = the 2.0.2 bump + fix (1) + binding v2 + ask-every-peer + the enforced lane's acceptance rule + fix (2) + the same-work recheck-vectors reader, gating (six suites on build-9, then the push, the pair, the canary, the fresh-sync read to hub-1's tip and a dead-fork heal read on a copy of build-1's seed datadir dialling the four); green by 23:30 means THE 2.0.2 kit and the convergence roll. (3) A FAULT FOUND AND REMOVED FROM THE LINE: P22 stages 1 and 2 (on the line since 20:20) widened the segment record on the wire from 586 to 650 bytes, their own commit saying "ships only through a key succession"; on the 2.0.2 tree with the served elf every live segment record from a 2.0.1 peer read "malformed" and the relay DISCONNECTED the peer (36 disconnects in six minutes on the 276ad784 fresh node): THE REAL CAUSE of every fresh node's stop at 3,844 (the holders of the proof bytes dropped before answering); a kit with P22 would have partitioned the fleet by version during the roll; reverted (c8509543, d657e490); P22 returning with the succession tomorrow, activation-gated with a legacy parse path and no disconnect on an unparsable record (the enforced lane by 06:00, the activation value main's with H and W). (4) If 39b13990's two reads are green the convergence roll is the path and no operator reset is needed; the recommendation with costs stands written either way. +THE METAL REFERENCE EARLY (22:49 BST, the hash lane): igneum-worker-metal (the serve protocol, generators 2 to 6) built on the mini from class-v6 755c2dbcfcc5557e3346f1bc677051b7876a8aa2 (sha256 5aeddcba507ca8036dc6cfa743cf97f139ec48487d8ed3a95060e72447781a88), placed on the mini and build-1, read back by sha on both, reading the same-work context's references live (day D nonces 0 to 2, day D+1 nonces 1572864 and 1572865 equal, the day switch by prepare); class-v6 now 755c2dbcf = 1a938abe4 plus the pairing check (ce6e6902f), the composition function and test (6d607608b) and the Metal worker's generator 6 gate (2dbb53bfd, 755c2dbcf), none moving a draw; a note for the shipper: packaging/mac/build-dmg.sh rebuilding the DMG's Metal worker from proto-metal/main.swift, so a Mac miner cut from a tree without 755c2dbcf refuses class v6 packs at the pack gate. V6-07 DONE (22:5x UK, the sub-lane, read back): branch v607-floor-memory at c411bae9a (the patch, the host profile, box-prover; the lease lesser rule; one floor patch 9098c3e5; the floors and rows; the bisect), the word to land given; the code: the floor server reading FREE memory once per process; the small tier's element threshold 2^26; two recursion budgets (2^27 on the 24 GB tier, 2^26 + 2^25 under it); host/src/memory_profile.rs the pinned table per workload (full, 24gb, 16gb, small by free MiB; floors shard 7,700, aggregate 8,500, chain 8,500) chosen from the engine's lease (IGNEUM_PROVE_MEM_BUDGET_MB, the lesser of grant and IGNEUM_PROVE_MEM_FREE_MB) or nvidia-smi, the refusal exit 78 in one line; the artefacts igneum-floor-sm8689-v607.tgz on build-1 /srv/workers/fleet (9c02fcc6, bin/sp1-gpu-server db37c38b, sm_86 and sm_89), the V6-07 host 66662219 not deployable until the guest re-pin; THE ROWS on the default unoverridden job path (the served 0317 host on the V6-07 server, the server's free-memory rule choosing): RTX 3060 12 GB (free 11,898 MiB): a shard compressed 11.4 s at 7,601 MiB VERIFIED (77 W), the whole chain (2 shards + aggregation) 27.4 s end to end, aggregation peak 8,306 MiB, every proof VERIFIED; RTX 4060 8 GB (free 7,807 MiB): a shard 16.3 s at 7,504 MiB VERIFIED, the chain proving both shards (11.7 s, 12.8 s) and FAILING at the aggregation (a device allocation of 509,782,528 B at 176 MiB free); beside the ds55 miner (the V6-07 host's refusal): 3060 at 5,781 MiB free and 4060 at 1,689 MiB free both refused ("proving needs 8 GB free on the card for the shard workload", exit 78 in 0 s), the miners unharmed (26.83 and 18.96 MH/s); the recursion constant on the 3060: 100663296, 134217728 and 117440512 all 7,619 MiB and 14.1 to 14.4 s (the constant capping, the device peak not moving; the saving 0.5 GiB of pinned host RAM); CONSEQUENCES: an 8 GB card proves shards and cannot aggregate, refused the chain before setup and earning nothing on the fleet's segment path until shard production and aggregation are separated (the proving lane, the morning); a 12 GB card running the whole path alone with 3.5 GB spare; both time-sharing beside the miner; a 16 GB card beside its miner the smallest that mines and runs the whole path (unmeasured, the fleet's item (h) cell); a mining 24 GB card on the 16gb tier (smaller core shards, 1.26x time; one 4090 hour owed); THE FAULTS: master's host since 6dbd5d2f8 (17:45, "the ELF and program id not yet re-pinned"; bisected on a 3060: its parent proving 12.2 s, it reading 0 bytes, the key-succession side branch proving) unable to prove against the pinned guest, a release gate before any 2.0.x host ships (pin-guests.sh plus the CI check); the canonical floor patch copy lacking grow_for_main (a server overflowing its key buffer at prove; fixed 8c1fb754c); the beside-miner row of the server's own rule NOT RUN (the scratch script's socket sweep killing the miner, the kill-by-pattern class, corrected); docs/analysis/floor-memory-profile-2026-10-08.md; eight pods destroyed (about USD 0.45); the sub-lane released. +THE REGISTRY IDENTITY LANDING (22:50 UK, read back): box master 14592dbd (ci-registry-identity fdecaa27, 92 checks, under the lock): the identity grep covering the served registry's sources (the map, every batch and note, the registry file) with the served-page list; seven batch notes from five lanes carrying a rig's short name or the zone word scrubbed and re-recorded (statuses unchanged); the island label in the recorder (a measurement recorded on the 2.0 devnet after 20:00 UK taking network_label "on an island, not a network" at record time and at replay, a registry note stating the rule and the convergence test; no row on master beyond the same-work cells qualifying at 22:50); a stopped landing releasing the lock on TERM; kit 1's sha 39b13990 awaited on the fork mirror, the node stream against the 202 parent 77b5acc5 (its igneum-pow the freeze cbc5bd0a), the batch 202-39b13990- with F0. +P22's GATED RETURN TAKEN (the enforced lane, by 06:00): a branch off the fold 39b13990 with both wire forms parsed until a DAA activation outside the consensus digest (586/340 and 650/404; the commitments None before it; the new form produced and required only from it; the exporter and the host on the same switch), the relay dropping, counting and logging once per peer a record it cannot parse at another version, never disconnecting, the known-failed test a 2.0.1-shaped record on a 2.0.2 node before activation. THE TWO-NODE CACHE-HISTORY CASE (build-9, 22:34 to 22:50, the node at ab489403 with the fix, the host and node on pin C): the real proof's bytes refused for context under one carrier then paid once as their own record under a later one (block 102 paid to the record's payout); the invalid bytes verified once and refused again from the cache at a later carrier with no second verify; the one reading the case called a miss its counter's (counting verifier calls; a context refusal a pre-check running no SP1 verify, never cached, re-read at every carrier, the cheaper behaviour); the counter naming SP1 verifies apart from context refusals, the rerun RESULT by 23:20. +TWO FACTS ON 2.0.2 (23:0x UK, the steward): (1) red before the cut: release-manifest-check on the shipper's tip 05fbc7d1 refusing (node-source.pin reading a284380b while packaging/release-manifest.json still pins 7cfa422a on release-2.0.0-node), the diff 77b5acc5..05fbc7d1 the pin file alone, so the pool's binding switch c0d61bbd not in the tip (that pool refusing the 2.0.2 miner's binding v2); the shipper's 23:25 default: the batch recorded on 05fbc7d1 with a check:release-manifest FAIL cell and F0's 2.0.2 row BLOCKED. (2) The node stream on a284380b from the key-succession parent with the freeze pow on build-4: the kaspad check with igneum-pow GREEN (rule 19 holding), core and exec GREEN, miner, p2p-flows and consensus running, done about 23:20; the batch 202-a284380b- when the stream closes. +THE 2.0.2 CUT TIP (23:1x, the shipper, once): release-2.0.2 5f50afd1 (05fbc7d1 + the pool's binding switch c0d61bbd as ef98ba93 + packaging/release-manifest.json's node block at release-2.0.2-node a284380b with the 2.0.1 pairing; release-manifest-check green on the tree; the gate GREEN); the cause of the red: the cherry-pick of the binding switch silently not applying and the manifest's node block still pinning 7cfa422a; the node sha a284380b pushed 22:56, the steward's stream five of six green (consensus last); the node lane's pair, canary set, fresh-sync and dead-fork heal reads the remaining word for the kits; the Mac chain on the pair from 23:00; the cut line with the sha, the tip, the fleet-kit canary and the four tips once on that word. +THE GATED P22 DONE AHEAD OF 06:00 (23:0x, the enforced lane): p22-activation-node 7522f3b1 off the fold 39b13990 (both node mirrors), suites green on build-7 (consensus-core 180, igneum-exec 98, p2p-flows 39, the kaspad check clean): both wire forms parsing at every height (version 2 2.0.1's 340/586, version 3 the P22 404/650, read back to back from one buffer; an unknown version None); the new form produced and required only from proving_p22_activation_daa, u64::MAX on every compiled object, outside the consensus digest (the test asserting the digest does not move when it is set, so no 2.0.1 peer refused at the handshake); the other form refused by name at the record check, never "malformed"; the relay dropping, counting and logging once per peer a record it cannot parse and keeping the peer, for both record kinds; the class for the register: a wire-format change behind "ships only through a key succession" gated in code by a field the activation names, with the known-failed test of a 2.0.1-shaped record on the new node before activation; the morning's: the exporter and host on the same switch (with pin C and H), the two-node relay case at fast time between the kit's 2.0.1 node and this one; the activation value main's with H. +PHASE 1 (c) THE TWO-NODE CACHE-HISTORY CASE: PASS (build-9, 22:53 to 23:05 UK; the F01 fix's rule at the 2.0.2 tip ab489403, cache-history-node c591e63b, the host and node on pin C): a real proof of the chain's own block made inside the run (exported from H1, cut, proven compressed in 64 s on the box CPU, its statement equal to H1's native one), refused for context under one carrier (another block's statement: a cheap pre-check, no SP1 verify, never cached), then paid exactly once as its own record under a later carrier from the cached facts with no second verify; the invalid bytes verified once and refused again from the cache under a later carrier; SP1 verifies over the whole run 2; the evidence docs/plans/proving-enforcement/cache-history-2.json, the batch enforced-proving-20261008-03, landing; the enforced lane's night items all read back (the host-format guard cb3ba6095, the succession PASS and the H and W proposal 2b81f990d, the gated P22 7522f3b1, this case); the morning's: the exporter and host switch, the two-node relay case, the stage 3 design by 18:00. + +THE D1 FREEZE (23:17 BST, the shipper's decision under main's rule, every input read back): CANDIDATE (c). The node sha e8773ff5 on class-v6-node-review; the object the class-v6 tree 1a938abe4 (generator 6, ProgramClass::V6) with fingerprint 5f4d6dc6199294db89042171004e6420c1e5791e716d4b39b73d375818c10b6f and the dataset policy 70a6c703 (4 GiB at genesis); the signing id 2a1d6caab4c24564 at (epoch seed af89be5d, era edc4fa84, day 20730, the v5-genesis state abb58003, root 1c583d35), read EQUAL from the placed pair's engine and the freeze CLI; the research reference pack 0x4de7b836cc40a4ea labelled at its pairing. The inputs: six suites green on build-1 (consensus-core 184, consensus 143, exec 74, miner 30, p2p-flows 38, pow 19); the pair placed on build-1 and build-2 (/srv/artefacts/200-e8773ff5/node-lane, igneumd 5d7dfb31, igneum-miner 2ee4893d, the commit string read back); the canary set (the digest be5f4068 on both nodes, chain id 0x1171, "object version 6", the devnet-3 cross-dial refused); the census re-read on the chain-seed draw PASS (bdbe85bfb; min site ratio 0.99988, no site over 6 sigma, refused 0 of 294, the window trace 1.021x over its control); lane D's 6.13 PASS under both era columns (fddf641fd, the amendment 11314c882); same-work context 02: the node reader three phases 1,048,576 agree, the CPU reference byte for byte, CUDA phases 1 and 2 PASS (e95d32c94; phase 3 running), the pool PASS on phase 1 with install_pow_genesis; the composition test 6d607608b with the draw unmoved. D1 STATUS: FROZEN ON (c) AT 23:17; the pool's own rerun read-back and CUDA phase 3 record items, not blocks; (b) 83bb8ea6 the fallback, green on its own reruns; F0 signing on this; the 08:00 read-back's first item. + A SHARED-DEVNET FACT FROM THE FLEET (not this lane's, with the shipper and the infra lane): the Hetzner live seed 188.245.5.161:26611 is still on the old override object (digest eada4bda) 1 h 40 min after the 0.3.20 sweep (the fleet never touches Hetzner nodes, so it was outside the sweep); the 0.3.21 wipe canary c22-1 took five digest-mismatch rejects from it; an app with the packaged peers is refused at the seed and syncs through node1 and the hub only, a fresh joiner with only the seed cannot join, the 14 voters and the hub are unaffected; the owner puts the floor file ov16-floor-900000.json (sha 294f1f80) and the c4459193 pin on it. 0.3.21's STAGING (the node lane): the order dry-merges onto 55768f88 with nothing moving to 0.3.22; the late-join fix is 52e96c94 (70e4601e rebased onto 55768f88, exec suite 33 green with both new tests); f067f7c1, b0444f51 and 437f0438 merge clean in order; 2e32d5f6's one conflict (DST_ADDRESS beside pool-finish's DST_BINDING in consensus/core/src/finality.rs) kept both; the live-file digest eada4bda after each (every switch at never); the staging waits on the shipper's sweep-end word; the re-pin held. PC 2 DOWN AGAIN (main, 16:5x UK): the founder takes PC 2 down for cable work (PC 1 back but his desk); both PCs out of the sweep's waves, each updates on its poller on return; no PC job to PC 1; the Windows G1 completed before the outage, nothing reruns. 0.3.21's SECOND GATE LINE on 55768f88 (sha256 279b1b690e854fc9): the ten-minute mixed-version gate beside the 5899f603 pair, 13:37:40Z to 13:47:52Z, SUMMARY PASS (one digest b0afb2ee on five nodes; 223 new and 381 old blocks accepted by the old hub, 0 rejected; counts equal at 319, 486 and 604 through both clean joins and the restart step at 13:45:22Z; no panic); the node lane's two lines on 0.3.21's first candidate complete, in plan 6.9 on ca3-v4-node; the fleet's set on it (the bare-child 12 GB line, the wipe, the kept read, the cases) is the fleet's. 0.3.21's FIRST GATE LINE on 55768f88 (sha256 279b1b690e854fc9, the string read back; pairing igneum-pow 8c728ca3 at byte 5): the digest gate 13:35:41Z to 13:37:19Z SUMMARY PASS (a89be8a7 on both binaries with the peers; db9a85f9 refused, no peer; the live file's eada4bda unmoved); the ten-minute mixed-version gate from 13:37:40Z, line about 13:50Z. The 0.3.21 order as the shipper sent it: 55768f88; f067f7c1 and 70e4601e; b0444f51; 6eb21fc9; db28d331; then the re-pin from 8bdcbdd8 on the coordinator's word; suites between, the digest read after every one; the mirror's release-0.3.20-node back at the pin c4459193, release-0.3.21-node open at 55768f88. THE LATE-JOIN COMMIT (N9's second half, the node lane): 70e4601e on the box mirror as branch proof-hold-fix, from c4459193, two files (igneum/exec/src/proving.rs, protocol/flows/src/v10/proving.rs); the gap was the fetch side on the joiner (the served record ran the native check against the joiner's trailing exec state before anything was stored, the check refused it, the proof was never held, the body rule read "not held" for 20 s and failed the IBD); the fix holds the proof by hash before the checks (the pool entry still needs them) and the serve side says when it holds fewer than asked; the exec suite 32 passed at 13:26Z with the known-failed shape first, the flows check green 13:28Z, igneumd on build-1 at the 0321 worktree path built 13:32Z, sha256 17649eeb2f7d1290, string read back; with the testnet lane (the resume form, B alone); it joins the 0.3.21 staging as its own commit. THE WIPE CANARY ON c19-1, c4459193 (sha 45be9b02d1b002f5, string read back): FORM END rc 0 at 13:50:53Z. Wipe synced 13:35:50Z (57 minutes, inside the 98-minute class); mining 13:36:00Z to 13:47:07Z, 66 mined, 66 accepted, 0 rejected, isSynced true at the tip throughout; the hub holds 41 of its blocks in its last 700 with 0 rejects (13:47:09Z); the restart on its kept datadir at 13:47:15Z: the old process stopped at once (the new process's first lock line seven seconds after the marker; the watchdog held nothing, the b7cc37e7 fault closed), synced again at 13:48:39Z after 84 s, 109 templates read with max 3,432 ms and 0 timeouts; the kept read on pool-1's 0.3.17 copy on the same pod passed at 13:38Z (the rewrite line once, a clean second start). The pin's set on c4459193: the digest gate PASS, the mixed-version gate PASS, the wipe canary PASS, the kept read PASS, the restart PASS, the 12 GB line proves and verifies (paid is a race, not a gate); CASES END from c20-1 (about 14:50Z) is the last pin line. THE INTEROP FACT stands from the void run: the 5899f603 hub accepted 235 object-byte-5 blocks from the 8097d600 node with 0 rejected, one digest on all five nodes on the live sixteen-field file. The gates: the digest test and the kaspa-pow vector test (the amended devnet epoch-0 id 1a4230699a6b9c60 must equal, c120d7963abdcd96 must differ, the v3 control unchanged) on the box; the mixed-version Devnet 2 gate (the amended 0.3.20 node beside a 5899f603 node for ten minutes on the live file without the v4 fields) after the Mac build; the fresh-join canary the 0.3.20 cut's | | Main's rulings (7 October, morning) | no generator change to v4 on the live devnet; the record's null is the window model with numbers, sent by the hash lane to the attack-pass lane so AP-F8-1 re-gates against it; a fault beyond the model (a low-entropy source at site 15) stops at the coordinator with the two options priced (a 0.3.19 class amendment before the flip, or the flip held at the floor), nothing shipping without the founder's word; the tighter tail, an acceptance bound on the hot-set share, is a CLASS V5 item (sent to the v5 lane a6410f3b8abefb762 with the 64-seed census as its gate; the bound's number follows from the model) | diff --git a/docs/plans/igneum-2.0-register.md b/docs/plans/igneum-2.0-register.md index c790d3659..097b98a42 100644 --- a/docs/plans/igneum-2.0-register.md +++ b/docs/plans/igneum-2.0-register.md @@ -13,7 +13,7 @@ Built 8 October 2026, 18:3x BST (the founder's order: no feature left out, no st | 7 | Standing rules carried in (do not re-decide) (p. 7) | Rotation is optional to the security argument. Seed delay is evaluated only as seed-selection protection. | coordinator (ad8809ecfd00fdd51) | standing | landed: the rules in the plan on master b943c0476; every brief cites them | | GOV-06, POW-08 | | 8 | Standing rules carried in (do not re-decide) (p. 7) | Energy advantage, economic advantage and response capability are reported separately. Cohort = the discrete-GPU population, used cards included. | coordinator (ad8809ecfd00fdd51) | standing | landed: the rules in the plan on master b943c0476; every brief cites them | | GOV-06, POW-08 | | 9 | Standing rules carried in (do not re-decide) (p. 7) | Mining resistance, proving competitiveness and system stability are three questions with three answers. | coordinator (ad8809ecfd00fdd51) | standing | landed: the rules in the plan on master b943c0476; every brief cites them | | GOV-06, POW-08 | -| 10 | D1. A frozen, reproducible baseline (p. 8 to 9) | One exact generator, verifier, dataset policy, compiler configuration and measurement harness, pinned by digest and served. | node lane (a283f5f0d364ceef0) | 23:30 tonight | in flight: the generator on master 9ba4e0e43 (fingerprint a65e4c5a), the five-digest freeze in the 23:30 object | docs/plans/counter-asic-3-status.md | GOV-01, POW-01 | +| 10 | D1. A frozen, reproducible baseline (p. 8 to 9) | One exact generator, verifier, dataset policy, compiler configuration and measurement harness, pinned by digest and served. | node lane (a283f5f0d364ceef0) | 23:30 tonight | in flight: the generator on master 9ba4e0e43 (fingerprint a65e4c5a), the five-digest freeze in the 23:30 object; FROZEN 8 October 23:17 UK (the shipper under main's rule): candidate (c), the class-v6 tree 1a938abe4 (generator 6) with fingerprint 5f4d6dc6199294db89042171004e6420c1e5791e716d4b39b73d375818c10b6f and the dataset policy 70a6c703 (4 GiB at genesis); the node sha e8773ff5; the signing id 2a1d6caab4c24564 at (seed af89be5d, era edc4fa84, day 20730, the v5-genesis state abb58003) read equal from the engine, the CLI, the CUDA and pool readers; the research pack 0x4de7b836cc40a4ea labelled at its pairing; (b) 83bb8ea6 the fallback | docs/plans/counter-asic-3-status.md | GOV-01, POW-01 | | 11 | D1. A frozen, reproducible baseline (p. 8 to 9) | Pending measurements closed: placed 64-register rows, PC 1 lock row, 5.5 GiB coexistence rows. | hash lane (a690540514aa453d7) | placed 64-register rows 19:00 and 21:00 (k lane); the PC 1 lock row landed 17:50; the 5.5 GiB rows landed 17:50; mixed FP32 landed 690b7c70 | in flight: three of four closed | docs/analysis/class-v6/mixed-fp32.md; the status file | GPU-03, GPU-04, GPU-05, POW-07 | | 12 | D1. A frozen, reproducible baseline (p. 8 to 9) | Mixed FP32 branch: KILL 8 Oct 16:3x. Deterministic FP32 costs the cards 15 to 26 percent energy per hash against a 10 percent budget (four fifths of it the integer masking that keeps the FP unit deterministic) and the chip's edge grows to 3.0x to 3.2x because that masking is ARX work it pays at the floor. Document: docs/analysis/class-v6/mixed-fp32.md. Regression control, never resurrected. | coordinator (ad8809ecfd00fdd51) | 23:30 tonight | PASSED (checked in the plan): in flight | | GOV-01, GOV-03, GPU-01, GPU-02, GPU-03, GPU-05, GPU-07, GPU-08, POW-01 | | 13 | D1. A frozen, reproducible baseline (p. 8 to 9) | Mining and proving measured together on the final configuration, not combined on paper. | fleet lane (ac055d60427caab99) | tomorrow 12:00 on the 2.0 devnet | open: the coexist-rows (3060, 4060) landed 11653ece; the final configuration not yet | docs/analysis/class-v6/coexist-rows.md | CAP-02, GPU-05 |