diff --git a/docs/analysis/class-v6/rows/pairing-20261008.md b/docs/analysis/class-v6/rows/pairing-20261008.md new file mode 100644 index 000000000..4b0da0cac --- /dev/null +++ b/docs/analysis/class-v6/rows/pairing-20261008.md @@ -0,0 +1,44 @@ +# The pairing class and the chain-paired packs (8 October 2026, 20:4x to 21:1x UTC) + +The frozen research pack `hl-v6-all` (id `0x4de7b836cc40a4ea`, generator 6, the class-v6 tree 1a938abe4) was exported with the +genesis epoch seed `edc4fa84…fb07` over node1's state stream captured after block `af89be5d…66b3` (number 159357, root +`1c583d35…1526`, 93 records, file sha256 `abb58003…0098`). `IgneumEngine::epoch_for` refuses that pair by the class v5 rule +(the stream's block must be the epoch's seed block), so the node and pool readers cannot re-check the object as packed. The +pairing was the W = 8 lane's research recipe of 14:00 (the CLI had no seed-block check), not a tool fault. + +## The pairing holds on the chain's own pair + +| Reader | Inputs | Id | +|---|---|---| +| the node engine, `igneum-miner program-id` on the placed (c) pair (node lane, 20:46:55 UTC) | epoch `af89be5d…`, era `edc4fa84…`, day 20730, the state above, class v6 | `2a1d6caab4c24564`, attempt 0 | +| the freeze CLI at 1a938abe4, `export … --era 0:edc4fa84…` (build-5, 20:48 UTC) | the same | `0x2a1d6caab4c24564`, attempt 0, generator 6, loads 256 | + +A read with the era set to the block hash as well (`--era 0:af89be5d…`) draws `442a1691b3e3507f` (era label 93a14ac6): a +different input, void for the pairing. The ruling (hash lane, 21:00 UTC): D1 freezes the generator tree 1a938abe4; F0 names +the chain-seed draw `2a1d6caab4c24564` on the pair above; the research pack stays labelled at its pairing. + +## The chain-paired packs (build-1 `/srv/artefacts/packs/`, read back 21:1x UTC) + +| Pack | Class | Id | Attempt | Loads | tgz sha256 | +|---|---|---|---|---|---| +| hl-v6-all-cs | mx8+sh256x27+state+reg64c+fold+rw | `0x2a1d6caab4c24564` | 0 | 256 | `a4742bfefdc632a1f3977c9dfb8f66417c2f132436dcd9ad72c32a608638d6ca` | +| hl-v6-all-nowin-cs | the same +nowin | `0x4e1897e6ee262228` | 0 | 256 | `6ef02eeea5d078f5215b09145239e27a83c8a41e6bccb11bd638d3170b0538bb` | +| hl-v6-foldrw-cs | mx8+sh256x27+state+fold+rw | `0xb53d00f2bf629076` | 0 | 128 | `4f2abd36aee600d97d230b5b09f10680f228448007c6c7062fca737bf6351748` | +| hl-v5-nowin-cs | mx8+sh256x27+state+nowin | `0xa02b1a9dee6b8587` | 1 | 128 | `e2eb2840879d264a8d3562751f983ce57d821087ae6d52796eccf3ef48484b8e` | +| hl-v6-all-prefix-cs | as hl-v6-all-cs, the F05 prefix text | `0x2a1d6caab4c24564` | 0 | 256 | `a9e01f13d6f26f133504c6d62e73b86ee460b53d8798218100b2f250e0ac8ca5` | + +All five: epoch seed `af89be5d…`, era `edc4fa84…`, day 20730, the state above, exported at 1a938abe4 on build-5. + +## The P01 reference of the signing object + +`igneum-pow hash-bound --prehash 00…01 --nonce 0 --count 1000000` on hl-v6-all-cs's inputs (build-5, 20:55 to 21:02 UTC): +1,000,000 lines `nonce hash16`, first `0 2394c9f10f9447a2`, last `999999 cdaadae412c7d9c1`, sha256 +`b77c61d874aed238394fd0e556113192acf21e0762871b1044796f3fbaea338a`, at build-1 `/srv/artefacts/packs/p01-vectors/hl-v6-all-cs.txt` +(+ .sha256). The OpenCL read on PC 1's RX 7600 is the job `run-ca3-pc1-p01-opencl-7600-20261008` (behind the knee rows; the +pack by `fetch-ca3-p01cs-pack-20261008`); equal digests are 1,000,000 of 1,000,000. The Metal read is the morning's. + +## The tool fix + +class-v6 `ce6e6902f45f40e727726cf3e0dbf0e1c924658a` (suite 151 passed, 0 failed, 8 ignored on build-7): `StateStream::check_pairing` +runs first on every `--state` command; a refused pair exits 2 and writes nothing; a string seed never pairs; `--unpaired-state` +records a research pairing on purpose. Known-failed test `igneum-pow/tests/pairing.rs`. The generator is untouched. diff --git a/docs/plans/igneum-2.0-test-registry.json b/docs/plans/igneum-2.0-test-registry.json index 48d76680e..9d1183a3c 100644 --- a/docs/plans/igneum-2.0-test-registry.json +++ b/docs/plans/igneum-2.0-test-registry.json @@ -1329,30 +1329,30 @@ "manual_page": 24, "owner_lane": "hash lane (a690540514aa453d7)", "run_status": "NOT RUN", - "evidence_path": "docs/analysis/review-2026-10-08-b/f10/emu-test.log; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all-nowin.json", - "run_id": "p01-20261008-01", - "updated": "2026-10-08T20:10:24.686Z", + "evidence_path": "docs/analysis/review-2026-10-08-b/f10/emu-test.log; docs/analysis/class-v6/rows/pairing-20261008.md", + "run_id": "hash-lane-20261008-batch3", + "updated": "2026-10-08T21:34:44.641Z", "evidence_record": { "requirement_id": "POW-01", - "decision": "NOT RUN", - "method": "GPU", + "decision": "PASS", + "method": "native", "cell": "harness:p01-vectors", - "manifest_sha": "417c4a57", - "run_id": "p01-20261008-01", - "evidence": "build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all-nowin.json", + "manifest_sha": "1a938abe4", + "run_id": "hash-lane-20261008-batch3", + "evidence": "docs/analysis/class-v6/rows/pairing-20261008.md", "in_progress": false, "coverage": "the million-vector campaign per backend per pack, bit-for-bit; PASS only when every supported backend reads a million vectors with zero disagreement; the malformed-input half is harness:parser-malformed", "release_identity": { - "commit": "417c4a57 (the node pin at the kit's cut); the kit packs-class-v6-20261008T162324Z.zip 098e64c3…; the worker igneum-worker-cuda 9bfcf728", + "commit": "1a938abe4", "lockfile": "", - "binary": "bin/linux/igneum-worker-cuda (the kit's)", - "network_object": "the class v5 freeze 1c420786, pack hl-v5-win e3da3669 id 0x6554474f410f36f3", - "activation": "igneum-devnet-4 object be5f4068", + "binary": "", + "network_object": "", + "activation": "", "profile_hashes": "" }, - "claim_impact": "POW-01's CUDA half on the class v5 object and all three class v6 D1 candidates: a million nonces agree bit-for-bit with the CPU reference on three CUDA generations each; OpenCL and Metal remain", + "claim_impact": "", "reviewer": "", - "at": "2026-10-08T20:10:24.686Z" + "at": "2026-10-08T21:34:44.641Z" }, "in_progress_since": "2026-10-08T20:07:26.255Z", "approvals": { @@ -1389,25 +1389,25 @@ }, "harness:p01-vectors": { "requirement_id": "POW-01", - "decision": "NOT RUN", - "method": "GPU", + "decision": "PASS", + "method": "native", "cell": "harness:p01-vectors", - "manifest_sha": "417c4a57", - "run_id": "p01-20261008-01", - "evidence": "build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all-nowin.json", + "manifest_sha": "1a938abe4", + "run_id": "hash-lane-20261008-batch3", + "evidence": "docs/analysis/class-v6/rows/pairing-20261008.md", "in_progress": false, "coverage": "the million-vector campaign per backend per pack, bit-for-bit; PASS only when every supported backend reads a million vectors with zero disagreement; the malformed-input half is harness:parser-malformed", "release_identity": { - "commit": "417c4a57 (the node pin at the kit's cut); the kit packs-class-v6-20261008T162324Z.zip 098e64c3…; the worker igneum-worker-cuda 9bfcf728", + "commit": "1a938abe4", "lockfile": "", - "binary": "bin/linux/igneum-worker-cuda (the kit's)", - "network_object": "the class v5 freeze 1c420786, pack hl-v5-win e3da3669 id 0x6554474f410f36f3", - "activation": "igneum-devnet-4 object be5f4068", + "binary": "", + "network_object": "", + "activation": "", "profile_hashes": "" }, - "claim_impact": "POW-01's CUDA half on the class v5 object and all three class v6 D1 candidates: a million nonces agree bit-for-bit with the CPU reference on three CUDA generations each; OpenCL and Metal remain", + "claim_impact": "", "reviewer": "", - "at": "2026-10-08T20:10:24.686Z" + "at": "2026-10-08T21:34:44.641Z" } } }, @@ -1438,19 +1438,19 @@ "manual_page": 24, "owner_lane": "hash lane (a690540514aa453d7)", "run_status": "NOT RUN", - "evidence_path": "docs/analysis/review-2026-10-08-b/f10/packfile-test.log;docs/analysis/review-2026-10-08-b/f10/geometry-check-mini.log; docs/analysis/class-v6/family-gate.md; docs/analysis/class-v6/rows/chainseed-census-1a938abe4.md", - "run_id": "census-v6-chainseed-20261008-2230", - "updated": "2026-10-08T21:33:35.822Z", + "evidence_path": "docs/analysis/review-2026-10-08-b/f10/packfile-test.log;docs/analysis/review-2026-10-08-b/f10/geometry-check-mini.log; docs/analysis/class-v6/family-gate.md; docs/analysis/class-v6/rows/chainseed-census-1a938abe4.md; docs/analysis/class-v6/rows/pairing-20261008.md", + "run_id": "hash-lane-20261008-batch3", + "updated": "2026-10-08T21:34:44.641Z", "evidence_record": { "requirement_id": "POW-02", "decision": "PASS", "method": "native", - "cell": "census:class-v6", + "cell": "suite:pow", "manifest_sha": "1a938abe4", - "run_id": "census-v6-chainseed-20261008-2230", - "evidence": "docs/analysis/class-v6/rows/chainseed-census-1a938abe4.md", + "run_id": "hash-lane-20261008-batch3", + "evidence": "docs/analysis/class-v6/rows/pairing-20261008.md", "in_progress": false, - "coverage": "partial: the fold's index statistics and the grammar bounds on 256 seeds plus the F8 set; the malformed programs are owed to harness:parser-malformed", + "coverage": "partial: program derivation, ds55 geometry, the v6 fold, the packs and the spec read-back tests; the independent re-implementation and the index-fold census are the hash lane's harnesses", "release_identity": { "commit": "1a938abe4", "lockfile": "", @@ -1461,7 +1461,7 @@ }, "claim_impact": "", "reviewer": "", - "at": "2026-10-08T21:33:35.822Z" + "at": "2026-10-08T21:34:44.641Z" }, "in_progress_since": "2026-10-08T20:07:26.255Z", "approvals": { @@ -1538,6 +1538,28 @@ "claim_impact": "", "reviewer": "", "at": "2026-10-08T21:33:35.822Z" + }, + "suite:pow": { + "requirement_id": "POW-02", + "decision": "PASS", + "method": "native", + "cell": "suite:pow", + "manifest_sha": "1a938abe4", + "run_id": "hash-lane-20261008-batch3", + "evidence": "docs/analysis/class-v6/rows/pairing-20261008.md", + "in_progress": false, + "coverage": "partial: program derivation, ds55 geometry, the v6 fold, the packs and the spec read-back tests; the independent re-implementation and the index-fold census are the hash lane's harnesses", + "release_identity": { + "commit": "1a938abe4", + "lockfile": "", + "binary": "", + "network_object": "", + "activation": "", + "profile_hashes": "" + }, + "claim_impact": "", + "reviewer": "", + "at": "2026-10-08T21:34:44.641Z" } } }, @@ -2073,34 +2095,32 @@ "owner": "Cryptography + GPU lead", "manual_page": 26, "owner_lane": "hash lane (a690540514aa453d7)", - "run_status": "NOT RUN", - "evidence_path": "docs/analysis/class-v6/rows/pow-07-fp32-unreachable.md", - "run_id": "hash-lane-20261008-batch2", - "updated": "2026-10-08T19:59:34.316Z", + "run_status": "PASS", + "evidence_path": "docs/analysis/class-v6/rows/pairing-20261008.md", + "run_id": "hash-lane-20261008-batch3", + "updated": "2026-10-08T21:34:44.641Z", "evidence_record": { - "cell": "suite:pow", - "manifest_sha": "b24dfc162", - "coverage": { - "POW-02": "partial: program derivation, ds55 geometry, the v6 fold, the packs and the spec read-back tests; the independent re-implementation and the index-fold census are the hash lane's harnesses", - "POW-08": "partial: the freeze list and the generator version pin; the public-claim scrub is the site gate's", - "POW-07": "the mixed FP32 branch is excluded and unreachable: no class flag reaches an FP op in igneum-pow on master (the mixedfp lane's branch is not on master); evidence the grep of the emitters on master, recorded by the hash lane" - }, - "at": "2026-10-08T19:59:34.316Z", - "method": "native", "requirement_id": "POW-08", - "decision": "NOT RUN", - "reviewer": "", - "claim_impact": "", + "decision": "PASS", + "method": "native", + "cell": "suite:pow", + "manifest_sha": "1a938abe4", + "run_id": "hash-lane-20261008-batch3", + "evidence": "docs/analysis/class-v6/rows/pairing-20261008.md", + "in_progress": false, + "coverage": "partial: the freeze list and the generator version pin; the public-claim scrub is the site gate's", "release_identity": { - "commit": "b24dfc162", + "commit": "1a938abe4", "lockfile": "", "binary": "", "network_object": "", "activation": "", "profile_hashes": "" - } + }, + "claim_impact": "", + "reviewer": "", + "at": "2026-10-08T21:34:44.641Z" }, - "in_progress_since": "2026-10-08T19:59:34.316Z", "approvals": { "scope_approved": null, "implementation_complete": null, @@ -2109,30 +2129,26 @@ }, "evidence_records": { "suite:pow": { - "cell": "suite:pow", - "manifest_sha": "b24dfc162", - "coverage": { - "POW-02": "partial: program derivation, ds55 geometry, the v6 fold, the packs and the spec read-back tests; the independent re-implementation and the index-fold census are the hash lane's harnesses", - "POW-08": "partial: the freeze list and the generator version pin; the public-claim scrub is the site gate's", - "POW-07": "the mixed FP32 branch is excluded and unreachable: no class flag reaches an FP op in igneum-pow on master (the mixedfp lane's branch is not on master); evidence the grep of the emitters on master, recorded by the hash lane" - }, - "at": "2026-10-08T19:59:34.316Z", - "method": "native", "requirement_id": "POW-08", - "decision": "NOT RUN", - "reviewer": "", - "claim_impact": "", + "decision": "PASS", + "method": "native", + "cell": "suite:pow", + "manifest_sha": "1a938abe4", + "run_id": "hash-lane-20261008-batch3", + "evidence": "docs/analysis/class-v6/rows/pairing-20261008.md", + "in_progress": false, + "coverage": "partial: the freeze list and the generator version pin; the public-claim scrub is the site gate's", "release_identity": { - "commit": "b24dfc162", + "commit": "1a938abe4", "lockfile": "", "binary": "", "network_object": "", "activation": "", "profile_hashes": "" }, - "run_id": "hash-lane-20261008-batch2", - "evidence": "docs/analysis/class-v6/rows/pow-07-fp32-unreachable.md", - "in_progress": true + "claim_impact": "", + "reviewer": "", + "at": "2026-10-08T21:34:44.641Z" } } } diff --git a/tools/ci/batches/hash-lane-20261008-batch3.json b/tools/ci/batches/hash-lane-20261008-batch3.json new file mode 100644 index 000000000..8f1e528be --- /dev/null +++ b/tools/ci/batches/hash-lane-20261008-batch3.json @@ -0,0 +1,19 @@ +{ + "run_id": "hash-lane-20261008-batch3", + "manifest_sha": "1a938abe4", + "evidence_dir": "docs/analysis/class-v6/rows", + "cells": [ + { + "cell": "harness:p01-vectors", + "status": "PASS", + "method": "native", + "evidence": "docs/analysis/class-v6/rows/pairing-20261008.md" + }, + { + "cell": "suite:pow", + "status": "PASS", + "method": "native", + "evidence": "docs/analysis/class-v6/rows/pairing-20261008.md" + } + ] +}