Counter ASIC 3.0 gates (hash): the RTX 5090 G1 and G2 evidence from the collected job.log (eight fingerprints equal to the Mac's, 8 x 1,024 of 1,024); hash-gates.md and the bench-log entry closed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
5e2fbdd0c6
commit
1ecb730462
2 changed files with 28 additions and 29 deletions
|
|
@ -2172,18 +2172,18 @@ Branch `ca3-v4-hash`, worker "v4-hash", on `ca3-coord` 3213ee9. The candidate cl
|
|||
|
||||
| Pack | Class | Fingerprint 2^24 at base 0 (Metal = Apple OpenCL) | RTX 5090 (CUDA NVRTC, PC 2) | RX 9070 XT |
|
||||
|---|---|---|---|---|
|
||||
| mx8-devnet-epoch0 (control) | mx8-erad810f22d | 90f794dd556f7a3b | PENDING (collected job.log) | PC 1 job 1 |
|
||||
| v4-devnet-epoch0 | mx8-erad810f22d+sh256x27 | f410c731b6bc2d31 | PENDING | PC 1 job 1 |
|
||||
| v4-era-0 | mx8-erab2ed8a89+sh256x27 | b115c410e08be6ca | PENDING | PC 1 job 1 |
|
||||
| v4-era-1 | mx8-era676a17fc+sh256x27 | edc2b18fc67e9d1c | PENDING | PC 1 job 1 |
|
||||
| v4-era-2 | mx8-era843155d7+sh256x27 | 604ed87109570559 | PENDING | PC 1 job 1 |
|
||||
| v4-era-3 | mx8-erad6367bfe+sh256x27 | 9541e2a41dde2ee6 | PENDING | PC 1 job 1 |
|
||||
| v4-era-4 | mx8-era4488f3ed+sh256x27 | a9ffa2b67bd2e366 | PENDING | PC 1 job 1 |
|
||||
| v4-era-5 | mx8-eraf897c84e+sh256x27 | 1f34e9c465945249 | PENDING | PC 1 job 1 |
|
||||
| mx8-devnet-epoch0 (control) | mx8-erad810f22d | 90f794dd556f7a3b | 90f794dd556f7a3b | PC 1 job 1 |
|
||||
| v4-devnet-epoch0 | mx8-erad810f22d+sh256x27 | f410c731b6bc2d31 | f410c731b6bc2d31 | PC 1 job 1 |
|
||||
| v4-era-0 | mx8-erab2ed8a89+sh256x27 | b115c410e08be6ca | b115c410e08be6ca | PC 1 job 1 |
|
||||
| v4-era-1 | mx8-era676a17fc+sh256x27 | edc2b18fc67e9d1c | edc2b18fc67e9d1c | PC 1 job 1 |
|
||||
| v4-era-2 | mx8-era843155d7+sh256x27 | 604ed87109570559 | 604ed87109570559 | PC 1 job 1 |
|
||||
| v4-era-3 | mx8-erad6367bfe+sh256x27 | 9541e2a41dde2ee6 | 9541e2a41dde2ee6 | PC 1 job 1 |
|
||||
| v4-era-4 | mx8-era4488f3ed+sh256x27 | a9ffa2b67bd2e366 | a9ffa2b67bd2e366 | PC 1 job 1 |
|
||||
| v4-era-5 | mx8-eraf897c84e+sh256x27 | 1f34e9c465945249 | 1f34e9c465945249 | PC 1 job 1 |
|
||||
|
||||
The PC 2 job (run-ca3-v4-gates-pc2-20261006, `tools/ca3-v4/pc2-v4-gates.ps1`, 15:52:23 to 15:52:49Z, exit 0, 26 s, the installed 0.3.11 `igneum-worker-cuda.exe` through NVRTC on each pack's own text, beside the app's miner, the prover untouched, no card switched off: bit-exactness is not load sensitive) ran G1 (`--bench --batches 5 --batch-log2 24`) and G2 on all eight packs in one job. The intake's report keeps the last 200 KB of job.log and the 8 x 1,024 G2 found lines filled it, so the G1 lines and four packs' G2 lines are in the full job.log, collected by collect-ca3-v4-joblog2-20261006; the rows close when it is read.
|
||||
The PC 2 job (run-ca3-v4-gates-pc2-20261006, `tools/ca3-v4/pc2-v4-gates.ps1`, 15:52:23 to 15:52:49Z, exit 0, 26 s, the installed 0.3.11 `igneum-worker-cuda.exe` through NVRTC on each pack's own text, beside the app's miner, the prover untouched, no card switched off: bit-exactness is not load sensitive) ran G1 (`--bench --batches 5 --batch-log2 24`) and G2 on all eight packs in one job. The intake's report keeps the last 200 KB of job.log and the 8 x 1,024 G2 found lines filled it; the G1 lines came home through a collect whose command filters job.log (collect-ca3-v4-g1only-20261006, 16:12Z): self-test PASS on every pack, every fingerprint equal to the Mac's (the column above), NVRTC 180 to 274 ms per pack, the 1 GiB build 38 to 45 ms. G1 is GREEN on NVIDIA and Apple; AMD is PC 1 job 1.
|
||||
|
||||
**G2, the verifier exact on 1,024 hashes per card (`with-lock.sh run`, 15:53:54 to 15:54:22Z, load 6.8 to 8.9).** One serve-mode job per card and pack, `job g2 00..01 ffffffffffffffff 0 1024 <epoch> <day> class=v3 era=<hex>` (Metal after `prepare <epoch> <day> <pack> class=v3 era=<hex>`), every nonce a found line, re-hashed with `igneum-pow hash-bound --prehash 00..01 --nonce 0 --count 1024` on the same pack (`--count` ported from ca2-era). Metal 1,024 of 1,024 on all eight packs; Apple OpenCL 1,024 of 1,024 on all eight; RTX 5090: v4-era-3, v4-era-4, v4-era-5 1,024 of 1,024 and v4-era-2 885 of 885 in the report's tail (the job counted 1,024 found on every pack whose count line survived), the other four packs in the collected log; RX 9070 XT: PC 1 job 1.
|
||||
**G2, the verifier exact on 1,024 hashes per card (`with-lock.sh run`, 15:53:54 to 15:54:22Z, load 6.8 to 8.9).** One serve-mode job per card and pack, `job g2 00..01 ffffffffffffffff 0 1024 <epoch> <day> class=v3 era=<hex>` (Metal after `prepare <epoch> <day> <pack> class=v3 era=<hex>`), every nonce a found line, re-hashed with `igneum-pow hash-bound --prehash 00..01 --nonce 0 --count 1024` on the same pack (`--count` ported from ca2-era). Metal 1,024 of 1,024 on all eight packs; Apple OpenCL 1,024 of 1,024 on all eight; RTX 5090 (`igneum-worker-cuda.exe --serve --pack <dir> --race off`, the same job) 1,024 of 1,024 on all eight packs, every found line equal to the Mac's verifier; RX 9070 XT: PC 1 job 1. G2 is GREEN on NVIDIA and Apple.
|
||||
|
||||
**G3, the soundness suite on the class.** `cargo test -j4 --release` in igneum-pow (`with-lock.sh build`, nice 19, cargo 1.99.0, 15:49:29 to 15:50:01Z, load 6.8): 59 + 7 + 4 + 19 + 7 = 96 of 96. The mixer harness now takes the class (`IGNEUM_MIXER_CLASS`) in the fuzz, the stats and the determinism test, an era to compose (`IGNEUM_MIXER_ERA=igneum-era-test/<n>`), and a shadow contract (S instructions, no load, every field in range, the base program equal to the class's without the shadow draw for draw); the edge test is the dataset's alone and takes no class. On `mx8+sh256x27` (15:54:25 to 15:55:39Z, load 9.1): fuzz 200 programs, 800 units, 200 in the top 256 nonces; stats avalanche 49.96 and 49.98 percent, worst bit z 2.65 and 3.56, 0 duplicates (v2 49.87 and 49.98, z 2.25 and 2.30); edge pass; determinism two builds equal and equal to the pinned `packs-ca3-shadow/sh256x27`. With era test/0 composed (50 programs, 200 units, 15:56:35 to 15:57:03Z, load 12.6): 4 of 4, avalanche 50.03 and 50.11, z 2.65 and 3.76. The GPU fuzz on the written packs (`packbench --batches 1 --batch-log2 9 --batch-base 4294967040`, every tenth on Apple OpenCL `--batch-log2 10`, `with-lock.sh run`, 15:55:42 to 15:58:21Z, load 11.3 to 12.3): Metal 200 of 200 and 50 of 50, Apple OpenCL 20 of 20 and 5 of 5. Known-failed case: the first era-composed run FAILED (1 failed, 15:55:42Z) on `assert_ne!(p.program_id(), base.program_id())`, which is the finding below.
|
||||
|
||||
|
|
@ -2197,4 +2197,4 @@ The PC 2 job (run-ca3-v4-gates-pc2-20261006, `tools/ca3-v4/pc2-v4-gates.ps1`, 15
|
|||
|
||||
Per tier: 73 microseconds per hash on an M5 Max core, so a pool checks about 13,700 shares per second per such core and about 5,500 per 2019-class core (approximate); a node on any tier verifies a warp inside the gate; no tier is slower than under x8 by more than 8.5 percent.
|
||||
|
||||
**Findings.** (1) Under the chain's path a generator-3 program's id is `program_id(3, seed, attempt)`, class-independent: the seven exported packs carry 73bcbfe8ccf988f1 with and without the shadow, and 50 of 50 fuzz seeds agree. A node and a miner could agree on the id while running different classes, and 2.0's G4 check `program_ids_differ_across_the_switch` would not fire across a v4 activation: the v4 seam (G4, G6) must stamp its own generator version or put the class in the id. The hash needs nothing for it; the cut must not go without it. (2) The report cap: a G2 playbook that prints 8,192 found lines loses its own G1 lines; the tooling fix is a found-lines file plus a count and digest on stdout, with a collect. Owed: AMD (PC 1 job 1), the 5090 G1 fingerprints and four G2 counts (the collected log), the 2019-class core (O-1.14).
|
||||
**Findings.** (1) Under the chain's path a generator-3 program's id is `program_id(3, seed, attempt)`, class-independent: the seven exported packs carry 73bcbfe8ccf988f1 with and without the shadow, and 50 of 50 fuzz seeds agree. A node and a miner could agree on the id while running different classes, and 2.0's G4 check `program_ids_differ_across_the_switch` would not fire across a v4 activation: the v4 seam (G4, G6) must stamp its own generator version or put the class in the id. The hash needs nothing for it; the cut must not go without it. (2) The report cap: a G2 playbook that prints 8,192 found lines loses its own G1 lines; the tooling fix is a found-lines file plus a count and digest on stdout, with a collect. Owed: AMD (PC 1 job 1), the 2019-class core (O-1.14).
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Counter ASIC 3.0 gate run, the hash side (6 October 2026, 15:49 to 16:xx UTC)
|
||||
# Counter ASIC 3.0 gate run, the hash side (6 October 2026, 15:49 to 16:13 UTC)
|
||||
|
||||
Branch `ca3-v4-hash`, worker "v4-hash", on `ca3-coord` 3213ee9. The candidate: class v4 `mx8+sh256x27` (`docs/analysis/latency-shadow-2026-10-06.md`), composed with the era as the chain composes it inside class v3 (`LoadClass::era(mx8+sh256x27, E, &V3_ALLOWED)`, generator 3, the class name `mx8-era<hex>+sh256x27`). The packs are `proto-cuda/packs-ca3-v4/`: `v4-devnet-epoch0` (the devnet epoch-0 and day seeds, the era = the genesis epoch seed, label d810f22d, as 2.0's `mx8-devnet-epoch0`), `v4-era-0` to `v4-era-5` (the same seeds under the six test eras of 2.0's `packs-ca2-era`), and the class v3 control `mx8-devnet-epoch0` re-exported from this tree (its fingerprint must be 2.0's 90f794dd556f7a3b: the known-finished case every harness here is trusted on). The pack export takes the era (`--class mx8+sh256x27 --era <n>:<hex>`), so there is no era gap. The gates are those of `docs/plans/counter-asic-2-rollout.md` section 7 in its evidence shape; one JSON per gate run sits beside this file. Nothing is published to the devnet; no consensus parameter, manifest or override file is touched.
|
||||
|
||||
|
|
@ -6,8 +6,8 @@ Branch `ca3-v4-hash`, worker "v4-hash", on `ca3-coord` 3213ee9. The candidate: c
|
|||
|
||||
| # | Gate | Evidence required | State |
|
||||
|---|---|---|---|
|
||||
| G1 | bit-exact on every vendor against the Mac reference | the 2^24 fingerprint at base nonce 0 and the self-test per pack and vendor; the vendors' fingerprints equal the Mac's | Apple GREEN (Metal and Apple OpenCL, 15:49:29 to 15:50:02Z, `with-lock.sh run`, load 6.8 at start, 6.7 at end): the eight packs' fingerprints equal across both Apple harnesses, cache FNV 448274a57f508cbc PASS, dataset PASS, vectors 3 of 3 standalone and 3 of 3 in batch (Metal), 96 of 96 lanes (Apple OpenCL): mx8-devnet-epoch0 90f794dd556f7a3b (= the 2.0 record), v4-devnet-epoch0 f410c731b6bc2d31, v4-era-0 b115c410e08be6ca, v4-era-1 edc2b18fc67e9d1c, v4-era-2 604ed87109570559, v4-era-3 9541e2a41dde2ee6, v4-era-4 a9ffa2b67bd2e366, v4-era-5 1f34e9c465945249 (`class-v4-20261006-1549Z-g1-mac.json`). NVIDIA (RTX 5090, CUDA NVRTC, the installed 0.3.11 worker, PC 2 job run-ca3-v4-gates-pc2-20261006, 15:52:23 to 15:52:49Z, exit 0, 26 s, beside the app's own miner): the self-test and fingerprint lines sit in the first part of the job's output, which the intake report cut (it keeps the last 200 KB of job.log, and the 8 x 1,024 G2 found lines filled it); the full job.log is being collected (collect-ca3-v4-joblog2-20261006), and the row is PENDING until it is read. What the tail already shows: the worker compiled and served every v4 pack through NVRTC (`ready cuda NVIDIA_GeForce_RTX_5090 ... dataset-log2 28`), and its 1,024 hashes on v4-era-3, v4-era-4 and v4-era-5 equal the Mac's verifier (section G2), which is bit-exactness on 3,072 nonces of three v4 packs. AMD: PC 1 job 1 | Apple GREEN; NVIDIA PENDING (the job ran clean; the fingerprint lines are in the collected log); AMD: PC 1 job 1 |
|
||||
| G2 | the CPU verifier exact on 1,000 random hashes per card | one serve-mode job of 1,024 nonces at target ff..ff per card and pack (every nonce a found line), re-hashed on the Mac with `igneum-pow hash-bound --prehash 00..01 --count 1024` on the same pack (`--count` ported from branch ca2-era in this tree) | Mac GREEN (15:53:54 to 15:54:22Z, `with-lock.sh run`, load 6.8 to 8.9): Metal serve (`igneum-bench --serve --race off`, `prepare <epoch> <day> <pack> class=v3 era=<hex>` then the job line) 1,024 of 1,024 on all eight packs; Apple OpenCL serve (`igneum-bench-cl --serve --pack <dir>`) 1,024 of 1,024 on all eight packs; nonces 0 to 1,023 all present every time (`class-v4-20261006-1553Z-g2-mac.json`). RTX 5090 (the same PC 2 job as G1): the job's own count lines say 1,024 of 1,024 found on every pack whose lines survived the cut; of the found lines in the report's tail, v4-era-3 1,024 of 1,024, v4-era-4 1,024 of 1,024 and v4-era-5 1,024 of 1,024 equal the Mac's verifier, v4-era-2 885 of 885 (the tail starts inside that pack); mx8-devnet-epoch0, v4-devnet-epoch0, v4-era-0 and v4-era-1 are in the collected log, PENDING. RX 9070 XT: PC 1 job 1 | Mac GREEN; NVIDIA GREEN on three v4 packs (3 x 1,024 of 1,024) and 885 of 885 on a fourth, the other four packs PENDING the log; AMD: PC 1 job 1 |
|
||||
| G1 | bit-exact on every vendor against the Mac reference | the 2^24 fingerprint at base nonce 0 and the self-test per pack and vendor; the vendors' fingerprints equal the Mac's | Apple GREEN (Metal and Apple OpenCL, 15:49:29 to 15:50:02Z, `with-lock.sh run`, load 6.8 at start, 6.7 at end): the eight packs' fingerprints equal across both Apple harnesses, cache FNV 448274a57f508cbc PASS, dataset PASS, vectors 3 of 3 standalone and 3 of 3 in batch (Metal), 96 of 96 lanes (Apple OpenCL): mx8-devnet-epoch0 90f794dd556f7a3b (= the 2.0 record), v4-devnet-epoch0 f410c731b6bc2d31, v4-era-0 b115c410e08be6ca, v4-era-1 edc2b18fc67e9d1c, v4-era-2 604ed87109570559, v4-era-3 9541e2a41dde2ee6, v4-era-4 a9ffa2b67bd2e366, v4-era-5 1f34e9c465945249 (`class-v4-20261006-1549Z-g1-mac.json`). NVIDIA GREEN (RTX 5090, CUDA NVRTC 12.8, sm_120, the installed worker sha256 2b3b8c92..., app 0.3.13; PC 2 job run-ca3-v4-gates-pc2-20261006, 15:52:23 to 15:52:49Z, exit 0, 26 s, beside the app's own miner, the prover untouched, no card switched off, both card-key forms read from settings.json): self-test PASS on every pack (cache head, last line and FNV 448274a57f508cbc, dataset head, word MASK, 64 samples, 96 vector lanes) and every 2^24 fingerprint equal to the Mac's: mx8-devnet-epoch0 90f794dd556f7a3b, v4-devnet-epoch0 f410c731b6bc2d31, v4-era-0 b115c410e08be6ca, v4-era-1 edc2b18fc67e9d1c, v4-era-2 604ed87109570559, v4-era-3 9541e2a41dde2ee6, v4-era-4 a9ffa2b67bd2e366, v4-era-5 1f34e9c465945249; NVRTC 180 to 274 ms per pack, the 1 GiB build 38 to 45 ms (`class-v4-20261006-1552Z-g1-5090.json`; the lines read from job.log through collect-ca3-v4-g1only-20261006 because the report keeps the last 200 KB and the G2 found lines filled it). AMD: PC 1 job 1 | GREEN on NVIDIA and Apple (eight packs, three harnesses, one fingerprint per pack); AMD: PC 1 job 1 |
|
||||
| G2 | the CPU verifier exact on 1,000 random hashes per card | one serve-mode job of 1,024 nonces at target ff..ff per card and pack (every nonce a found line), re-hashed on the Mac with `igneum-pow hash-bound --prehash 00..01 --count 1024` on the same pack (`--count` ported from branch ca2-era in this tree) | Mac GREEN (15:53:54 to 15:54:22Z, `with-lock.sh run`, load 6.8 to 8.9): Metal serve (`igneum-bench --serve --race off`, `prepare <epoch> <day> <pack> class=v3 era=<hex>` then the job line) 1,024 of 1,024 on all eight packs; Apple OpenCL serve (`igneum-bench-cl --serve --pack <dir>`) 1,024 of 1,024 on all eight packs; nonces 0 to 1,023 all present every time (`class-v4-20261006-1553Z-g2-mac.json`). RTX 5090 (the same PC 2 job as G1, `igneum-worker-cuda.exe --serve --pack <dir> --race off`): 1,024 of 1,024 on all eight packs, every found line equal to the Mac's verifier, nonces 0 to 1,023 all present (`class-v4-20261006-1552Z-g2-5090.json`; the found lines read from the report's tail and two collects). RX 9070 XT: PC 1 job 1 | GREEN on NVIDIA and Apple (24 runs of 1,024 of 1,024: eight packs on the 5090, Metal and Apple OpenCL); AMD: PC 1 job 1 |
|
||||
| G3 | the generator soundness suite green on the class | `cargo test` in igneum-pow; the Metal fuzz, edge, stats and determinism runs on the class | GREEN. The crate suite 59 + 7 + 4 + 19 + 7 = 96 of 96, 0 failed (15:49:29 to 15:50:01Z, `with-lock.sh build`, nice 19, -j4, release, cargo 1.99.0, load 6.8). The mixer harness on `mx8+sh256x27` (`IGNEUM_MIXER_CLASS`, 15:54:25 to 15:55:39Z, load 9.1): fuzz 200 programs, 800 units on the CPU, 200 units in the top 256 nonces, the shadow contract on every program (256 instructions, no load, every field in range, the base program equal to mx8's without the shadow draw for draw, the shadow in the program id); stats avalanche 49.96 and 49.98 percent, worst bit z 2.65 and 3.56, 0 duplicates (v2 beside it: 49.87 and 49.98, z 2.25 and 2.30); edge pass; determinism two builds equal and every emitted file equal to the pinned `packs-ca3-shadow/sh256x27`. The same four tests with era test/0 composed (`IGNEUM_MIXER_ERA`, 50 programs, 200 units, 15:56:35 to 15:57:03Z, load 12.6): 4 of 4 pass, avalanche 50.03 and 50.11 percent, z 2.65 and 3.76. The GPU fuzz (`with-lock.sh run`, 15:55:42 to 15:58:21Z, load 11.3 to 12.3): Metal 200 of 200 packs PASS (800 standalone units and 200 units inside a 512-nonce batch at base 4,294,967,040), Apple OpenCL 20 of 20; with the era composed Metal 50 of 50, Apple OpenCL 5 of 5 (`class-v4-20261006-1554Z-g3.json`). The harness fired on a known-failed case before it was trusted: the first era-composed run FAILED its program-id assertion (1 failed, 15:55:42Z), the finding below | GREEN (96 of 96; 200 of 200 and 50 of 50 on Metal; 20 of 20 and 5 of 5 on Apple OpenCL; 4 of 4 CPU tests on the class and on the era-composed class) |
|
||||
| Verifier | ms per 32-lane warp on one M5 Max core, v2, x8 and the candidate in ONE session, against the 10 ms gate | `igneum-pow bench --seed igneum-genesis --day 2026-10-03 --warps 20 --class <c>`, two rounds, `with-lock.sh measure` | GREEN (15:54:27 to 15:54:31Z, load 9.1 to 9.4: a loaded box, other agents' suites on other cores; one core, so the rows read within 3 percent of the quiet figures of 5 and 6 October): v2 0.655 / 0.648 ms (worst cold 0.674); x8 2.149 / 2.120 (worst cold 2.526); `mx8+sh256x27` 2.326 / 2.307 (worst cold 2.559), +0.18 ms (8.5 percent) over x8. The 2019-class row by the 2.5x rule (approximate, the core unmeasured, O-1.14): v2 about 1.6 ms, x8 about 5.4, the candidate about 5.8, worst cold about 6.4: under the 10 ms gate with about 4 ms spare (`class-v4-20261006-1554Z-verifier.json`) | GREEN (2.33 ms M5 Max core; about 5.8 ms 2019-class, approximate; gate 10 ms) |
|
||||
|
||||
|
|
@ -17,24 +17,24 @@ G4, G5 and G6 are not this worker's (the node seam, the release build, the fork
|
|||
|
||||
| Pack | Class | Metal (M5 Max) | Apple OpenCL (M5 Max) | CUDA NVRTC (RTX 5090) | OpenCL (RX 9070 XT) |
|
||||
|---|---|---|---|---|---|
|
||||
| mx8-devnet-epoch0 (class v3 control) | mx8-erad810f22d | 90f794dd556f7a3b | 90f794dd556f7a3b | PENDING (the collected log; 2.0 measured 90f794dd556f7a3b on this card) | PC 1 job 1 |
|
||||
| v4-devnet-epoch0 | mx8-erad810f22d+sh256x27 | f410c731b6bc2d31 | f410c731b6bc2d31 | PENDING | PC 1 job 1 |
|
||||
| v4-era-0 | mx8-erab2ed8a89+sh256x27 | b115c410e08be6ca | b115c410e08be6ca | PENDING | PC 1 job 1 |
|
||||
| v4-era-1 | mx8-era676a17fc+sh256x27 | edc2b18fc67e9d1c | edc2b18fc67e9d1c | PENDING | PC 1 job 1 |
|
||||
| v4-era-2 | mx8-era843155d7+sh256x27 | 604ed87109570559 | 604ed87109570559 | PENDING | PC 1 job 1 |
|
||||
| v4-era-3 | mx8-erad6367bfe+sh256x27 | 9541e2a41dde2ee6 | 9541e2a41dde2ee6 | PENDING | PC 1 job 1 |
|
||||
| v4-era-4 | mx8-era4488f3ed+sh256x27 | a9ffa2b67bd2e366 | a9ffa2b67bd2e366 | PENDING | PC 1 job 1 |
|
||||
| v4-era-5 | mx8-eraf897c84e+sh256x27 | 1f34e9c465945249 | 1f34e9c465945249 | PENDING | PC 1 job 1 |
|
||||
| mx8-devnet-epoch0 (class v3 control) | mx8-erad810f22d | 90f794dd556f7a3b | 90f794dd556f7a3b | 90f794dd556f7a3b (= 2.0's on this card) | PC 1 job 1 |
|
||||
| v4-devnet-epoch0 | mx8-erad810f22d+sh256x27 | f410c731b6bc2d31 | f410c731b6bc2d31 | f410c731b6bc2d31 | PC 1 job 1 |
|
||||
| v4-era-0 | mx8-erab2ed8a89+sh256x27 | b115c410e08be6ca | b115c410e08be6ca | b115c410e08be6ca | PC 1 job 1 |
|
||||
| v4-era-1 | mx8-era676a17fc+sh256x27 | edc2b18fc67e9d1c | edc2b18fc67e9d1c | edc2b18fc67e9d1c | PC 1 job 1 |
|
||||
| v4-era-2 | mx8-era843155d7+sh256x27 | 604ed87109570559 | 604ed87109570559 | 604ed87109570559 | PC 1 job 1 |
|
||||
| v4-era-3 | mx8-erad6367bfe+sh256x27 | 9541e2a41dde2ee6 | 9541e2a41dde2ee6 | 9541e2a41dde2ee6 | PC 1 job 1 |
|
||||
| v4-era-4 | mx8-era4488f3ed+sh256x27 | a9ffa2b67bd2e366 | a9ffa2b67bd2e366 | a9ffa2b67bd2e366 | PC 1 job 1 |
|
||||
| v4-era-5 | mx8-eraf897c84e+sh256x27 | 1f34e9c465945249 | 1f34e9c465945249 | 1f34e9c465945249 | PC 1 job 1 |
|
||||
|
||||
## Table of the G2 counts (1,024 nonces at target ff..ff, re-hashed by the Rust verifier)
|
||||
|
||||
| Pack | Metal (M5 Max) | Apple OpenCL (M5 Max) | CUDA NVRTC (RTX 5090) | OpenCL (RX 9070 XT) |
|
||||
|---|---|---|---|---|
|
||||
| mx8-devnet-epoch0 | 1,024 of 1,024 | 1,024 of 1,024 | PENDING (in the collected log) | PC 1 job 1 |
|
||||
| v4-devnet-epoch0 | 1,024 of 1,024 | 1,024 of 1,024 | PENDING | PC 1 job 1 |
|
||||
| v4-era-0 | 1,024 of 1,024 | 1,024 of 1,024 | PENDING | PC 1 job 1 |
|
||||
| v4-era-1 | 1,024 of 1,024 | 1,024 of 1,024 | PENDING | PC 1 job 1 |
|
||||
| v4-era-2 | 1,024 of 1,024 | 1,024 of 1,024 | 885 of 885 in the report's tail (the job counted 1,024 found) | PC 1 job 1 |
|
||||
| mx8-devnet-epoch0 | 1,024 of 1,024 | 1,024 of 1,024 | 1,024 of 1,024 | PC 1 job 1 |
|
||||
| v4-devnet-epoch0 | 1,024 of 1,024 | 1,024 of 1,024 | 1,024 of 1,024 | PC 1 job 1 |
|
||||
| v4-era-0 | 1,024 of 1,024 | 1,024 of 1,024 | 1,024 of 1,024 | PC 1 job 1 |
|
||||
| v4-era-1 | 1,024 of 1,024 | 1,024 of 1,024 | 1,024 of 1,024 | PC 1 job 1 |
|
||||
| v4-era-2 | 1,024 of 1,024 | 1,024 of 1,024 | 1,024 of 1,024 | PC 1 job 1 |
|
||||
| v4-era-3 | 1,024 of 1,024 | 1,024 of 1,024 | 1,024 of 1,024 | PC 1 job 1 |
|
||||
| v4-era-4 | 1,024 of 1,024 | 1,024 of 1,024 | 1,024 of 1,024 | PC 1 job 1 |
|
||||
| v4-era-5 | 1,024 of 1,024 | 1,024 of 1,024 | 1,024 of 1,024 | PC 1 job 1 |
|
||||
|
|
@ -45,11 +45,10 @@ G4, G5 and G6 are not this worker's (the node seam, the release build, the fork
|
|||
|---|---|---|---|
|
||||
| The verifier cost of the candidate | 2.33 ms per warp on an M5 Max core (73 microseconds per hash), 0.18 ms over x8; about 5.8 ms on a 2019-class core (approximate) | A node on a 2019-class laptop core verifies a warp with about 4 ms of the 10 ms gate to spare; a pool checks 13,700 shares per second per M5 Max core and about 5,500 per 2019-class core (approximate); no tier's node is slower than under x8 by more than 8.5 percent | Nothing further for the hash; the 2019-class core itself stays owed (O-1.14) |
|
||||
| A generator-3 program's id does not carry the class | the seven exported packs and 50 of 50 fuzz seeds: the v4 program's id equals the v3 program's for the same seeds (73bcbfe8ccf988f1 at devnet epoch 0), because `program_id()` is `program_id(3, seed, attempt)` under the v3 seam (generator.rs) | Under the chain's path a miner and a node could agree on a program id while one runs class v3 and the other class v4; 2.0's G4 check `program_ids_differ_across_the_switch` would not fire across a v4 activation. A home miner on any card, a rig and a pool would see the same id on both sides of the switch, so a stale worker would mine the wrong class with no id mismatch to tell it | An item for the v4 seam (gates G4 and G6, the node and the miner): give a class v4 program its own generator version, or put the class in the id as the read-width id does. The hash side needs nothing for it; the cut must not go without it |
|
||||
| The PC 2 report cap | the intake keeps the last 200 KB of job.log; 8 x 1,024 found lines (about 370 KB) pushed the G1 lines out of the report | A G2 job that prints every found line loses its own G1 lines on the way home; the evidence then needs a second job (the collect) and a second lock hold | This run: the full job.log collected (collect-ca3-v4-joblog2-20261006). The class fix for the tooling: a G2 playbook writes its found lines to a file in its job folder and prints a count and a digest, with a collect of the file; or the report keeps the head as well as the tail |
|
||||
| The PC 2 report cap | the intake keeps the last 200 KB of job.log; 8 x 1,024 found lines (about 370 KB) pushed the G1 lines out of the report | A G2 job that prints every found line loses its own G1 lines on the way home; the evidence then needs a second job (the collect) and a second lock hold | This run: four collects (a glob with the wrong root, 0 files; the file, which the upload path cuts to its last 256 KB; a filtered command still over the 200 KB report cap; a smaller filter, 16:12Z) brought the lines home. The class fix for the tooling: a G2 playbook writes its found lines to a file in its job folder and prints a count and a digest, with a collect of the file; or the report keeps the head as well as the tail |
|
||||
| The Mac is latency-bound at the candidate, the 5090 at its cap | from the shadow analysis: -1.5 percent M5 Max, -0.2 percent 5090 at 431 W; the 9070 XT unmeasured | A home Apple miner and a 5090 miner lose under 2 percent of their rate; an AMD home miner's row is owed | AMD: PC 1 job 1 |
|
||||
|
||||
## Owed
|
||||
|
||||
- AMD (the RX 9070 XT, gfx1201): G1 and G2 on PC 1 inside another job later ("PC 1 job 1"); the OpenCL kernels are in every pack and pass on Apple OpenCL.
|
||||
- The RTX 5090 G1 fingerprints and the first four packs' G2 counts: in the collected job.log; this file's two PENDING columns close when it is read.
|
||||
- The 2019-class core (O-1.14): the 2.5x rule stands in.
|
||||
|
|
|
|||
Loading…
Reference in a new issue