From 71d7a15dd232ff01052c7ad4e2ecafc7501c114d Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Wed, 7 Oct 2026 12:47:43 +0000 Subject: [PATCH] Counter ASIC 3.0 node plan 6.8: class v4 sub-version 2 takes object byte 7 on 0.3.21 (main's assignment: 0.3.20 at 5, class v5 at 6); the re-pin recipe Co-Authored-By: Claude Fable 5.1 --- docs/plans/counter-asic-3-node.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/plans/counter-asic-3-node.md b/docs/plans/counter-asic-3-node.md index b88df0a71..2749907e9 100644 --- a/docs/plans/counter-asic-3-node.md +++ b/docs/plans/counter-asic-3-node.md @@ -174,6 +174,10 @@ The line on the mirror, branch release-0.3.20-node, pairing igneum-pow 8c728ca3 Rules this day added: a kept-datadir restart gate on a standing box's datadir copy beside the wiped canary, every node cut; no persisted struct gains a field under `#[serde(default)]` without a versioned read (bincode does not default); never rebuild a binary at a path a running gate uses; 20 s between the digest and the mixed-version gates; the harnesses set no exec ports, so a bind failure must never be a death. +### 6.8 Class v4 sub-version 2 (0.3.21): object byte 7, the re-pin recipe + +Main's assignment (7 October 2026, 12:3xZ): 0.3.20 ships class v4 sub-version 1 at object byte 5; class v5 is 6 (class-v5 16afd0a0, class-v5-node 699db5a2, the flip case passed on 6,6,6); class v4 sub-version 2 (the hash lane's dataflow-freshness rule plus the saturated-source count, on ca3-v4-amend after 8c728ca3) takes 7. Sub-version 2 is 0.3.21's and its re-pin is not in the 0.3.20 path. The re-pin on the node side, once the hash lane's commit string and the new devnet epoch-0 id land: archive that commit's igneum-pow beside the fork as the paths-override copy and rsync it to the boxes; `CLASS_SIGNAL_V4` 5 → 7 with its tests (0x0702, 1794; a byte-5 block does not count towards the sub-version-2 flip); the kaspa-pow vector test's pins moved (the sub-version-2 id must-equal, with `PROGRAM_SUBVERSION_V4` 2; sub-version 1's 1a4230699a6b9c60 joining c120d7963abdcd96 as must-differ); the daemon's window line naming object 7 and the two earlier streams; the fast-time signal harness stamping 7 for a signaller and 5 for the non-signaller; then the kaspa-pow and consensus-core suites on build-2. The script that applies the fork side in one run sits in the lane's scratchpad (repin-sub2.py: the commit and the id as arguments); about 20 minutes of edits and 2 minutes of suites. The same split-protection arithmetic as 6.6 applies: a byte-5 node that sees byte 7 counts it as v4 (its rule is at least 5), flips to ITS stream (sub-version 1) at the same epoch and forks alone, every block refused by the sub-version-2 id check; the sweep replaces every 0.3.20 node before the sub-version-2 floor, and the floor sits a week past the 0.3.21 publish as 6.6 sets it. + ## 7. 0.3.17 node items after the 3.0 lane (Horizon queue, 6 October 2026, evening) Numbering (the shipper, 6 October 2026, 22:4xZ): this tree ships as 0.3.17. 0.3.16 became the corrective cut of 0.3.15's tree the same night (the Mac and PC 1 had taken early 0.3.15 builds), node f1ea7a38 unchanged. The branch keeps its name `ca3-v4-0316` and the commit messages their "0.3.16"; every "0.3.16" in the fork's code comments means this tree.