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 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-07 12:47:43 +00:00
parent 21211e4cff
commit 71d7a15dd2

View file

@ -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.