diff --git a/docs/plans/counter-asic-2-rollout.md b/docs/plans/counter-asic-2-rollout.md index 827aedab8..0e37bf481 100644 --- a/docs/plans/counter-asic-2-rollout.md +++ b/docs/plans/counter-asic-2-rollout.md @@ -1,4 +1,6 @@ -# Generator class v3 on the live devnet: rollout plan (draft, 5 October 2026, night) +# Generator class v3 on the live devnet: rollout plan (5 October 2026, night) + +Scope: the DEVNET only. the project lead delegated the three decisions for the devnet before going to bed (5 October 2026, about 20:10 UTC, through the coordinator): "Counter ASIC 2.0 fully deployed" tonight. The public testnet is not open; its genesis takes v3 from day one. The devnet is ours and a reset is acceptable. Shape and rules follow `docs/plans/finality-v3-rollout-devnet.md` and the publish record `docs/plans/finality-v3-devnet-publish.md`: one height switch read from the override file, every node carries the same object before the height, the PCs get igneumd only through an OTA app version, the activation height leaves at least three hours from the manifest publish. Nothing in this file has run on the devnet. The numbers marked `<...>` are filled by the integration branch `ca2-v3` and the decisions of section 6; the plan is published with them, not before. @@ -39,7 +41,39 @@ The same object goes verbatim into the override files of Mac node 1, the observe Before N4: remove the field on every node and restart; nothing has happened (the digest flips back, so every node at once). After N4: there is no rollback by restart, because blocks mined under v3 verify only under v3. A rollback is a second height switch back to v2 at a later epoch, carried the same way. This is why the measurements of the plan come first. -## 6. What the project lead decides +## 6. The decisions, by the project lead's rules (devnet) + +the project lead's rules, applied by the coordinator and recorded here with the number that decided each: + +| Decision | the project lead's rule | Choice | The number | +|---|---|---|---| +| Width (layers 1 and 2) | the widest read that keeps every card we own latency-bound (achieved loads within 90% of the probe ceiling) with margin on the 5090 (its bytes per hash under a third of its bandwidth at the measured rate) | `` | | +| Per-load mix (layer 2) | in, if the min-to-max spread across six programs is under 5% per card | `` | | +| Scratch share (layer 3) | the smallest share at which the chip model's gain falls under 1.5x at the lowest GPU cost, within the 6 GB working-set cap | `` | | +| Activation height N4 | devnet tip + 14,400 at publish, checked >= 10,800 at publish, rounded up to the epoch boundary | `` | | + +## 7. Gates before any publish (all of them, no exceptions) + +| # | Gate | Evidence required | State | +|---|---|---|---| +| G1 | bit-exact v3 on all three cards against the Mac reference | vectors PASS on Metal, CUDA (5090), OpenCL (9070 XT) for the v3 packs; batch fingerprints equal | open | +| G2 | the CPU verifier exact on 1,000 random hashes per card | 1,000 GPU hashes per card re-hashed by `igneum-pow` on the Mac, 0 mismatches | open | +| G3 | the generator soundness suite green, the new scratch tests included | `cargo test` in igneum-pow, `tests/packs.rs`, the Metal fuzz, edge, stats, determinism runs on the v3 class | open | +| G4 | the fast-time 3-node network mining across a v3 activation | 0 rejected blocks, 0 forks, every node's first lines show the switch, blocks on both sides of the boundary | open | +| G5 | the PC-built Windows workers and the Mac workers from the same commit | sha256 of each worker and the commit in the bench log | open | +| G6 | the node change on a fork branch from the 0.3.10 tip 21d4c73c (release-0.3.6 once the shipper lands it) with suites green on PC 2 | the build job id and its SUMMARY line | open | + +If any gate fails: stop at that gate, write why in `docs/plans/counter-asic-2-status.md`, do not publish. + +## 8. The release + +0.3.11 through the shipper's pipeline (`tools/ship-app.mjs`, the plan shape of `docs/plans/release-0.3.10.md`). The 0.3.10 shipper finishes 0.3.10 first, then takes the 0.3.11 tree, or the coordinator ships 0.3.11 with the same runbook if the shipper has stopped. The publish order is that of `docs/plans/finality-v3-devnet-publish.md`: the override field, the digest handshake, hand nodes and the seed first, then the manifest with `--activation-height` and the deadline note, then the apps, then the digest sweep, then the HiveOS package republish. + +## 9. After the publish: Counter ASIC 3.0 + +The ASIC-history agent sends its ranked additions; they are measured the same way, folded into the class as v4 behind its own activation, same gates, same rollout; `docs/plans/counter-asic-3.md`. + +## 10. Decisions table (superseded by section 6; kept for the options) | Decision | Options | Recommendation | Source | |---|---|---|---|