diff --git a/docs/plans/counter-asic-3-status.md b/docs/plans/counter-asic-3-status.md index e94850226..13953816e 100644 --- a/docs/plans/counter-asic-3-status.md +++ b/docs/plans/counter-asic-3-status.md @@ -751,6 +751,11 @@ THE GATE v6 (the fleet lane, 05:5x UK): reset-gate-v6.sh (sha256 c3c82f5edfb90c9 THE REFERENCE STANDS AT THE EPOCH-13 CUT (the node lane, 05:53 UK; its clock correction once: its "06:00 line" was sent at 05:48 and a 06:09 note meant 05:51, a box's UTC+2 read as UK, nothing in substance changed): lp-04's chain tip (the feed build-1:/srv/canary/hub1-tip.txt) at DAA 46,800 = 13 x 3,600, the epoch-13 cut, since 05:45:43 UK, height 24,853 then 24,852 (a tip swap, no new DAA) through 05:51:28; between 05:50:44 and 05:51:06 its executed height read 4,558 then 16,362 while the DAA stood, the shape of an executor re-execution inside lp-04 (a 2.0.0 hub at its own class v5 cut); six minutes without a block about 200 blocks at the devnet's rate; whether lp-04 alone stands or the network does, the fleet lane asked for every hub's and hand's DAA and lp-04's cause. Every "at lp-04's tip" verdict void while lp-04 stands: kit 5's fresh read "AT HUB-1'S TIP at 05:50:45: fresh 4,560 vs hub-1 4,558" matched the re-executing height, a false pass, struck; kit 5's kept read, kit 6's and the 2.0.3 re-cut's reads carry "against a standing reference" until lp-04's DAA moves. The coordinator's default to the fleet lane and main (05:5x UK, main's word overriding): the 06:30 reset needs a third word, the reference's DAA moving past 46,800 in the ten minutes before 06:30; a canary "at the reference tip" against a standing tip is no PASS to a moving chain, a reset onto a standing reference a reset onto a wall; if lp-04 has not moved by 06:25 the gate writes RESET HELD with that cause whatever the canary says; nothing done to lp-04; the whole network standing at the cut the morning's first fact after the live heal. The 2.0.3 re-cut dafc823f six suites green on build-8 (p2p 42, miner 33, exec 102, core 186, consensus 146, pow 19), pair placed, canary set 05:25, reads pending a build-1 slot; the HEAL lane's rules on kit 6 at 7153ef9a (bb8c0679 + the three rules; core 178, p2p 41, exec 98); the k6 re-cut (the record store, finality, the fd limit, the bump on 7153ef9a) cutting, suites on build-8 next; kit 6's own six suites on build-9. +THE REFERENCE STANDS BY CONSENSUS (the fleet lane's read of lp-04's log and every hub's DAA, 05:52 to 05:54 UK, in the decision file): at 05:45:03 UK lp-04 logged "Finality: CONFLICTING certificate at index 677: locked on cb76d0cd..., received eae27c3b..." and from that second every peer answered "got reject message: misbehaving peer: re-advertised the refused block 8c46c8a8...; 213.173.98.75 banned for 600 s (ledger N6)" and "IBD: this node's executor did not reach the class v5 epoch's seed block within 300 s": lp-04's epoch-13 cut block refused by its peers, no block building on it, the reference chain standing at its own cut (DAA 46,800, tip 8c46c8a8, EVM 24,852, synced=false, 54 peers; the last PoW accepted on lp-04 that block at 05:49:11). At 05:49 UK lp-04's node died on the fd class ("Too many open files" on consensus-001/014360.log at nofile 524,288: 524k files in 47 minutes, a leak, 125 fds a minute after the restart; the node lane's 2.0.3 class) and the seed guard restarted it at 05:50:24 by pid files (the executor re-execution the feed's 4,558 then 16,362 read); not the cap guard. The DAAs at that minute: lp-4090-04 46,800 standing; lp-4090-05 30,998; lp-4090-06 39,601; lp-4090-02 15,250; hub-1's devnet-4 node 48,275 synced=true on its own seed, past the cut; lp-4090-43's kit canary blocks 20,664 of headers 21,598, syncing to the standing tip; build-1's hands and the mini asked. The whole fleet islands and the reference standing, by consensus, not by a box. Nothing done to lp-04 (main's word), no hand on any lock. The third condition armed: override-on-pass v2 (pid file) writes reset-kit2 only if the canary PASSes and the feed shows more than one DAA in its last ten minutes; otherwise "RESET HELD: ... the reference stands at the epoch-13 cut since 05:45:43" and the verdict carries "against a standing reference". The 06:00 line carries it as the first fact. Main told at 06:0x with the 08:00 shape's new second item; the node lane asked by 07:00 UK for the certificate conflict's read (who issued eae27c3b, on which seed and lock table; whether lp-04's lock cb76d0cd is the one its peers hold; what 2.0.3 does on a conflicting certificate at an epoch cut under F04 and the finality spec's fault model; the ledger N6 ban of a reference hub by its own joiners its own line) and the fd leak's path. +THE SAME-WORK HAND'S EXTRA CONTEXTS (the hash lane, 06:02 UK): context 03 (the live class v5 object 0x81fbfa3aa413173f) on PC 1's RX 7600 PASS on all three phases, 3 x 1,048,576 of 1,048,576, the day switch through prepare, the report on build-1 under same-work-20261008-03/ (sha 1164d653); context 01 (the frozen research object 0x4de7b836cc40a4ea) take 1 non-PASS by the driver, not the reader (the pack search by name across PC 1's jobs tree matched the l8off kit's older hl-v6-all, gen-5-stamped, before the context's own; phase 1 and the day-D half of phase 2 refused "this pack is class v5, the job names class v6"; the D+1 half ran right); take 2 with the packs by exact path live since 06:01, reads inside the half hour; context 02 PASS as sent. + +THE GATE'S 06:00 LINE (written 06:01:22 UK into reset-decision.txt): "GATE READ 06:00 UK: islands=28 (baseline 29) | CONVERGENCE distinct_tips=28 among 31 mining boxes (all 98 nodes: 63 tips)", every seed group a single box (28 one-box islands), one fewer than the 04:10 baseline (one mining box fewer, not a merge). The reference at 06:01:23: 24,852 / 0x8c46c8a8 / DAA 46,800, one DAA value in its last ten minutes, standing since 05:45:43 UK. The 06:30 decision determined under the third condition: override v2 writes "RESET HELD: ... the reference stands at the epoch-13 cut since 05:45:43" and the gate's 06:30 line reads the islands again and writes RESET HELD; the kit-binary canary on lp-4090-43 (blocks 20,664 of headers 21,598 at 05:54, its header tip lp-04's standing tip) gets its verdict labelled "against a standing reference"; hive canary 3 follows on that box with the same label. The fleet at 06:00 UK: 28 one-box islands and a reference standing at its own cut; hub-1's own devnet-4 node past that cut on its own chain (48,275); no fresh install joins any of them; the founder's morning 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) |