counter-asic-2-node.md: gate G4 run 1 PASS on the mixer-x4 class (181 / 124 blocks across the boundary, 0 rejected, 0 forks, 3 switch lines, v2 and v3 program ids), the summary JSON
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
9b5451f66a
commit
08db83b2eb
2 changed files with 397 additions and 1 deletions
381
docs/plans/counter-asic-2-gate/class-v3-20261005-2133Z-mx4.json
Normal file
381
docs/plans/counter-asic-2-gate/class-v3-20261005-2133Z-mx4.json
Normal file
|
|
@ -0,0 +1,381 @@
|
|||
{
|
||||
"pass": true,
|
||||
"checks": {
|
||||
"switch_line_on_every_node": true,
|
||||
"switch_line_names_the_rounded_epoch": true,
|
||||
"template_switched_at_the_first_v3_epoch": true,
|
||||
"blocks_before_the_boundary": true,
|
||||
"blocks_after_the_boundary": true,
|
||||
"v2_and_v3_programs_seen": true,
|
||||
"program_ids_differ_across_the_switch": true,
|
||||
"miners_agree_on_every_program": true,
|
||||
"zero_rejected_by_miners": true,
|
||||
"zero_rejected_by_nodes": true,
|
||||
"sinks_agree": true,
|
||||
"block_counts_agree": true
|
||||
},
|
||||
"activation": 150,
|
||||
"epoch_blocks": 60,
|
||||
"first_v3_epoch": 3,
|
||||
"boundary_daa": 180,
|
||||
"secs": 480,
|
||||
"threads": 1,
|
||||
"node": "/Users/joshm/Projects/igneum-wt-ca2-v3/vendor/igneum-node-ca2/target-ca2/release/igneumd",
|
||||
"miner": "/Users/joshm/Projects/igneum-wt-ca2-v3/vendor/igneum-node-ca2/target-ca2/release/igneum-miner",
|
||||
"genesis_bits": "0x1f010000",
|
||||
"template_switch": {
|
||||
"epoch": 3,
|
||||
"daa": 180,
|
||||
"at": 168
|
||||
},
|
||||
"run_ended_at_s": 298.3,
|
||||
"final_daa": 300,
|
||||
"blocks": {
|
||||
"total": 305,
|
||||
"before_boundary": 181,
|
||||
"after_boundary": 124,
|
||||
"chain_before": 176,
|
||||
"chain_after": 123
|
||||
},
|
||||
"programs": [
|
||||
{
|
||||
"epoch": 0,
|
||||
"class": "v2",
|
||||
"program_id": "8f8806638d59850f",
|
||||
"seed": "234e082d653dc69d",
|
||||
"miners": 3,
|
||||
"disagree": false,
|
||||
"ready_ms": [
|
||||
219,
|
||||
235,
|
||||
232
|
||||
]
|
||||
},
|
||||
{
|
||||
"epoch": 1,
|
||||
"class": "v2",
|
||||
"program_id": "fd9562df32a68313",
|
||||
"seed": "9b36731951ad7fb3",
|
||||
"miners": 3,
|
||||
"disagree": false,
|
||||
"ready_ms": [
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"epoch": 2,
|
||||
"class": "v2",
|
||||
"program_id": "1ae6d90ab299154c",
|
||||
"seed": "ce88239dfe686691",
|
||||
"miners": 3,
|
||||
"disagree": false,
|
||||
"ready_ms": [
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"epoch": 3,
|
||||
"class": "v3",
|
||||
"program_id": "5d0dedd9fd9e29a1",
|
||||
"seed": "f177ab855facbeb4",
|
||||
"miners": 3,
|
||||
"disagree": false,
|
||||
"ready_ms": [
|
||||
185,
|
||||
179,
|
||||
183,
|
||||
177,
|
||||
183,
|
||||
177
|
||||
]
|
||||
},
|
||||
{
|
||||
"epoch": 4,
|
||||
"class": "v3",
|
||||
"program_id": "e81808dcdb02ce05",
|
||||
"seed": "bcbc22513d3b73a2",
|
||||
"miners": 3,
|
||||
"disagree": false,
|
||||
"ready_ms": [
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"epoch": 5,
|
||||
"class": "v3",
|
||||
"program_id": "06aff9c1d33e7a13",
|
||||
"seed": "8d6755bc0eb15465",
|
||||
"miners": 3,
|
||||
"disagree": false,
|
||||
"ready_ms": [
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"accepted_per_miner": [
|
||||
97,
|
||||
103,
|
||||
104
|
||||
],
|
||||
"rejected_by_miners": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"rejected_by_nodes": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"rejected_lines": [],
|
||||
"sinks": [
|
||||
"082fd39ba65df2ff",
|
||||
"082fd39ba65df2ff",
|
||||
"082fd39ba65df2ff"
|
||||
],
|
||||
"block_counts": [
|
||||
304,
|
||||
304,
|
||||
304
|
||||
],
|
||||
"tips_per_node": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"switch_lines": [
|
||||
"Program class v3 from the override file: active from epoch 3 (DAA score 150 rounded up to the epoch boundary at 180, epochs of 60 DAA)",
|
||||
"Program class v3 from the override file: active from epoch 3 (DAA score 150 rounded up to the epoch boundary at 180, epochs of 60 DAA)",
|
||||
"Program class v3 from the override file: active from epoch 3 (DAA score 150 rounded up to the epoch boundary at 180, epochs of 60 DAA)"
|
||||
],
|
||||
"samples": [
|
||||
{
|
||||
"t": 4.7,
|
||||
"daa": 0,
|
||||
"epoch": 0,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"0/234e082d",
|
||||
"0/234e082d",
|
||||
"0/234e082d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 19.7,
|
||||
"daa": 11,
|
||||
"epoch": 0,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"11/c036063c",
|
||||
"11/c036063c",
|
||||
"11/c036063c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 34.7,
|
||||
"daa": 34,
|
||||
"epoch": 0,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"34/62ae0e8e",
|
||||
"34/62ae0e8e",
|
||||
"34/62ae0e8e"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 49.8,
|
||||
"daa": 53,
|
||||
"epoch": 0,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"53/c21d7e86",
|
||||
"53/c21d7e86",
|
||||
"53/c21d7e86"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 64.8,
|
||||
"daa": 70,
|
||||
"epoch": 1,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"70/9cb940da",
|
||||
"70/9cb940da",
|
||||
"70/9cb940da"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 79.8,
|
||||
"daa": 88,
|
||||
"epoch": 1,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"88/c84b8514",
|
||||
"88/c84b8514",
|
||||
"88/c84b8514"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 94.9,
|
||||
"daa": 103,
|
||||
"epoch": 1,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"103/1e2dfed3",
|
||||
"103/1e2dfed3",
|
||||
"103/1e2dfed3"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 109.9,
|
||||
"daa": 111,
|
||||
"epoch": 1,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"111/aa7ea4cd",
|
||||
"111/aa7ea4cd",
|
||||
"111/aa7ea4cd"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 124.9,
|
||||
"daa": 139,
|
||||
"epoch": 2,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"139/d52be92d",
|
||||
"139/d52be92d",
|
||||
"139/d52be92d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 139.9,
|
||||
"daa": 153,
|
||||
"epoch": 2,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"153/02a4323f",
|
||||
"153/02a4323f",
|
||||
"153/02a4323f"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 155,
|
||||
"daa": 165,
|
||||
"epoch": 2,
|
||||
"class": 2,
|
||||
"nodes": [
|
||||
"165/f2e38b3d",
|
||||
"165/f2e38b3d",
|
||||
"165/f2e38b3d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 170,
|
||||
"daa": 183,
|
||||
"epoch": 3,
|
||||
"class": 3,
|
||||
"nodes": [
|
||||
"183/98f2ca9d",
|
||||
"183/98f2ca9d",
|
||||
"183/98f2ca9d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 185.1,
|
||||
"daa": 195,
|
||||
"epoch": 3,
|
||||
"class": 3,
|
||||
"nodes": [
|
||||
"195/eecbf07e",
|
||||
"195/eecbf07e",
|
||||
"195/eecbf07e"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 200.1,
|
||||
"daa": 205,
|
||||
"epoch": 3,
|
||||
"class": 3,
|
||||
"nodes": [
|
||||
"205/ad4a2646",
|
||||
"205/ad4a2646",
|
||||
"205/ad4a2646"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 215.1,
|
||||
"daa": 221,
|
||||
"epoch": 3,
|
||||
"class": 3,
|
||||
"nodes": [
|
||||
"221/f8626ffd",
|
||||
"221/f8626ffd",
|
||||
"221/f8626ffd"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 230.2,
|
||||
"daa": 233,
|
||||
"epoch": 3,
|
||||
"class": 3,
|
||||
"nodes": [
|
||||
"233/d94e1815",
|
||||
"233/d94e1815",
|
||||
"233/d94e1815"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 245.2,
|
||||
"daa": 251,
|
||||
"epoch": 4,
|
||||
"class": 3,
|
||||
"nodes": [
|
||||
"251/f724fd9e",
|
||||
"251/f724fd9e",
|
||||
"251/f724fd9e"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 260.2,
|
||||
"daa": 266,
|
||||
"epoch": 4,
|
||||
"class": 3,
|
||||
"nodes": [
|
||||
"266/b91936fd",
|
||||
"266/b91936fd",
|
||||
"266/b91936fd"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 275.2,
|
||||
"daa": 276,
|
||||
"epoch": 4,
|
||||
"class": 3,
|
||||
"nodes": [
|
||||
"276/7c8f720d",
|
||||
"276/7c8f720d",
|
||||
"276/7c8f720d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"t": 290.3,
|
||||
"daa": 297,
|
||||
"epoch": 4,
|
||||
"class": 3,
|
||||
"nodes": [
|
||||
"297/63eb2574",
|
||||
"297/63eb2574",
|
||||
"297/63eb2574"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -77,7 +77,22 @@ Refusals: `pf_load` refuses a generator that is not 2 or 3 (`error 0 pack <dir>:
|
|||
|
||||
`node infra/fast-time/class-v3.mjs [--secs 420] [--activation 150] [--epochs-after 2]` under `tools/lock/with-lock.sh run`: three nodes on `override-60x.json` merged with `genesis_bits` 0x1f010000 (2^16 hashes per block, the CPU difficulty of `sim/difficulty/testnet_v2.py`) and `program_class_v3_activation_daa` 150 (inside epoch 2, so the rounding rule is exercised: the first v3 epoch is 3 at DAA 180); one real CPU miner per node (`--engine igneum-pow`, 1 thread, real lottery-hash solutions, every node verifying the other two); the run ends two epochs after the boundary.
|
||||
|
||||
Result: PENDING (filled by the run; see the status file and the final report).
|
||||
### Result, run 1 (5 October 2026, 21:33:04Z to 21:38:02Z, Apple M5 Max shared with other agents' builds)
|
||||
|
||||
Binaries: fork ca2-v3-node 79bd8e10 and igneum-pow at ca2-v3 66eeba3 (the mixer-x4 class, `V3_CLASS` = MX4, before the era and hot-table fields), `target-ca2/release`, built on the Mac under the build lock. Summary: `docs/plans/counter-asic-2-gate/class-v3-20261005-2133Z-mx4.json`. PASS: every check true.
|
||||
|
||||
| Check | Measured |
|
||||
|---|---|
|
||||
| Switch line on every node | 3 of 3: `Program class v3 from the override file: active from epoch 3 (DAA score 150 rounded up to the epoch boundary at 180, epochs of 60 DAA)` |
|
||||
| Digest, all three nodes | `0186df7d0834d054...` (the 60x profile with the CPU bits and the switch) |
|
||||
| Template class per epoch | epochs 0 to 2 class 2 (`nextProgramClass` 3 from epoch 2), epochs 3 to 5 class 3; the switch seen at DAA 180, 168.0 s wall |
|
||||
| Blocks before / after the boundary (node 0's DAG) | 181 / 124 (selected chain 176 / 123), 305 in all |
|
||||
| Program id per epoch, all three miners agreeing | e0 v2 `8f8806638d59850f`, e1 v2 `fd9562df32a68313`, e2 v2 `1ae6d90ab299154c`, e3 v3 `5d0dedd9fd9e29a1`, e4 v3 `e81808dcdb02ce05`, e5 v3 `06aff9c1d33e7a13`; no v2 id reappears under v3 |
|
||||
| Rejected blocks | miners 0 / 0 / 0 (97, 103, 104 accepted); nodes 0 / 0 / 0 `PoW rejected` lines |
|
||||
| Forks | sinks `082fd39ba65df2ff` on all three nodes, block counts 304 / 304 / 304, one tip each |
|
||||
| Program and cache ready, one CPU core | a new `(day, class)` cache: v2 epoch 0 219 to 235 ms, the first v3 epoch 177 to 185 ms (two per miner: the 24-minute day rolled at DAA 190); a program swap inside a day 2 ms |
|
||||
|
||||
The mixer x4 build-time number the rollout asks for is not visible here: the CPU miner derives dataset words on demand from the cache (no dataset build), so the x4 cost lands on the GPU workers' dataset build, measured by the ca2-mixer playbooks on the PCs. Run 2, on the composed class (era and hot fields), follows the era and cache merges.
|
||||
|
||||
## 6. Tests
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue