Merge master 2bae875d3 into ci-202-batch under the master-landing lock
This commit is contained in:
commit
776949d8fa
4 changed files with 136 additions and 118 deletions
|
|
@ -96,6 +96,7 @@ The daily dataset of section 2 proves the miner holds the chain once a day. Proo
|
|||
| How a miner learns it | the template's `powEpoch` carries `stateBlock` (the hash of `C_w`) and `nextStateBlock` once the next window's cut has passed (one lead before the boundary, with `nextEpochSeed`); the miner fetches the stream for that block from its node (`igneum_getPowStateLeaves [block hash]`), checks nothing when the node is its own (its node executed it), and prepares the next pair; the pack carries `IGNEUM_STATE_BLOCK_HEX`, `IGNEUM_STATE_ROOT_HEX` and `leaves.bin` | the existing next-epoch prepare: with `W = epoch_blocks` the refresh and the program swap are one swap |
|
||||
| The grace at the boundary | none in validation (a block's window is its DAA score's; a block mined with the previous window's leaves after the boundary is invalid); the grace is the lead: the next window's leaves are knowable ten minutes before it, the miner prepares the pair then, and a prepared worker swaps with no pause (the 2.0 hot-swap path). An unprepared worker rebuilds at the boundary: 32 ms of hashing lost on a 4090, under 0.001 percent of the window | no hash-rate dip by construction, as the epoch swap has none today |
|
||||
| A miner whose node is behind | the node serves no template for a window whose `C_w` it has not executed (section 5's refusal), so the miner's hash stops at the boundary rather than mining invalid blocks | a node ten minutes behind the chain is already a node without a useful template |
|
||||
| Several candidate streams per epoch (fix 2, 8 October 2026) | the streams a node serves are keyed by BLOCK HASH, never one per epoch: this chain's cut block, and the cut blocks of other chains whose headers this node validated (section 8's amended row), each with the retention of a capture (two epochs). Nothing in this design assumed one stream per epoch per node: the leaves are keyed by each stream's own root `R_w` and the pairing check is per stream | a node that can only serve its own chain's stream can never weigh another chain's post-cut headers, so a cut was a partition that never healed (igneum-devnet-4, 8 October 2026) |
|
||||
|
||||
### 2a.2 What a pool can and cannot centralise, and the farm attack, with the numbers
|
||||
|
||||
|
|
@ -141,6 +142,13 @@ What a pool can centralise: templates (as today), the day key (public), the stre
|
|||
| Timestamp or DAA grinding at the cut | the cut is a DAA score, as the epoch seed's; a producer chooses at most whether its own block is `C_w` (one bit between two honest states) |
|
||||
| Two windows of leaves in RAM on the node and the worker | the current and the next: 12 KB today, at most 4 GiB at the sample cap; the worker frees the leaves after the build (1,803 MiB resident while hashing, measured) |
|
||||
|
||||
### 2a.5 The cost of candidate streams (fix 2, the foreign-seed capture; the HEAL lane, 8 October 2026)
|
||||
|
||||
| Row | Cost | Note |
|
||||
|---|---|---|
|
||||
| Candidate streams held for validation | one dataset refresh `D` per candidate stream (6 KB of leaves today), held for the retention of a capture (two epochs) | the miner hashes on its own chain's stream only; a candidate is for validating another chain's headers, which is what lets their weight count and the node switch |
|
||||
| The grinding and DoS face | at most 2 x epoch_blocks of EVM execution per capture, one capture in flight, a 60 s memory of a refusal; the capture runs only for a block this node holds as a VALIDATED header (its chain passed proof of work up to that block), never for an unvalidated one | anyone mining a fork off a pre-cut block makes the node execute from its snapshot base; without the bound, the one-in-flight rule and the PoW-first condition the executor is a free compute oracle, so the three are named here as properties of the rule, to keep |
|
||||
|
||||
## 3. A miner with a pruned node, and what a chip must hold
|
||||
|
||||
| Who | What they hold | How they get it |
|
||||
|
|
@ -228,7 +236,7 @@ Per tier, what the 4090 rows mean: every NVIDIA card from 8 to 32 GB keeps its h
|
|||
|---|---|
|
||||
| A miner served stale state (yesterday's stream, a fork's stream, a tampered stream) | every item it builds is wrong, every block it submits is rejected by every node that holds the day's state, and it learns it from the first rejection; a worker that takes the stream from its own node checks nothing (its node executed it), a worker or pool miner that takes it from elsewhere runs `DayStream::check` against the `R_d` its node reports (`igneum_getPowDayState` returns the root with the block) |
|
||||
| A pool serving wrong state to its miners | the pool loses every share it pays for; the pool's own node rejects its miners' solutions; there is no way to profit from a wrong dataset, only to waste the pool's hash |
|
||||
| A state the verifier cannot reach (a header whose `C_d` the node never executed: a fork deeper than the lead) | the engine refuses the header with the retryable error and says which block it lacks; a fork that deep is a merge-depth-scale reorg, which the follower re-executes when the chain adopts it ("a deep reorg never resets execution", 6 October rule), after which the header validates; a chain the node never adopts is a chain it never needs the state of |
|
||||
| A state the verifier cannot reach (a header whose `C_d` the node never executed: another chain's cut block, from a partition, a ban storm or a lag across the cut) | AMENDED by fix 2 of node 2.0.2 (the HEAL lane, 8 October 2026, night; igneum-devnet-4 had fragmented into 6 chains and 11 one-box islands at the epoch-3 cut because the retryable refusal never ended: the other chain's post-cut headers never validated, their weight never counted, the virtual never moved and the executor never captured the other chain's block). The refusal is now the BOUNDED EXECUTION of the foreign selected-parent chain: a miss queues the block (16, deduplicated; the provider runs inside header validation and never takes the state lock) and returns the same wait error; the follower services one block per pass: the block must be a header this node validated (PoW first), its selected-parent chain is walked down to the fork point (the first block this executor holds a record of), a scratch state starts from the nearest held state at or below it (the ring, else the newest epoch capture; the snapshot base when started from one), this chain's blocks to the fork point and the foreign chain up to the block are executed on the scratch by the follower's own chain-block function (the proof verdict by the acceptance rule, the same the live path pays by), the stream after the block is serialised, checked against its root and published under the block's hash; the IBD's 2 s retry finds it and the lighter node switches. Bounds, which are PROPERTIES and not tunables: one capture in flight, at most 2 x epoch_blocks of execution, only a validated header; a chain that cannot be executed (a body missing, a fork below every held state, the bound passed) is refused once with a line and remembered (60 s, 10 s for a body the IBD is still bringing). Measured on two real nodes split across a cut (fork docs/igneum-foreign-seed-capture.md): without it the lighter node never left its chain in 300 s; with it, it switched at +20 s and both read one executed tip and epoch seed from +60 s on. A chain the node never adopts is still a chain it executed once on a scratch and dropped |
|
||||
| The executor is behind the cut when the day starts (a slow node, a node that restarted) | it refuses to validate and to mine v5 headers until it passes `cut(d)` and says so once per epoch at warn, then at debug (the class signal's `first_time` shape); with the lead at one hour this is a node an hour behind the chain, which is already a node that serves no useful template |
|
||||
| A node without an executor (`--evm-disable`) | states at start that it cannot validate or mine class v5; after the flip it relays headers it cannot check as it relays blocks whose bodies it has not fetched, and accepts nothing it cannot validate (the same as a node without the day's cache slot today: `BuildQueueFull`) |
|
||||
| The era draw's interaction | the era draws the layout (`t(w)`, `j(w)`, the stride and the window of each load) and nothing about the leaves; the leaf XOR sits before the first mixer of item `t`, after the layout has named `t`, so every era's dataset of a day is built from one leaf array and the hash kernel of every era is unchanged; the era draws 8 and 9 stay consumed and unused as the ladder left them |
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-kaspad-check.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "GOV-01",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -73,7 +73,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -103,7 +103,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -1322,7 +1322,7 @@
|
|||
"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; build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-miner.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "POW-01",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -1343,7 +1343,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T20:07:26.255Z",
|
||||
"approvals": {
|
||||
|
|
@ -1420,7 +1420,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -1453,7 +1453,7 @@
|
|||
"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; build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/miner-77b5acc5/box4-pow.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "POW-02",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -1474,7 +1474,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T20:07:26.255Z",
|
||||
"approvals": {
|
||||
|
|
@ -1572,7 +1572,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -2111,7 +2111,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/miner-77b5acc5/box4-pow.log; build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "POW-08",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -2132,7 +2132,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"approvals": {
|
||||
"scope_approved": null,
|
||||
|
|
@ -2161,7 +2161,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"bench:fleet-pods": {
|
||||
"requirement_id": "POW-08",
|
||||
|
|
@ -3406,7 +3406,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-consensus.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "ROT-05",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -3427,7 +3427,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -3457,7 +3457,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -3490,7 +3490,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-core.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "ROT-06",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -3511,7 +3511,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -3541,7 +3541,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -4652,7 +4652,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-exec.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "EVM-02",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -4673,7 +4673,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -4703,7 +4703,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -5300,7 +5300,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-exec.log; docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json; build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-consensus.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "ZKP-01",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -5321,7 +5321,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -5351,7 +5351,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"harness:proving-enforcement": {
|
||||
"requirement_id": "ZKP-01",
|
||||
|
|
@ -5395,7 +5395,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -5516,7 +5516,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-exec.log; docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "ZKP-03",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -5537,7 +5537,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -5567,7 +5567,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"harness:proving-enforcement": {
|
||||
"requirement_id": "ZKP-03",
|
||||
|
|
@ -5795,7 +5795,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-p2p-flows.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "ZKP-06",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -5816,7 +5816,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -5846,7 +5846,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -6648,7 +6648,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-core.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "INC-01",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -6669,7 +6669,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -6699,7 +6699,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -7394,7 +7394,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-consensus.log; build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-core.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "FIN-01",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -7415,7 +7415,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -7445,7 +7445,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"suite:core": {
|
||||
"requirement_id": "FIN-01",
|
||||
|
|
@ -7467,7 +7467,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -7586,7 +7586,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-consensus.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "FIN-03",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -7607,7 +7607,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -7637,7 +7637,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -7670,7 +7670,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-consensus.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "FIN-04",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -7691,7 +7691,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -7721,7 +7721,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -7754,7 +7754,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-consensus.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "FIN-05",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -7775,7 +7775,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -7805,7 +7805,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -7917,7 +7917,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "sim/finality-attacks-results/v4-pause-fix.md; build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-consensus.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "FIN-07",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -7938,7 +7938,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"approvals": {
|
||||
"scope_approved": null,
|
||||
|
|
@ -7992,7 +7992,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -8741,7 +8741,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "tools/reference-apps/ver/evidence/summary.json; build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/miner-77b5acc5/box4-app.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "VER-08",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -8762,7 +8762,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:46:20.696Z",
|
||||
"approvals": {
|
||||
|
|
@ -8819,7 +8819,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -9128,7 +9128,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-exec.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "OPS-04",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -9149,7 +9149,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -9179,7 +9179,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -9288,7 +9288,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-p2p-flows.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "OPS-06",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -9309,7 +9309,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -9339,7 +9339,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -9630,7 +9630,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/miner-77b5acc5/box4-app.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "UX-02",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -9651,7 +9651,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -9681,7 +9681,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -9714,7 +9714,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/miner-77b5acc5/box4-app.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "UX-03",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -9735,7 +9735,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -9765,7 +9765,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -9798,7 +9798,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "docs/analysis/pool/pool-pair-2026-10-08.md; build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-miner.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "UX-04",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -9819,7 +9819,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:58:33.370Z",
|
||||
"approvals": {
|
||||
|
|
@ -9871,7 +9871,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -9983,7 +9983,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/node-a284380b/box4-miner.log",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "UX-06",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -10004,7 +10004,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"approvals": {
|
||||
"scope_approved": null,
|
||||
|
|
@ -10033,7 +10033,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -10066,7 +10066,7 @@
|
|||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-a284380b-5f50afd1/miner-77b5acc5/box4-app.log; docs/plans/evidence/UX-01-20261008.md",
|
||||
"run_id": "202-a284380b-5f50afd1",
|
||||
"updated": "2026-10-08T22:04:34.563Z",
|
||||
"updated": "2026-10-08T22:11:34.967Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "UX-07",
|
||||
"decision": "NOT RUN",
|
||||
|
|
@ -10087,7 +10087,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -10117,7 +10117,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T22:04:34.563Z"
|
||||
"at": "2026-10-08T22:11:34.967Z"
|
||||
},
|
||||
"pc:install-update": {
|
||||
"requirement_id": "UX-07",
|
||||
|
|
@ -12106,30 +12106,30 @@
|
|||
"POW-01",
|
||||
"ROT-02"
|
||||
],
|
||||
"run_id": "same-work-20261008-03",
|
||||
"evidence_path": "docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/packs/packs-class-v6-20261008T202808Z.zip; build-1:/srv/builds/_log/v5-class/kits-20261008T202808Z/emu-check.log; build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-03/state-epoch2.igsd1",
|
||||
"updated": "2026-10-08T21:59:18.945Z",
|
||||
"run_id": "same-work-20261008-02",
|
||||
"evidence_path": "docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/packs/packs-class-v6-20261008T202808Z.zip; build-1:/srv/builds/_log/v5-class/kits-20261008T202808Z/emu-check.log; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/README.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-1.json; docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-2.json",
|
||||
"updated": "2026-10-08T22:09:41.367Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "R2-F03-R02",
|
||||
"decision": "NOT RUN",
|
||||
"method": "GPU",
|
||||
"cell": "harness:same-work",
|
||||
"manifest_sha": "c30ab32c",
|
||||
"run_id": "same-work-20261008-03",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-03/state-epoch2.igsd1",
|
||||
"run_id": "same-work-20261008-02",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/README.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-1.json; docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-2.json",
|
||||
"in_progress": false,
|
||||
"coverage": "partial until every reader has run: bit-for-bit agreement per nonce across node, CPU reference, CUDA, OpenCL, Metal and pool on one job context",
|
||||
"release_identity": {
|
||||
"commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728",
|
||||
"commit": "c30ab32c (packaging/release-manifest.json on release-2.0.1; node 7cfa422a); the readers: node same-work-node cc23f9bd (igneum-node, off class-v6-node-review e8773ff5, paired with class-v6 1a938abe4), CPU reference class-v6 1a938abe4, CUDA the kit's gen 6 worker 804a6f7f, pool pool-recheck-202 00c7e1db over class-v6-node-review e8773ff5",
|
||||
"lockfile": "",
|
||||
"binary": "igneum-pow sha256 7ba781db... (release-2.0.1 c30ab32c, built on build-4); igneum-worker-cuda gen 5 sha256 9bfcf728...",
|
||||
"network_object": "igneum-devnet-4's class v5 object at epoch 2: id 0x81fbfa3aa413173f, epoch seed 3c3fab43... (the epoch-2 seed block, chain block 3423, common to every chain tonight: the split came after it), day 20734, era 0 seed 7c36b833... (class v5 reads no era; the id is the same under era zero), state stream state-epoch2.igsd1 (sha256 f36e6bba..., 21,132 bytes, 224 records, root 0xf798d1d8...) pulled at 22:18 UK from build-1's seed EVM RPC port 27810",
|
||||
"binary": "igneum-miner recheck-vectors sha256 9d563c41...; igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...; igneum-pool sha256 b9fb3a60... (D1 pairing) and 2f6378e4... (kit)",
|
||||
"network_object": "the chain-seed class v6 object: epoch seed af89be5d... (the node1 state stream's block 159357, root 1c583d35..., stream sha256 abb58003...) with the genesis era seed edc4fa84..., generator 6, id 0x2a1d6caab4c24564 (the hash lane's 22:00 UK ruling; their independent export hl-v6-all-cs a4742bfe... equals packs/chain-seed-d20730 file by file)",
|
||||
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
|
||||
"profile_hashes": ""
|
||||
},
|
||||
"claim_impact": "the same-work test's live-chain half (the coordinator's third row, 22:1x UK): the readers on the chain's own class v5 object at epoch 2 across the day switch 20734 to 20735; the node and pool readers run it on their release-line engines, the row those two can PASS without the class v6 branch",
|
||||
"claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T21:59:18.945Z",
|
||||
"at": "2026-10-08T22:09:41.367Z",
|
||||
"network_label": "on an island, not a network"
|
||||
},
|
||||
"evidence_records": {
|
||||
|
|
@ -12161,21 +12161,21 @@
|
|||
"method": "GPU",
|
||||
"cell": "harness:same-work",
|
||||
"manifest_sha": "c30ab32c",
|
||||
"run_id": "same-work-20261008-03",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-03/state-epoch2.igsd1",
|
||||
"run_id": "same-work-20261008-02",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/README.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-1.json; docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-2.json",
|
||||
"in_progress": false,
|
||||
"coverage": "partial until every reader has run: bit-for-bit agreement per nonce across node, CPU reference, CUDA, OpenCL, Metal and pool on one job context",
|
||||
"release_identity": {
|
||||
"commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728",
|
||||
"commit": "c30ab32c (packaging/release-manifest.json on release-2.0.1; node 7cfa422a); the readers: node same-work-node cc23f9bd (igneum-node, off class-v6-node-review e8773ff5, paired with class-v6 1a938abe4), CPU reference class-v6 1a938abe4, CUDA the kit's gen 6 worker 804a6f7f, pool pool-recheck-202 00c7e1db over class-v6-node-review e8773ff5",
|
||||
"lockfile": "",
|
||||
"binary": "igneum-pow sha256 7ba781db... (release-2.0.1 c30ab32c, built on build-4); igneum-worker-cuda gen 5 sha256 9bfcf728...",
|
||||
"network_object": "igneum-devnet-4's class v5 object at epoch 2: id 0x81fbfa3aa413173f, epoch seed 3c3fab43... (the epoch-2 seed block, chain block 3423, common to every chain tonight: the split came after it), day 20734, era 0 seed 7c36b833... (class v5 reads no era; the id is the same under era zero), state stream state-epoch2.igsd1 (sha256 f36e6bba..., 21,132 bytes, 224 records, root 0xf798d1d8...) pulled at 22:18 UK from build-1's seed EVM RPC port 27810",
|
||||
"binary": "igneum-miner recheck-vectors sha256 9d563c41...; igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...; igneum-pool sha256 b9fb3a60... (D1 pairing) and 2f6378e4... (kit)",
|
||||
"network_object": "the chain-seed class v6 object: epoch seed af89be5d... (the node1 state stream's block 159357, root 1c583d35..., stream sha256 abb58003...) with the genesis era seed edc4fa84..., generator 6, id 0x2a1d6caab4c24564 (the hash lane's 22:00 UK ruling; their independent export hl-v6-all-cs a4742bfe... equals packs/chain-seed-d20730 file by file)",
|
||||
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
|
||||
"profile_hashes": ""
|
||||
},
|
||||
"claim_impact": "the same-work test's live-chain half (the coordinator's third row, 22:1x UK): the readers on the chain's own class v5 object at epoch 2 across the day switch 20734 to 20735; the node and pool readers run it on their release-line engines, the row those two can PASS without the class v6 branch",
|
||||
"claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T21:59:18.945Z",
|
||||
"at": "2026-10-08T22:09:41.367Z",
|
||||
"network_label": "on an island, not a network"
|
||||
}
|
||||
},
|
||||
|
|
@ -12218,30 +12218,30 @@
|
|||
"POW-01",
|
||||
"ROT-02"
|
||||
],
|
||||
"run_id": "same-work-20261008-03",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json",
|
||||
"updated": "2026-10-08T21:59:18.945Z",
|
||||
"run_id": "same-work-20261008-02",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-2.json",
|
||||
"updated": "2026-10-08T22:09:41.367Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "R2-F03-R03",
|
||||
"decision": "NOT RUN",
|
||||
"method": "GPU",
|
||||
"cell": "harness:same-work",
|
||||
"manifest_sha": "c30ab32c",
|
||||
"run_id": "same-work-20261008-03",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json",
|
||||
"run_id": "same-work-20261008-02",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-2.json",
|
||||
"in_progress": false,
|
||||
"coverage": "partial: the day-boundary transition in phase 2 (the one transition every live network crosses hourly at 60x); a class rotation is the same test on a research object until a v6 floor is set",
|
||||
"release_identity": {
|
||||
"commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728",
|
||||
"commit": "c30ab32c (packaging/release-manifest.json on release-2.0.1; node 7cfa422a); the readers: node same-work-node cc23f9bd (igneum-node, off class-v6-node-review e8773ff5, paired with class-v6 1a938abe4), CPU reference class-v6 1a938abe4, CUDA the kit's gen 6 worker 804a6f7f, pool pool-recheck-202 00c7e1db over class-v6-node-review e8773ff5",
|
||||
"lockfile": "",
|
||||
"binary": "igneum-pow sha256 7ba781db... (release-2.0.1 c30ab32c, built on build-4); igneum-worker-cuda gen 5 sha256 9bfcf728...",
|
||||
"network_object": "igneum-devnet-4's class v5 object at epoch 2: id 0x81fbfa3aa413173f, epoch seed 3c3fab43... (the epoch-2 seed block, chain block 3423, common to every chain tonight: the split came after it), day 20734, era 0 seed 7c36b833... (class v5 reads no era; the id is the same under era zero), state stream state-epoch2.igsd1 (sha256 f36e6bba..., 21,132 bytes, 224 records, root 0xf798d1d8...) pulled at 22:18 UK from build-1's seed EVM RPC port 27810",
|
||||
"binary": "igneum-miner recheck-vectors sha256 9d563c41...; igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...; igneum-pool sha256 b9fb3a60... (D1 pairing) and 2f6378e4... (kit)",
|
||||
"network_object": "the chain-seed class v6 object: epoch seed af89be5d... (the node1 state stream's block 159357, root 1c583d35..., stream sha256 abb58003...) with the genesis era seed edc4fa84..., generator 6, id 0x2a1d6caab4c24564 (the hash lane's 22:00 UK ruling; their independent export hl-v6-all-cs a4742bfe... equals packs/chain-seed-d20730 file by file)",
|
||||
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
|
||||
"profile_hashes": ""
|
||||
},
|
||||
"claim_impact": "the same-work test's live-chain half (the coordinator's third row, 22:1x UK): the readers on the chain's own class v5 object at epoch 2 across the day switch 20734 to 20735; the node and pool readers run it on their release-line engines, the row those two can PASS without the class v6 branch",
|
||||
"claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T21:59:18.945Z",
|
||||
"at": "2026-10-08T22:09:41.367Z",
|
||||
"network_label": "on an island, not a network"
|
||||
},
|
||||
"evidence_records": {
|
||||
|
|
@ -12251,21 +12251,21 @@
|
|||
"method": "GPU",
|
||||
"cell": "harness:same-work",
|
||||
"manifest_sha": "c30ab32c",
|
||||
"run_id": "same-work-20261008-03",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json",
|
||||
"run_id": "same-work-20261008-02",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-2.json",
|
||||
"in_progress": false,
|
||||
"coverage": "partial: the day-boundary transition in phase 2 (the one transition every live network crosses hourly at 60x); a class rotation is the same test on a research object until a v6 floor is set",
|
||||
"release_identity": {
|
||||
"commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728",
|
||||
"commit": "c30ab32c (packaging/release-manifest.json on release-2.0.1; node 7cfa422a); the readers: node same-work-node cc23f9bd (igneum-node, off class-v6-node-review e8773ff5, paired with class-v6 1a938abe4), CPU reference class-v6 1a938abe4, CUDA the kit's gen 6 worker 804a6f7f, pool pool-recheck-202 00c7e1db over class-v6-node-review e8773ff5",
|
||||
"lockfile": "",
|
||||
"binary": "igneum-pow sha256 7ba781db... (release-2.0.1 c30ab32c, built on build-4); igneum-worker-cuda gen 5 sha256 9bfcf728...",
|
||||
"network_object": "igneum-devnet-4's class v5 object at epoch 2: id 0x81fbfa3aa413173f, epoch seed 3c3fab43... (the epoch-2 seed block, chain block 3423, common to every chain tonight: the split came after it), day 20734, era 0 seed 7c36b833... (class v5 reads no era; the id is the same under era zero), state stream state-epoch2.igsd1 (sha256 f36e6bba..., 21,132 bytes, 224 records, root 0xf798d1d8...) pulled at 22:18 UK from build-1's seed EVM RPC port 27810",
|
||||
"binary": "igneum-miner recheck-vectors sha256 9d563c41...; igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...; igneum-pool sha256 b9fb3a60... (D1 pairing) and 2f6378e4... (kit)",
|
||||
"network_object": "the chain-seed class v6 object: epoch seed af89be5d... (the node1 state stream's block 159357, root 1c583d35..., stream sha256 abb58003...) with the genesis era seed edc4fa84..., generator 6, id 0x2a1d6caab4c24564 (the hash lane's 22:00 UK ruling; their independent export hl-v6-all-cs a4742bfe... equals packs/chain-seed-d20730 file by file)",
|
||||
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
|
||||
"profile_hashes": ""
|
||||
},
|
||||
"claim_impact": "the same-work test's live-chain half (the coordinator's third row, 22:1x UK): the readers on the chain's own class v5 object at epoch 2 across the day switch 20734 to 20735; the node and pool readers run it on their release-line engines, the row those two can PASS without the class v6 branch",
|
||||
"claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T21:59:18.945Z",
|
||||
"at": "2026-10-08T22:09:41.367Z",
|
||||
"network_label": "on an island, not a network"
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
},
|
||||
"claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's",
|
||||
"network_label": "on an island, not a network",
|
||||
"note": "The same-work run (the coordinator's ruling 22:0x UK: six readers on one context; the frozen-object context 01 is the CUDA and CPU-only row). The node1 state stream (block af89be5d..., written on build-4 at 15:34 UK, before the 20:00 UK split) keys every item; every cell carries the island label by main's 22:2x UK rule. Day D = 20730 (bytes ...2ffa50), D+1 = 20731 (...2ffb50); phase 2 switches at 1572864 (the midpoint, 32-aligned); genesis day index 20730 and dataset 2^28 words for the engine's growth rule (doublings 0 on both days). CPU reference: igneum-pow hash-bound (class-v6 1a938abe4, binary 0d3f3fca...) on build-4, 21:48 to 21:57 UK, ref-D 7c7be9b5... over [0, 1572864), ref-D1 cad7849f... over [1572864, 3145728); the hash lane's independent million-nonce reference hl-v6-all-cs.txt (b77c61d8..., 22:03 UK) equals ref-D's first million lines byte for byte. Node reader: PASS on all three phases (22:17, 22:21, 22:25 UK; 1,048,576 agree each, 0 disagree, 0 missing; the boundary switched: d28fcfd70ba70a64 before, 45905ff3d608dc12 after, both equal to the reference; the program id unchanged across the day). Reader faults recorded, not disagreements (the coordinator's ruling 22:1x UK): the node reader's first phase 1 at 22:10 UK read FAIL on every nonce with the program id equal because the standalone engine held the genesis day at 0 and the growth rule doubled the cache fourteen times (fixed at cc23f9bd: install_pow_genesis from the context and the pack, the live miner's own call); the pool lane's D1-pairing run at 22:17 UK hit the same class (its nonce 0 and 1 hashes equal the pre-fix node hashes byte for byte), fix sent 22:18 UK; the rerun on the fixed reader (pool-recheck-202 909ae65b, binary 10425cc9... on build-4, the pack geometry installed) reads PASS on every phase at 22:32, 22:38 and 22:44 UK: 1,048,576 agree each, 0 disagree, 0 missing, the boundary switched at 1572864 with one program id on both segments, 64, 128 and 64 of the sampled shares accepted through verify::check; every nonce of 3,145,728 agrees with the reference (pool/d1-pairing/pool-{1,2,3}.json, sha256 d6d6105f..., 611c7e75..., 44820ff8..., read back on build-1 at 22:45 UK; the README keeps the first run's FAIL and its cause). The pool on the 2.0.2 kit as pinned (release-2.0.2 00c7e1db, node 7cfa422a) is BLOCKED: its node's ProgramClass enum ends at V5, so a class=v6 job line is unnameable (pool/kit-row/pool-{1,2,3}.json carry that refusal in the driver's shape). CUDA: the 5090's phase 1 PASS at 22:00 and 22:24 UK (gen 6 worker 804a6f7f, 47.6 s); phases 2 and 3 running at the time of this record (the fleet lane's runner restarted at 22:22 UK for the three-context file; its stray phase 2 and 3 lines at 22:23 were the restart's artefact, overwritten by the clean sequence). Rule 24 on same-work-node cc23f9bd on build-2: crate check rc 0, igneum-miner suite 30 passed 0 failed.",
|
||||
"note": "The same-work run (the coordinator's ruling 22:0x UK: six readers on one context; the frozen-object context 01 is the CUDA and CPU-only row). The node1 state stream (block af89be5d..., written on build-4 at 15:34 UK, before the 20:00 UK split) keys every item; every cell carries the island label by main's 22:2x UK rule. Day D = 20730 (bytes ...2ffa50), D+1 = 20731 (...2ffb50); phase 2 switches at 1572864 (the midpoint, 32-aligned); genesis day index 20730 and dataset 2^28 words for the engine's growth rule (doublings 0 on both days). CPU reference: igneum-pow hash-bound (class-v6 1a938abe4, binary 0d3f3fca...) on build-4, 21:48 to 21:57 UK, ref-D 7c7be9b5... over [0, 1572864), ref-D1 cad7849f... over [1572864, 3145728); the hash lane's independent million-nonce reference hl-v6-all-cs.txt (b77c61d8..., 22:03 UK) equals ref-D's first million lines byte for byte. Node reader: PASS on all three phases (22:17, 22:21, 22:25 UK; 1,048,576 agree each, 0 disagree, 0 missing; the boundary switched: d28fcfd70ba70a64 before, 45905ff3d608dc12 after, both equal to the reference; the program id unchanged across the day). Reader faults recorded, not disagreements (the coordinator's ruling 22:1x UK): the node reader's first phase 1 at 22:10 UK read FAIL on every nonce with the program id equal because the standalone engine held the genesis day at 0 and the growth rule doubled the cache fourteen times (fixed at cc23f9bd: install_pow_genesis from the context and the pack, the live miner's own call); the pool lane's D1-pairing run at 22:17 UK hit the same class (its nonce 0 and 1 hashes equal the pre-fix node hashes byte for byte), fix sent 22:18 UK; the rerun on the fixed reader (pool-recheck-202 909ae65b, binary 10425cc9... on build-4, the pack geometry installed) reads PASS on every phase at 22:32, 22:38 and 22:44 UK: 1,048,576 agree each, 0 disagree, 0 missing, the boundary switched at 1572864 with one program id on both segments, 64, 128 and 64 of the sampled shares accepted through verify::check; every nonce of 3,145,728 agrees with the reference (pool/d1-pairing/pool-{1,2,3}.json, sha256 d6d6105f..., 611c7e75..., 44820ff8..., read back on build-1 at 22:45 UK; the README keeps the first run's FAIL and its cause). The pool on the 2.0.2 kit as pinned (release-2.0.2 00c7e1db, node 7cfa422a) is BLOCKED: its node's ProgramClass enum ends at V5, so a class=v6 job line is unnameable (pool/kit-row/pool-{1,2,3}.json carry that refusal in the driver's shape). CUDA (the gen 6 worker 804a6f7f on the pods, the driver from same-work-harness 76cb1f7c6 and later): the 5090 phase 1 PASS (22:53 UK, cuda-5090-1.json 654ddddb...) and phase 2 PASS (22:55 UK, cuda-5090-2.json 898b1cb3...: the day switch at 1572864 driven through the worker's prepare, both boundary hashes equal to the reference); the 4090 phase 1 PASS (22:57 UK, cuda-4090-1.json c91d9e16...) and phase 2 PASS (22:59 UK, cuda-4090-2.json 82a2f5e6...); the 3090 running. Two driver faults on the way, neither a disagreement: the driver's silent wait for the prepared line deadlocked against a worker that loads a finished prepare only between stdin lines (22:26 to 22:47 UK on the 5090; fixed at 76cb1f7c6: day D jobs keep flowing and the worker is polled with a line a second), and phase 3 on a worker started on the day D pack had every day D+1 job refused as a day-seed mismatch (22:56 UK, cuda-5090-3.json and cuda-4090-3.json: missing 1,048,576, the program id equal; fixed in the commit after b464021f8: the pack the worker holds is read from its ready line and every other segment is prepared); phase 3 reruns on the fixed driver. Rule 24 on same-work-node cc23f9bd on build-2: crate check rc 0, igneum-miner suite 30 passed 0 failed.",
|
||||
"cells": [
|
||||
{
|
||||
"cell": "harness:same-work",
|
||||
|
|
@ -29,8 +29,8 @@
|
|||
],
|
||||
"status": "NOT RUN",
|
||||
"method": "GPU",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/README.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-1.json",
|
||||
"note": "node PASS x3; pool D1 pairing PASS x3 (every nonce, the share verifier's own path, the day switch seen); CPU reference written and cross-checked twice; CUDA 5090 phase 1 PASS, phases 2 and 3 running; pool kit row BLOCKED by its V5 pins; OpenCL queued on the project's first rig (08:30 UK at the latest, the job run-ca3-pc1-samework-opencl-7600-20261008, its report staged as opencl-rx7600.report.txt); Metal NOT RUN, 08:30 UK on the project's macOS machine if a serve worker exists by 08:00 UK; the case stays NOT RUN in progress until every reader has read",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/README.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-1.json; docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-2.json",
|
||||
"note": "node PASS x3; pool D1 pairing PASS x3 (every nonce, the share verifier's own path, the day switch seen); CPU reference written and cross-checked twice; CUDA 5090 and 4090 phases 1 and 2 PASS (the day switch seen by a GPU reader), phase 3 rerunning on the fixed driver, the 3090 running; pool kit row BLOCKED by its V5 pins; OpenCL queued on the project's first rig (08:30 UK at the latest, the job run-ca3-pc1-samework-opencl-7600-20261008, its report staged as opencl-rx7600.report.txt); Metal NOT RUN, 08:30 UK on the project's macOS machine if a serve worker exists by 08:00 UK; the case stays NOT RUN in progress until every reader has read; the design page docs/design/class-v5-stored-state.md (the node lane's fix-2 amendment, class-v5-foreign-capture-doc 4ec69ca4) moves with this row",
|
||||
"network_label": "on an island, not a network",
|
||||
"in_progress": true
|
||||
},
|
||||
|
|
@ -41,8 +41,8 @@
|
|||
],
|
||||
"status": "NOT RUN",
|
||||
"method": "GPU",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json",
|
||||
"note": "the dataset-day transition in phase 2: the node reader and the pool reader each switched program and dataset at nonce 1572864 with the program id unchanged and both boundary hashes equal to the reference; the CUDA phase 2 read is pending; in progress",
|
||||
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/d1-pairing/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-5090-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/cuda-4090-2.json",
|
||||
"note": "the dataset-day transition in phase 2: the node reader, the pool reader, the 5090 and the 4090 each switched program and dataset at nonce 1572864 with the program id unchanged and both boundary hashes equal to the reference; the 3090's phase 2 and the OpenCL and Metal reads are pending; in progress",
|
||||
"network_label": "on an island, not a network",
|
||||
"in_progress": true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,16 @@ def run(a):
|
|||
# jobs it can, never sends a job on a segment before that segment's prepared line, and when it has nothing to send it polls
|
||||
# the worker with a line a second (the worker answers "info ignored", or the prepared line first). One prepare is in flight at
|
||||
# a time (the worker refuses a second while one runs). A worker without prepare support cannot be driven across a boundary.
|
||||
held = {i: (i == 0 and not a.prepare_first) for i in range(len(seg_fields))}
|
||||
# the pack the worker holds is read from its ready line ("pack igneum-epoch/<seed>/day/<day bytes>", the CUDA and OpenCL
|
||||
# workers started on --pack); a segment on any other day is prepared, whichever phase (phase 3's worker started on the
|
||||
# day D pack refused every day D+1 job as a day-seed mismatch at 22:56 UK: missing 1,048,576, no disagreement). A ready
|
||||
# line without a pack label means the worker holds the first segment's pack unless --prepare-first says it holds none.
|
||||
rt = ready.split(); resident = next((t for t in rt[1:] if 'igneum-epoch/' in t and '/day/' in t), None)
|
||||
def holds(f):
|
||||
if a.prepare_first: return False
|
||||
if resident is None: return f is seg_fields[0][2]
|
||||
return resident.endswith('/day/' + f[1]) and ('/' + f[0] + '/') in resident
|
||||
held = {i: holds(seg_fields[i][2]) for i in range(len(seg_fields))}
|
||||
to_prepare = [i for i in range(len(seg_fields)) if not held[i]]; in_flight = None; prepare_sent = None; prepare_lines = []
|
||||
if to_prepare and ' prepare 0' in ready: p.kill(); return {'error': f'the worker has no prepare support (ready line: {ready}); a pack by prepare or a day switch needs it'}, 2
|
||||
def send_prepare():
|
||||
|
|
@ -166,7 +175,8 @@ def self_test():
|
|||
# a fake worker: hashes nonce n as (n * 0x9e3779b97f4a7c15) mod 2^64; nonce 7 wrong when WRONG=1; nonce 9 never answered when DROP=1
|
||||
w = os.path.join(d, 'worker.py')
|
||||
open(w, 'w').write('''import sys, os
|
||||
print("ready fake-gpu 0 prepare " + ("0" if os.environ.get("NOPREPARE") == "1" else "1"), flush=True)
|
||||
res0 = os.environ.get("RESIDENT", "cc" * 19)
|
||||
print("ready fake-gpu 0 pack " + ("igneum-epoch/" + "aa" * 32 + "/day/" + res0 if res0 != "none" else "none") + " prepare " + ("0" if os.environ.get("NOPREPARE") == "1" else "1"), flush=True)
|
||||
pending_prepare = None; prep_lines_left = 0
|
||||
resident = {os.environ.get("RESIDENT", "cc" * 19)} # the pack's day (the real worker starts on its --pack); another day needs prepare first, as the real worker (day seed mismatch otherwise)
|
||||
for line in sys.stdin:
|
||||
|
|
@ -214,8 +224,8 @@ for line in sys.stdin:
|
|||
r = subprocess.run([sys.executable, __file__, '--worker', sys.executable, '--worker-arg', w, '--job-context', jc, '--phase', str(phase), '--job-nonces', '8', '--out', out] + list(extra), capture_output=True, text=True, env=e, timeout=120)
|
||||
return r.returncode, (json.load(open(out)) if os.path.exists(out) else {}), r.stdout + r.stderr
|
||||
for ph, s0, pid in ((1, 0, '0x1'), (3, 32, '0x2')):
|
||||
rc, ev, o = gojc(ph, f'jc{ph}', env={'RESIDENT': 'dd' * 19} if ph == 3 else None) # phase 3's worker starts on the day D+1 pack
|
||||
if not (rc == 0 and ev.get('verdict') == 'PASS' and ev['nonces'] == {'start': s0, 'count': 16} and ev['segments'][0]['program_id'] == pid and 'boundary' not in ev): print(f"self-test failed: phase {ph} of the job context was not a PASS on its range and pack: rc={rc} {ev.get('nonces')} {ev.get('segments')} {o[-200:]}"); fails = 1
|
||||
rc, ev, o = gojc(ph, f'jc{ph}') # the worker holds the day D pack in every phase, as the pods run it; phase 3 needs the day D+1 prepare
|
||||
if not (rc == 0 and ev.get('verdict') == 'PASS' and ev['nonces'] == {'start': s0, 'count': 16} and ev['segments'][0]['program_id'] == pid and 'boundary' not in ev and (ph == 1) == ('prepare_lines' not in ev)): print(f"self-test failed: phase {ph} of the job context was not a PASS on its range and pack: rc={rc} {ev.get('nonces')} {ev.get('segments')} {o[-200:]}"); fails = 1
|
||||
rc, ev, o = gojc(2, 'jc2')
|
||||
b = ev.get('boundary', {})
|
||||
if not (rc == 0 and ev.get('verdict') == 'PASS' and ev['nonces'] == {'start': 16, 'count': 16} and b.get('nonce') == 24 and b.get('program_id_before') == '0x1' and b.get('program_id_after') == '0x2' and b.get('switched') is True and len(ev['segments']) == 2): print(f"self-test failed: phase 2 did not switch pack at the boundary nonce 24 with the boundary block: rc={rc} {b} {o[-200:]}"); fails = 1
|
||||
|
|
|
|||
Loading…
Reference in a new issue