The native finality runs of 9 October 2026, section 6 (F01, the two-node cache-history case): PASS on real nodes at 00:41 UK on the cache-history-node pair c591e63b + harness-unsafe, the six runs recorded with their setup faults

Run 6 on build-5 (24 leased cores, zero restarts): the real proof's bytes under another block's statement refused as a cheap context refusal (no verifier run, nothing cached); the same bytes under the honest record verified once in consensus and paid exactly once on both honest nodes at the same chain block for the same wei; the invalid bytes verified once and refused again from the cache at a later carrier. H1's and H2's verdicts and paid maps identical. Runs 1 to 5 (the exec pool verifier Off on a node without the counters, a host pin that was not the node's, the harness-unsafe feature missing, the 8-core lease against the 600-block record window, a stale manifest beside the harness) are in the rows as the record of each fault, none the node's. Plan section 6 MEASURED; the batch note carries the result (F01's cell is the enforced lane's).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-08 23:42:43 +00:00
parent a8e0f4232f
commit 9e8511118d
28 changed files with 952 additions and 11 deletions

View file

@ -49,6 +49,8 @@ One validator node pinned to one core (taskset), no warm relay cache (fresh data
## 6. The two-node cache-history test (F01, with the proving lane's fix 3f672661)
MEASURED 00:29 to 00:41 UK 9 October (run 6 of six, build-5, 24 leased cores): PASS on the cache-history-node pair c591e63b + harness-unsafe on the 0x51cd8cba pin (the `verifies` counters the harness reads live on that branch, not on e189afb4); the context refusal cheap, the honest record verified once and paid once on both honest nodes at the same chain block, the invalid bytes refused again from the cache; runs 1 to 5 recorded with their setup faults in the rows.
Two nodes, one with a warm verdict cache built on carriers 1..k, one cold, both fed the same blocks in a different order (the cold one sees the later carrier first): identical block-validity verdicts and identical payouts (igneum_getProofRecords and the paid map equal on both), with the known-failed shape first (the pre-fix node's cached context refusal replayed under a later carrier, the 19:49 UK reproduction). On build-7 by 03:00 UK.
## Boxes and clocks

View file

@ -7527,7 +7527,7 @@
"run_status": "PASS",
"evidence_path": "sim/finality-attacks-results/native-2026-10-09/s1b2.md",
"run_id": "fin-native-20261008T2300Z",
"updated": "2026-10-08T22:53:29.598Z",
"updated": "2026-10-08T23:42:16.021Z",
"evidence_record": {
"requirement_id": "FIN-02",
"decision": "PASS",
@ -7548,7 +7548,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T22:53:29.598Z"
"at": "2026-10-08T23:42:16.021Z"
},
"approvals": {
"scope_approved": null,
@ -7577,7 +7577,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T22:53:29.598Z"
"at": "2026-10-08T23:42:16.021Z"
}
}
},
@ -7941,7 +7941,7 @@
"run_status": "NOT RUN",
"evidence_path": "sim/finality-attacks-results/native-2026-10-09/s1b2.md; build-1:/srv/artefacts/tas/202-d657e490-6b17f951/node-d657e490/box4-consensus.log",
"run_id": "fin-native-20261008T2300Z",
"updated": "2026-10-08T22:53:29.598Z",
"updated": "2026-10-08T23:42:16.021Z",
"evidence_record": {
"requirement_id": "FIN-07",
"decision": "PASS",
@ -7962,7 +7962,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T22:53:29.598Z"
"at": "2026-10-08T23:42:16.021Z"
},
"approvals": {
"scope_approved": null,
@ -7991,7 +7991,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T22:53:29.598Z"
"at": "2026-10-08T23:42:16.021Z"
},
"suite:consensus": {
"requirement_id": "FIN-07",
@ -8046,7 +8046,7 @@
"run_status": "NOT RUN",
"evidence_path": "sim/results_v2.md",
"run_id": "fin-native-20261008T2300Z",
"updated": "2026-10-08T22:53:29.598Z",
"updated": "2026-10-08T23:42:16.021Z",
"evidence_record": {
"requirement_id": "FIN-08",
"decision": "NOT RUN",
@ -8067,7 +8067,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T22:53:29.598Z"
"at": "2026-10-08T23:42:16.021Z"
},
"in_progress_since": "2026-10-08T19:43:19.697Z",
"approvals": {
@ -8097,7 +8097,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T22:53:29.598Z"
"at": "2026-10-08T23:42:16.021Z"
}
}
}

View file

@ -0,0 +1,141 @@
{
"case": "cache-history",
"node": "/srv/builds/_scratch/fin-runs/pair-ch-c591e63b/igneumd",
"proveBin": "/srv/builds/_scratch/fin-runs/prove-bin",
"pair": {
"shard": "0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a",
"aggregator": "0x474678f35f7545db28055d5e5bbc308231d84a5a072202087a2a8d5b09123896"
},
"startedAt": "2026-10-08T22:15:00.783Z",
"phases": {
"context": {
"block": 421,
"submit": {
"accepted": true,
"block": "0xbfa33afe7885e91d71798f1fb3291fd03bdb5f68ce4ac181e7bdeb59a32cc2ee",
"keyHash": "0x6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df",
"new": true,
"number": "0x1a5",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"cacheAnswers": 0,
"calls": 0,
"contextRefusals": 0,
"sp1": 0
},
"refusals": []
},
"honest": {
"block": 94,
"submit": {
"accepted": true,
"block": "0x652fd371048f09f3fdb75c5d0ecf5fcbc9c94a5120a770b47f40bd9054ed426a",
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"new": true,
"number": "0x5e",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [
{
"carrierNumber": "0x22c",
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"payout": "0xc3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3",
"shard": 0,
"wei": "0x8cc4f1531c07000"
}
],
"carried": [
{
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"carrier": "0x22c",
"rejected": "",
"paidWei": "0x8cc4f1531c07000"
},
{
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"carrier": "0x22d",
"rejected": "shard already paid",
"paidWei": "0x0"
}
]
},
"verifies": {
"cacheAnswers": 2,
"calls": 0,
"contextRefusals": 0,
"sp1": 0
}
},
"invalid": {
"blocks": [
651,
774
],
"submits": [
{
"accepted": true,
"block": "0xa38592ca5a220418252e6a72944ef1921dfe032eb9fa9c9e71e86a70e1d368ff",
"keyHash": "0x89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf",
"new": true,
"number": "0x28b",
"reason": "accepted",
"shard": 0
},
{
"accepted": true,
"block": "0xe83c692754cc769b54672793fca870800879c1333c70605820d109faeff2d929",
"keyHash": "0xaa474491707c6931a3d6d2fdb84e4d91fa3f3c57b7776b9c1fb1b01a1f96678a",
"new": true,
"number": "0x306",
"reason": "accepted",
"shard": 0
}
],
"verifies": {
"after3a": {
"cacheAnswers": 2,
"calls": 0,
"contextRefusals": 0,
"sp1": 0
},
"after3b": {
"cacheAnswers": 2,
"calls": 0,
"contextRefusals": 0,
"sp1": 0
}
},
"refusals": {
"after3a": 0,
"after3b": 0
},
"reasons": []
}
},
"proof": {
"block": 94,
"statement": "0x86b1ada7bbeff89c5e65e9525159e4604c3ba51b622be8269191ec739fbf06a7",
"native": "0x86b1ada7bbeff89c5e65e9525159e4604c3ba51b622be8269191ec739fbf06a7",
"bytes": 1272961,
"sha256": "0x98662fbe3a3a82fb85b3e32b0a8113134bd438cacba151020365b89a24d66409",
"hostLine": "RESULT compressed shard 0: prove 287.0 s, proof 1272961 bytes, verify 0.063 s, VERIFIED; statement 0x86b1ada7bbeff89c5e65e9525159e4604c3ba51b622be8269191ec739fbf06a7 proof sha256 0x98662fbe3a3a82fb85b3e32b0a8113134bd438cacba151020365b89a24d66409 prover 0xc3c3c3c3c3c3c3c3c3C3C3c3C3C3C3c3C3C3c3c3 at 2026-10-08T22:22:27Z"
},
"verdict": {
"paidOnce": true,
"sp1Verifies": 0,
"cacheAnswers": 2,
"contextRefused": false,
"contextCheap": false,
"invalidRefusedTwiceNoVerify": false,
"pass": false
},
"endedAt": "2026-10-08T22:30:29.169Z"
}

View file

@ -0,0 +1,21 @@
lease: holding 8 pool cores (8,9,10,11,12,13,14,15, waited 0 s, class measure, mem 8 GB): finality native runs s6-cache-history-2 (F01 two-node cache history, plan finality-native-runs-2026-10-09 section 6)
22:15:01.835 ch3 H1 up (pid 223412) after 1 s
22:15:02.846 ch3 H2 up (pid 223526) after 1 s
22:15:03.856 ch3 A up (pid 223636) after 1 s
22:15:03.864 ch3 phase 0: mining 90 s
22:16:33.959 ch3 block 94 0x652fd371048f09f3fdb75c5d0ecf5fcbc9c94a5120a770b47f40bd9054ed426a: H1's native statement for shard 0 and 0xc3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3: 0x86b1ada7bbeff89c5e65e9525159e4604c3ba51b622be8269191ec739fbf06a7
22:16:33.984 ch3 block 94 cut: wrote /tmp/igneum-fast-time-ch3/prove-94/block-94.json (15425 bytes, input commitment 0x45ab763db33f7d4a866b9edd1d4ee0d92ccca09542dc9ca75de7b8af7172d9ee)
22:22:28.623 ch3 host: RESULT compressed shard 0: prove 287.0 s, proof 1272961 bytes, verify 0.063 s, VERIFIED; statement 0x86b1ada7bbeff89c5e65e9525159e4604c3ba51b622be8269191ec739fbf06a7 proof sha256 0x98662fbe3a3a82fb85b
22:22:28.631 ch3 before phase 1: A is on H1's tip (0 s)
22:22:28.703 ch3 phase 1 (real bytes, another block's statement): A's pool accepted (accepted)
22:24:28.810 ch3 phase 1: H1 verifies {"cacheAnswers":0,"calls":0,"contextRefusals":0,"sp1":0}; block 421 paid []; refusals 0
22:24:28.812 ch3 before phase 2: A is on H1's tip (0 s)
22:24:28.861 ch3 phase 2 (the same bytes, the honest record): A's pool accepted (accepted)
22:26:28.950 ch3 phase 2: H1 verifies {"cacheAnswers":2,"calls":0,"contextRefusals":0,"sp1":0}; block 94 paid [{"carrierNumber":"0x22c","keyHash":"0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594","payout":"0xc3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3","shard":0,"wei":"0x8cc4f1531c07000"}]; carried [{"key":"0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594","carrier":"0x22c","rejected":"","paidWei":"0x8cc4f1531c07000"},{"key":"0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594","carrier":"0x22d","rejected":"shard already paid","paidWei":"0x0"}]
22:26:28.952 ch3 before phase 3: A is on H1's tip (0 s)
22:26:28.968 ch3 phase 3a (invalid bytes): A's pool accepted (accepted)
22:28:29.056 ch3 before phase 3b: A is on H1's tip (0 s)
22:28:29.070 ch3 phase 3b (the same invalid bytes, a later carrier): A's pool accepted (accepted)
22:30:29.168 ch3 phase 3: H1 verifies after 3a {"cacheAnswers":2,"calls":0,"contextRefusals":0,"sp1":0}, after 3b {"cacheAnswers":2,"calls":0,"contextRefusals":0,"sp1":0}; refusals 0 then 0
22:30:29.169 ch3 RESULT FAIL: paid once=true; SP1 verifies=0 (expect 2: the real proof once, the invalid bytes once); context refusal read=false and cheap (no verifier)=false; cache answers=2 (expect >= 1); invalid refused again without a verify=false; /srv/builds/_scratch/fin-runs/results/s6-cache-history-2.json
lease: released 8 pool cores after 931 s, exit 1

View file

@ -0,0 +1,4 @@
#### 22:15:00Z s6-cache-history-2: node /srv/builds/_scratch/fin-runs/pair-ch-c591e63b/igneumd (70be29a422cfc20d) verifier /srv/builds/_scratch/fin-runs/prove-bin/igneum-prove-host prove-bin /srv/builds/_scratch/fin-runs/prove-bin
rc=1
#### 22:30:31Z s6-cache-history-2 done rc=1
22:30:31Z watcher of s6-cache-history-2 exiting after 0 restart(s)

View file

@ -0,0 +1,6 @@
lease: holding 8 pool cores (8,9,10,11,12,13,14,15, waited 0 s, class measure, mem 8 GB): finality native runs s6-cache-history-3 (F01 two-node cache history, plan finality-native-runs-2026-10-09 section 6)
22:33:45.680 ch3 H1 up (pid 232372) after 1 s
22:33:46.690 ch3 H2 up (pid 232550) after 1 s
22:33:47.700 ch3 A up (pid 232642) after 1 s
22:33:47.708 ch3 phase 0: mining 90 s
lease: released 8 pool cores after 35 s, exit 143

View file

@ -0,0 +1,3 @@
#### 22:33:44Z s6-cache-history-3: node /srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd/igneumd (70be29a422cfc20d) in-consensus verifier (exec pool Off) prove-bin /srv/builds/_scratch/fin-runs/prove-bin-51cd
rc=143
#### 22:34:19Z s6-cache-history-3 done rc=143

View file

@ -0,0 +1,120 @@
{
"case": "cache-history",
"node": "/srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd/igneumd",
"proveBin": "/srv/builds/_scratch/fin-runs/prove-bin-51cd",
"pair": {
"shard": "0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a",
"aggregator": "0x474678f35f7545db28055d5e5bbc308231d84a5a072202087a2a8d5b09123896"
},
"startedAt": "2026-10-08T22:35:42.589Z",
"phases": {
"context": {
"block": 433,
"submit": {
"accepted": true,
"block": "0xb8b79290b9c0397aa9b6a645968c24c6b8871ffbd770ad3c6ecb96636e02c525",
"keyHash": "0x6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df",
"new": true,
"number": "0x1b1",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"cacheAnswers": 0,
"calls": 0,
"contextRefusals": 0,
"sp1": 0
},
"refusals": []
},
"honest": {
"block": 97,
"submit": {
"accepted": true,
"block": "0x765a799ab02798a9832ec354726ddec61d76f90c654065d4c58ac7d51b2fa1ac",
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"new": true,
"number": "0x61",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"cacheAnswers": 0,
"calls": 0,
"contextRefusals": 0,
"sp1": 0
}
},
"invalid": {
"blocks": [
667,
786
],
"submits": [
{
"accepted": true,
"block": "0xec7499165b125aeac2cec6ec1cb4875576b9bd458b901002ae447ebffe9130b9",
"keyHash": "0x89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf",
"new": true,
"number": "0x29b",
"reason": "accepted",
"shard": 0
},
{
"accepted": true,
"block": "0x3e647b62f493c850a37b5f0d0ee4784055a7d9829bb5d40f3e3d279cfcb02eba",
"keyHash": "0xaa474491707c6931a3d6d2fdb84e4d91fa3f3c57b7776b9c1fb1b01a1f96678a",
"new": true,
"number": "0x312",
"reason": "accepted",
"shard": 0
}
],
"verifies": {
"after3a": {
"cacheAnswers": 0,
"calls": 0,
"contextRefusals": 0,
"sp1": 0
},
"after3b": {
"cacheAnswers": 0,
"calls": 0,
"contextRefusals": 0,
"sp1": 0
}
},
"refusals": {
"after3a": 0,
"after3b": 0
},
"reasons": []
}
},
"proof": {
"block": 97,
"statement": "0xdfb4de3fc0803a9ee99ac22909c6fab7ddd31a82204ccc4783400862b5b819e9",
"native": "0xdfb4de3fc0803a9ee99ac22909c6fab7ddd31a82204ccc4783400862b5b819e9",
"bytes": 1272961,
"sha256": "0xbd1bad6a2d09d82a89194e7e161b261757647b624d00f315d7964a0ecbc4ecd8",
"hostLine": "RESULT compressed shard 0: prove 286.7 s, proof 1272961 bytes, verify 0.064 s, VERIFIED; statement 0xdfb4de3fc0803a9ee99ac22909c6fab7ddd31a82204ccc4783400862b5b819e9 proof sha256 0xbd1bad6a2d09d82a89194e7e161b261757647b624d00f315d7964a0ecbc4ecd8 prover 0xc3c3c3c3c3c3c3c3c3C3C3c3C3C3C3c3C3C3c3c3 at 2026-10-08T22:43:09Z"
},
"verdict": {
"paidOnce": false,
"sp1Verifies": 0,
"cacheAnswers": 0,
"contextRefused": false,
"contextCheap": false,
"invalidRefusedTwiceNoVerify": false,
"pass": false
},
"endedAt": "2026-10-08T22:51:10.660Z"
}

View file

@ -0,0 +1,21 @@
lease: holding 8 pool cores (8,9,10,11,12,13,14,15, waited 0 s, class measure, mem 8 GB): finality native runs s6-cache-history-3 (F01 two-node cache history, plan finality-native-runs-2026-10-09 section 6)
22:35:43.641 ch3 H1 up (pid 235327) after 1 s
22:35:44.651 ch3 H2 up (pid 235420) after 1 s
22:35:45.661 ch3 A up (pid 235545) after 1 s
22:35:45.668 ch3 phase 0: mining 90 s
22:37:15.783 ch3 block 97 0x765a799ab02798a9832ec354726ddec61d76f90c654065d4c58ac7d51b2fa1ac: H1's native statement for shard 0 and 0xc3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3: 0xdfb4de3fc0803a9ee99ac22909c6fab7ddd31a82204ccc4783400862b5b819e9
22:37:15.808 ch3 block 97 cut: wrote /tmp/igneum-fast-time-ch3/prove-97/block-97.json (15556 bytes, input commitment 0x471620ba7d400f1a9e67dec2b7918fb9b8e3eb20d2d236326fc63d2a155f820a)
22:43:10.302 ch3 host: RESULT compressed shard 0: prove 286.7 s, proof 1272961 bytes, verify 0.064 s, VERIFIED; statement 0xdfb4de3fc0803a9ee99ac22909c6fab7ddd31a82204ccc4783400862b5b819e9 proof sha256 0xbd1bad6a2d09d82a891
22:43:10.309 ch3 before phase 1: A is on H1's tip (0 s)
22:43:10.367 ch3 phase 1 (real bytes, another block's statement): A's pool accepted (accepted)
22:45:10.413 ch3 phase 1: H1 verifies {"cacheAnswers":0,"calls":0,"contextRefusals":0,"sp1":0}; block 433 paid []; refusals 0
22:45:10.414 ch3 before phase 2: A is on H1's tip (0 s)
22:45:10.471 ch3 phase 2 (the same bytes, the honest record): A's pool accepted (accepted)
22:47:10.474 ch3 phase 2: H1 verifies {"cacheAnswers":0,"calls":0,"contextRefusals":0,"sp1":0}; block 97 paid []; carried []
22:47:10.476 ch3 before phase 3: A is on H1's tip (0 s)
22:47:10.485 ch3 phase 3a (invalid bytes): A's pool accepted (accepted)
22:49:10.546 ch3 before phase 3b: A is on H1's tip (0 s)
22:49:10.556 ch3 phase 3b (the same invalid bytes, a later carrier): A's pool accepted (accepted)
22:51:10.660 ch3 phase 3: H1 verifies after 3a {"cacheAnswers":0,"calls":0,"contextRefusals":0,"sp1":0}, after 3b {"cacheAnswers":0,"calls":0,"contextRefusals":0,"sp1":0}; refusals 0 then 0
22:51:10.660 ch3 RESULT FAIL: paid once=false; SP1 verifies=0 (expect 2: the real proof once, the invalid bytes once); context refusal read=false and cheap (no verifier)=false; cache answers=0 (expect >= 1); invalid refused again without a verify=false; /srv/builds/_scratch/fin-runs/results/s6-cache-history-3.json
lease: released 8 pool cores after 930 s, exit 1

View file

@ -0,0 +1,4 @@
#### 22:35:42Z s6-cache-history-3: node /srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd/igneumd (6886ff20b7cdd8a6) in-consensus verifier (exec pool Off) prove-bin /srv/builds/_scratch/fin-runs/prove-bin-51cd
rc=1
#### 22:51:12Z s6-cache-history-3 done rc=1
22:51:12Z watcher of s6-cache-history-3 exiting after 0 restart(s)

View file

@ -0,0 +1,4 @@
#### 22:53:21Z s6-cache-history-4: node /srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd-hu/igneumd (f6e67c31a02747d5) in-consensus verifier (exec pool Off) prove-bin /srv/builds/_scratch/fin-runs/prove-bin-51cd
rc=1
#### 23:13:30Z s6-cache-history-4 done rc=1
23:13:30Z watcher of s6-cache-history-4 exiting after 0 restart(s)

View file

@ -0,0 +1,126 @@
{
"case": "cache-history",
"node": "/srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd-hu/igneumd",
"proveBin": "/srv/builds/_scratch/fin-runs/prove-bin-51cd",
"pair": {
"shard": "0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a",
"aggregator": "0x474678f35f7545db28055d5e5bbc308231d84a5a072202087a2a8d5b09123896"
},
"startedAt": "2026-10-08T22:53:22.261Z",
"phases": {
"context": {
"block": 411,
"submit": {
"accepted": true,
"block": "0xda27df5825b40e2084053576df8ea1266e5b1bb31c7ddc01875b55a7d0bed66d",
"keyHash": "0x6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df",
"new": true,
"number": "0x19b",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"cacheAnswers": 0,
"calls": 1,
"contextRefusals": 1,
"sp1": 0
},
"refusals": [
"a carried proof record's proof does not verify: shard record block 411 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df (proof cf2020ebb8968ca7): shard record block 411 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df: the proof claims program id 0x51cd8cba314a32b60fac393949a4571714da6d6656717d286011601b2a163fe7, which the carrier's epoch does not accept (accepted: 0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a), disconnecting from peer 127.0.0.1:39462."
]
},
"honest": {
"block": 89,
"submit": {
"accepted": false,
"block": "0x477e5c0d363d22a01786e90841b7a6d4279a1bf5313e1ad5aefda12a06b11a29",
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"new": false,
"number": "0x59",
"reason": "segment 89 is outside the 600-block record window of carrier 725",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"cacheAnswers": 0,
"calls": 1,
"contextRefusals": 1,
"sp1": 0
}
},
"invalid": {
"blocks": [
837,
1018
],
"submits": [
{
"accepted": true,
"block": "0x31988322cfab3010d67ddf9635655e27ca8584f2a42eeedec613780c7f10fecb",
"keyHash": "0x89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf",
"new": true,
"number": "0x345",
"reason": "accepted",
"shard": 0
},
{
"accepted": true,
"block": "0x40c7a0b9413b975af9461939b8f6091a45ab6f123f051325fc06cbfee6fd5aac",
"keyHash": "0xaa474491707c6931a3d6d2fdb84e4d91fa3f3c57b7776b9c1fb1b01a1f96678a",
"new": true,
"number": "0x3fa",
"reason": "accepted",
"shard": 0
}
],
"verifies": {
"after3a": {
"cacheAnswers": 0,
"calls": 2,
"contextRefusals": 1,
"sp1": 1
},
"after3b": {
"cacheAnswers": 1,
"calls": 2,
"contextRefusals": 1,
"sp1": 1
}
},
"refusals": {
"after3a": 2,
"after3b": 3
},
"reasons": [
"a carried proof record's proof does not verify: shard record block 411 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df (proof cf2020ebb8968ca7): shard record block 411 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df: the proof claims program id 0x51cd8cba314a32b60fac393949a4571714da6d6656717d286011601b2a163fe7, which the carrier's epoch does not accept (accepted: 0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a), disconnecting from peer 127.0.0.1:39462.",
"a carried proof record's proof does not verify: shard record block 837 shard 0 by 89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf (proof 1fff4af866be0657): shard record block 837 shard 0 by 89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf: the proof bytes are not a bincode SP1 proof: invalid value: integer `2787443690`, expected variant index 0 <= i < 4, disconnecting from peer 127.0.0.1:56470.",
"a carried proof record's proof does not verify: shard record block 1018 shard 0 by aa474491707c6931a3d6d2fdb84e4d91fa3f3c57b7776b9c1fb1b01a1f96678a (proof 1fff4af866be0657): shard record block 837 shard 0 by 89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf: the proof bytes are not a bincode SP1 proof: invalid value: integer `2787443690`, expected variant index 0 <= i < 4, disconnecting from peer 127.0.0.1:34408."
]
}
},
"proof": {
"block": 89,
"statement": "0x9240d2736b2c405d0d792828ead9a8f12226e4d3ef171bf5f6f2607f049e0556",
"native": "0x9240d2736b2c405d0d792828ead9a8f12226e4d3ef171bf5f6f2607f049e0556",
"bytes": 1272961,
"sha256": "0xcf2020ebb8968ca781958aef058fe3e4227a8bd7f48ba950c956b9bd8e542178",
"hostLine": "RESULT compressed shard 0: prove 288.8 s, proof 1272961 bytes, verify 0.062 s, VERIFIED; statement 0x9240d2736b2c405d0d792828ead9a8f12226e4d3ef171bf5f6f2607f049e0556 proof sha256 0xcf2020ebb8968ca781958aef058fe3e4227a8bd7f48ba950c956b9bd8e542178 prover 0xc3c3c3c3c3c3c3c3c3C3C3c3C3C3C3c3C3C3c3c3 at 2026-10-08T23:00:51Z"
},
"verdict": {
"paidOnce": false,
"sp1Verifies": 1,
"cacheAnswers": 1,
"contextRefused": true,
"contextCheap": true,
"invalidRefusedTwiceNoVerify": true,
"pass": false
},
"endedAt": "2026-10-08T23:13:28.216Z"
}

View file

@ -0,0 +1,6 @@
lease: holding 24 pool cores (8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, waited 0 s, class measure, mem 8 GB): finality native runs s6-cache-history-4 (F01 two-node cache history, plan finality-native-runs-2026-10-09 section 6)
23:14:46.400 ch3 H1 up (pid 266564) after 1 s
23:14:47.410 ch3 H2 up (pid 266725) after 1 s
23:14:48.422 ch3 A up (pid 266892) after 1 s
23:14:48.430 ch3 phase 0: mining 90 s
lease: released 24 pool cores after 18 s, exit 143

View file

@ -0,0 +1,4 @@
#### 22:53:21Z s6-cache-history-4: node /srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd-hu/igneumd (f6e67c31a02747d5) in-consensus verifier (exec pool Off) prove-bin /srv/builds/_scratch/fin-runs/prove-bin-51cd
rc=1
#### 23:13:30Z s6-cache-history-4 done rc=1
23:13:30Z watcher of s6-cache-history-4 exiting after 0 restart(s)

View file

@ -0,0 +1,3 @@
lease: holding 24 pool cores (8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, waited 0 s, class measure, mem 8 GB): finality native runs s6-cache-history-5 (F01 two-node cache history, plan finality-native-runs-2026-10-09 section 6)
23:15:10.461 ch3 ERROR: H1 exited 1: Exiting... | 2026-10-08 23:15:09.498+00:00 [INFO ] [igneum-exec] exec sync: no snapshot to resume from (no snapshot file); the follower starts at genesis | 2026-10-08 23:15:09.498+00:00 [INFO ] [igneum-exec] genesis 234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062 executed: chain id 4463, registry at 0x0000000000000000000000000000000000000210, state root 0x7e37a9fb19b154d32daf5bf30a50d339a75029fbc9eec9ea20e95439dba5a311 | 2026-10-08 23:15:09.498+00:00 [INFO ] [igneum-exec] class v5: the state stream after genesis 234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062 (epoch 0's reference) is published |
lease: released 24 pool cores after 3 s, exit 1

View file

@ -0,0 +1,5 @@
#### 23:14:45Z s6-cache-history-4: node /srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd-hu/igneumd (f6e67c31a02747d5) in-consensus verifier (exec pool Off) prove-bin /srv/builds/_scratch/fin-runs/prove-bin-51cd
#### 23:15:09Z s6-cache-history-5: node /srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd-hu/igneumd (f6e67c31a02747d5) in-consensus verifier (exec pool Off) prove-bin /srv/builds/_scratch/fin-runs/prove-bin-51cd
rc=1
#### 23:15:12Z s6-cache-history-5 done rc=1
23:15:12Z watcher of s6-cache-history-5 exiting after 0 restart(s)

View file

@ -0,0 +1,127 @@
{
"case": "cache-history",
"node": "/srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd-hu/igneumd",
"proveBin": "/srv/builds/_scratch/fin-runs/prove-bin-51cd",
"pair": {
"shard": "0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a",
"aggregator": "0x474678f35f7545db28055d5e5bbc308231d84a5a072202087a2a8d5b09123896"
},
"startedAt": "2026-10-08T23:15:42.203Z",
"phases": {
"context": {
"block": 227,
"submit": {
"accepted": true,
"block": "0xffc1c65ee0f934b3e534486ff472b7e9f96088b0024d9ed265af6eaf749b1f65",
"keyHash": "0x6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df",
"new": true,
"number": "0xe3",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"cacheAnswers": 0,
"calls": 1,
"contextRefusals": 1,
"sp1": 0
},
"refusals": [
"a carried proof record's proof does not verify: shard record block 227 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df (proof ff1dfd50ead6208a): shard record block 227 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df: the proof claims program id 0x51cd8cba314a32b60fac393949a4571714da6d6656717d286011601b2a163fe7, which the carrier's epoch does not accept (accepted: 0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a), disconnecting from peer 127.0.0.1:56014."
]
},
"honest": {
"block": 94,
"submit": {
"accepted": true,
"block": "0x02412385d0d85da98ca67c1097d872f1988f7bb6d07b1f9ad97861d6eacd54f3",
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"new": true,
"number": "0x5e",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"cacheAnswers": 0,
"calls": 2,
"contextRefusals": 2,
"sp1": 0
}
},
"invalid": {
"blocks": [
500,
627
],
"submits": [
{
"accepted": true,
"block": "0x6c4541e74b1b18a891bfa4f774c7fac795a99ba3a02c3c880b7aea3aad180a72",
"keyHash": "0x89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf",
"new": true,
"number": "0x1f4",
"reason": "accepted",
"shard": 0
},
{
"accepted": true,
"block": "0xf1d18fc28f64bbcadda1c19540a98db1bb104189d03ff6892c3e28b3eb020263",
"keyHash": "0xaa474491707c6931a3d6d2fdb84e4d91fa3f3c57b7776b9c1fb1b01a1f96678a",
"new": true,
"number": "0x273",
"reason": "accepted",
"shard": 0
}
],
"verifies": {
"after3a": {
"cacheAnswers": 0,
"calls": 3,
"contextRefusals": 2,
"sp1": 1
},
"after3b": {
"cacheAnswers": 1,
"calls": 3,
"contextRefusals": 2,
"sp1": 1
}
},
"refusals": {
"after3a": 3,
"after3b": 4
},
"reasons": [
"a carried proof record's proof does not verify: shard record block 227 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df (proof ff1dfd50ead6208a): shard record block 227 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df: the proof claims program id 0x51cd8cba314a32b60fac393949a4571714da6d6656717d286011601b2a163fe7, which the carrier's epoch does not accept (accepted: 0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a), disconnecting from peer 127.0.0.1:56014.",
"a carried proof record's proof does not verify: shard record block 94 shard 0 by 4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594 (proof ff1dfd50ead6208a): shard record block 94 shard 0 by 4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594: the proof claims program id 0x51cd8cba314a32b60fac393949a4571714da6d6656717d286011601b2a163fe7, which the carrier's epoch does not accept (accepted: 0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a), disconnecting from peer 127.0.0.1:52138.",
"a carried proof record's proof does not verify: shard record block 500 shard 0 by 89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf (proof 51cfa1e1a5fbacc7): shard record block 500 shard 0 by 89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf: the proof bytes are not a bincode SP1 proof: invalid value: integer `2676575428`, expected variant index 0 <= i < 4, disconnecting from peer 127.0.0.1:56962.",
"a carried proof record's proof does not verify: shard record block 627 shard 0 by aa474491707c6931a3d6d2fdb84e4d91fa3f3c57b7776b9c1fb1b01a1f96678a (proof 51cfa1e1a5fbacc7): shard record block 500 shard 0 by 89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf: the proof bytes are not a bincode SP1 proof: invalid value: integer `2676575428`, expected variant index 0 <= i < 4, disconnecting from peer 127.0.0.1:58328."
]
}
},
"proof": {
"block": 94,
"statement": "0xbcb546d94d3bd80c4c726944a740d8973f46711c51a8b0cb56824add3f8d350c",
"native": "0xbcb546d94d3bd80c4c726944a740d8973f46711c51a8b0cb56824add3f8d350c",
"bytes": 1272961,
"sha256": "0xff1dfd50ead6208ad74e39084204784618392b47dcb7697053dfbe4474423310",
"hostLine": "RESULT compressed shard 0: prove 109.6 s, proof 1272961 bytes, verify 0.061 s, VERIFIED; statement 0xbcb546d94d3bd80c4c726944a740d8973f46711c51a8b0cb56824add3f8d350c proof sha256 0xff1dfd50ead6208ad74e39084204784618392b47dcb7697053dfbe4474423310 prover 0xc3c3c3c3c3c3c3c3c3C3C3c3C3C3C3c3C3C3c3c3 at 2026-10-08T23:19:32Z"
},
"verdict": {
"paidOnce": false,
"sp1Verifies": 1,
"cacheAnswers": 1,
"contextRefused": true,
"contextCheap": true,
"invalidRefusedTwiceNoVerify": true,
"pass": false
},
"endedAt": "2026-10-08T23:28:18.576Z"
}

View file

@ -0,0 +1,21 @@
lease: holding 24 pool cores (8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, waited 0 s, class measure, mem 8 GB): finality native runs s6-cache-history-5 (F01 two-node cache history, plan finality-native-runs-2026-10-09 section 6)
23:15:43.259 ch3 H1 up (pid 268118) after 1 s
23:15:44.269 ch3 H2 up (pid 268279) after 1 s
23:15:45.278 ch3 A up (pid 268439) after 1 s
23:15:45.284 ch3 phase 0: mining 90 s
23:17:15.395 ch3 block 94 0x02412385d0d85da98ca67c1097d872f1988f7bb6d07b1f9ad97861d6eacd54f3: H1's native statement for shard 0 and 0xc3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3: 0xbcb546d94d3bd80c4c726944a740d8973f46711c51a8b0cb56824add3f8d350c
23:17:15.426 ch3 block 94 cut: wrote /tmp/igneum-fast-time-ch3/prove-94/block-94.json (15238 bytes, input commitment 0x828f0647d6f6bb1d40fe375784666c6ab70523c97c0914f477ae926ac0d2f84d)
23:19:32.946 ch3 host: RESULT compressed shard 0: prove 109.6 s, proof 1272961 bytes, verify 0.061 s, VERIFIED; statement 0xbcb546d94d3bd80c4c726944a740d8973f46711c51a8b0cb56824add3f8d350c proof sha256 0xff1dfd50ead6208ad74
23:19:37.972 ch3 before phase 1: A is on H1's tip (5 s)
23:19:38.044 ch3 phase 1 (real bytes, another block's statement): A's pool accepted (accepted)
23:21:38.152 ch3 phase 1: H1 verifies {"cacheAnswers":0,"calls":1,"contextRefusals":1,"sp1":0}; block 227 paid []; refusals 1
23:21:48.175 ch3 before phase 2: A is on H1's tip (10 s)
23:21:48.246 ch3 phase 2 (the same bytes, the honest record): A's pool accepted (accepted)
23:23:48.350 ch3 phase 2: H1 verifies {"cacheAnswers":0,"calls":2,"contextRefusals":2,"sp1":0}; block 94 paid []; carried []
23:24:18.406 ch3 before phase 3: A is on H1's tip (30 s)
23:24:18.420 ch3 phase 3a (invalid bytes): A's pool accepted (accepted)
23:26:18.509 ch3 before phase 3b: A is on H1's tip (0 s)
23:26:18.527 ch3 phase 3b (the same invalid bytes, a later carrier): A's pool accepted (accepted)
23:28:18.576 ch3 phase 3: H1 verifies after 3a {"cacheAnswers":0,"calls":3,"contextRefusals":2,"sp1":1}, after 3b {"cacheAnswers":1,"calls":3,"contextRefusals":2,"sp1":1}; refusals 3 then 4
23:28:18.576 ch3 RESULT FAIL: paid once=false; SP1 verifies=1 (expect 2: the real proof once, the invalid bytes once); context refusal read=true and cheap (no verifier)=true; cache answers=1 (expect >= 1); invalid refused again without a verify=true; /srv/builds/_scratch/fin-runs/results/s6-cache-history-5.json
lease: released 24 pool cores after 758 s, exit 1

View file

@ -0,0 +1,4 @@
#### 23:15:41Z s6-cache-history-5: node /srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd-hu/igneumd (f6e67c31a02747d5) in-consensus verifier (exec pool Off) prove-bin /srv/builds/_scratch/fin-runs/prove-bin-51cd
rc=1
#### 23:28:20Z s6-cache-history-5 done rc=1
23:28:20Z watcher of s6-cache-history-5 exiting after 0 restart(s)

View file

@ -0,0 +1,147 @@
{
"case": "cache-history",
"node": "/srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd-hu/igneumd",
"proveBin": "/srv/builds/_scratch/fin-runs/prove-bin-51cd",
"pair": {
"shard": "0x51cd8cba314a32b60fac393949a4571714da6d6656717d286011601b2a163fe7",
"aggregator": "0x05b395ec238f67406084f8a449d400f64c87dc62151daebf66695864727ded8a"
},
"startedAt": "2026-10-08T23:29:06.628Z",
"phases": {
"context": {
"block": 232,
"submit": {
"accepted": true,
"block": "0xc62175ddddc8328b2710dd2bc79e21fa578481c82fd96743ba7db17e3f0574ef",
"keyHash": "0x6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df",
"new": true,
"number": "0xe8",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"cacheAnswers": 0,
"calls": 1,
"contextRefusals": 1,
"sp1": 0
},
"refusals": [
"a carried proof record's proof does not verify: shard record block 232 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df (proof 9bd301ce9f169f4f): shard record block 232 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df: the proof's public values hash to 0x3047d8541367791f18fae465643c80b7fd3739db74f27f4edccd409e69064f6b, the record's statement is 0xdac8c41cdf5ad2856e415b9cb1b82f668f51a1c2691d32f81669e368695afa47, disconnecting from peer 127.0.0.1:55832."
]
},
"honest": {
"block": 92,
"submit": {
"accepted": true,
"block": "0x4aa7d2287b80faaa19e64b3114decfd2693150eacf8404bcb8f1310dd241d34a",
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"new": true,
"number": "0x5c",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [
{
"carrierNumber": "0x176",
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"payout": "0xc3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3",
"shard": 0,
"wei": "0x8cc4b14bd509000"
}
],
"carried": [
{
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"carrier": "0x176",
"rejected": "",
"paidWei": "0x8cc4b14bd509000"
},
{
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"carrier": "0x177",
"rejected": "shard already paid",
"paidWei": "0x0"
}
]
},
"verifies": {
"cacheAnswers": 1,
"calls": 2,
"contextRefusals": 1,
"sp1": 1
}
},
"invalid": {
"blocks": [
481,
598
],
"submits": [
{
"accepted": true,
"block": "0x67fdb28e9510fd100c1ab56a60300458bc2eb48e7f7d105b0627e59263e764a5",
"keyHash": "0x89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf",
"new": true,
"number": "0x1e1",
"reason": "accepted",
"shard": 0
},
{
"accepted": true,
"block": "0x991259d288b0b943a7cf7b4746f587e31529b55a77b80c5cf7265a1c8ab53345",
"keyHash": "0xaa474491707c6931a3d6d2fdb84e4d91fa3f3c57b7776b9c1fb1b01a1f96678a",
"new": true,
"number": "0x256",
"reason": "accepted",
"shard": 0
}
],
"verifies": {
"after3a": {
"cacheAnswers": 1,
"calls": 3,
"contextRefusals": 1,
"sp1": 2
},
"after3b": {
"cacheAnswers": 2,
"calls": 3,
"contextRefusals": 1,
"sp1": 2
}
},
"refusals": {
"after3a": 2,
"after3b": 3
},
"reasons": [
"a carried proof record's proof does not verify: shard record block 232 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df (proof 9bd301ce9f169f4f): shard record block 232 shard 0 by 6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df: the proof's public values hash to 0x3047d8541367791f18fae465643c80b7fd3739db74f27f4edccd409e69064f6b, the record's statement is 0xdac8c41cdf5ad2856e415b9cb1b82f668f51a1c2691d32f81669e368695afa47, disconnecting from peer 127.0.0.1:55832.",
"a carried proof record's proof does not verify: shard record block 481 shard 0 by 89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf (proof c229a4202c82e9f8): shard record block 481 shard 0 by 89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf: the proof bytes are not a bincode SP1 proof: invalid value: integer `3248680587`, expected variant index 0 <= i < 4, disconnecting from peer 127.0.0.1:55440.",
"a carried proof record's proof does not verify: shard record block 598 shard 0 by aa474491707c6931a3d6d2fdb84e4d91fa3f3c57b7776b9c1fb1b01a1f96678a (proof c229a4202c82e9f8): shard record block 481 shard 0 by 89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf: the proof bytes are not a bincode SP1 proof: invalid value: integer `3248680587`, expected variant index 0 <= i < 4, disconnecting from peer 127.0.0.1:48522."
]
}
},
"proof": {
"block": 92,
"statement": "0x3047d8541367791f18fae465643c80b7fd3739db74f27f4edccd409e69064f6b",
"native": "0x3047d8541367791f18fae465643c80b7fd3739db74f27f4edccd409e69064f6b",
"bytes": 1272961,
"sha256": "0x9bd301ce9f169f4f6805a904271b360250be4f54af9b2dcede46c80af82d6e27",
"hostLine": "RESULT compressed shard 0: prove 109.5 s, proof 1272961 bytes, verify 0.050 s, VERIFIED; statement 0x3047d8541367791f18fae465643c80b7fd3739db74f27f4edccd409e69064f6b proof sha256 0x9bd301ce9f169f4f6805a904271b360250be4f54af9b2dcede46c80af82d6e27 prover 0xc3c3c3c3c3c3c3c3c3C3C3c3C3C3C3c3C3C3c3c3 at 2026-10-08T23:32:56Z"
},
"verdict": {
"paidOnce": true,
"sp1Verifies": 2,
"cacheAnswers": 2,
"contextRefused": true,
"contextCheap": true,
"invalidRefusedTwiceNoVerify": true,
"pass": true
},
"endedAt": "2026-10-08T23:41:13.052Z"
}

View file

@ -0,0 +1,21 @@
lease: holding 24 pool cores (8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, waited 0 s, class measure, mem 8 GB): finality native runs s6-cache-history-6 (F01 two-node cache history, plan finality-native-runs-2026-10-09 section 6)
23:29:07.676 ch3 H1 up (pid 272375) after 1 s
23:29:08.685 ch3 H2 up (pid 272536) after 1 s
23:29:09.696 ch3 A up (pid 272696) after 1 s
23:29:09.705 ch3 phase 0: mining 90 s
23:30:39.752 ch3 block 92 0x4aa7d2287b80faaa19e64b3114decfd2693150eacf8404bcb8f1310dd241d34a: H1's native statement for shard 0 and 0xc3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3: 0x3047d8541367791f18fae465643c80b7fd3739db74f27f4edccd409e69064f6b
23:30:39.781 ch3 block 92 cut: wrote /tmp/igneum-fast-time-ch3/prove-92/block-92.json (15026 bytes, input commitment 0x2452e7264f579cf670b891b36c2ab9919871577685d8a37200cf7f76e34bc1da)
23:32:57.408 ch3 host: RESULT compressed shard 0: prove 109.5 s, proof 1272961 bytes, verify 0.050 s, VERIFIED; statement 0x3047d8541367791f18fae465643c80b7fd3739db74f27f4edccd409e69064f6b proof sha256 0x9bd301ce9f169f4f680
23:32:57.422 ch3 before phase 1: A is on H1's tip (0 s)
23:32:57.496 ch3 phase 1 (real bytes, another block's statement): A's pool accepted (accepted)
23:34:57.604 ch3 phase 1: H1 verifies {"cacheAnswers":0,"calls":1,"contextRefusals":1,"sp1":0}; block 232 paid []; refusals 1
23:35:12.634 ch3 before phase 2: A is on H1's tip (15 s)
23:35:12.696 ch3 phase 2 (the same bytes, the honest record): A's pool accepted (accepted)
23:37:12.800 ch3 phase 2: H1 verifies {"cacheAnswers":1,"calls":2,"contextRefusals":1,"sp1":1}; block 92 paid [{"carrierNumber":"0x176","keyHash":"0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594","payout":"0xc3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3","shard":0,"wei":"0x8cc4b14bd509000"}]; carried [{"key":"0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594","carrier":"0x176","rejected":"","paidWei":"0x8cc4b14bd509000"},{"key":"0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594","carrier":"0x177","rejected":"shard already paid","paidWei":"0x0"}]
23:37:12.802 ch3 before phase 3: A is on H1's tip (0 s)
23:37:12.821 ch3 phase 3a (invalid bytes): A's pool accepted (accepted)
23:39:12.927 ch3 before phase 3b: A is on H1's tip (0 s)
23:39:12.945 ch3 phase 3b (the same invalid bytes, a later carrier): A's pool accepted (accepted)
23:41:13.052 ch3 phase 3: H1 verifies after 3a {"cacheAnswers":1,"calls":3,"contextRefusals":1,"sp1":2}, after 3b {"cacheAnswers":2,"calls":3,"contextRefusals":1,"sp1":2}; refusals 2 then 3
23:41:13.052 ch3 RESULT PASS: paid once=true; SP1 verifies=2 (expect 2: the real proof once, the invalid bytes once); context refusal read=true and cheap (no verifier)=true; cache answers=2 (expect >= 1); invalid refused again without a verify=true; /srv/builds/_scratch/fin-runs/results/s6-cache-history-6.json
lease: released 24 pool cores after 729 s, exit 0

View file

@ -0,0 +1,4 @@
#### 23:29:06Z s6-cache-history-6: node /srv/builds/_scratch/fin-runs/pair-ch-c591e63b-51cd-hu/igneumd (f6e67c31a02747d5) in-consensus verifier (exec pool Off) prove-bin /srv/builds/_scratch/fin-runs/prove-bin-51cd
rc=0
#### 23:41:15Z s6-cache-history-6 done rc=0
23:41:15Z watcher of s6-cache-history-6 exiting after 0 restart(s)

View file

@ -0,0 +1,111 @@
{
"case": "cache-history",
"node": "/srv/builds/_scratch/fin-runs/pair-fin-e189afb4/igneumd",
"proveBin": "/srv/builds/_scratch/fin-runs/prove-bin",
"pair": {
"shard": "0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a",
"aggregator": "0x474678f35f7545db28055d5e5bbc308231d84a5a072202087a2a8d5b09123896"
},
"startedAt": "2026-10-08T21:53:36.441Z",
"phases": {
"context": {
"block": 443,
"submit": {
"accepted": true,
"block": "0x2d4538c4ccf8dab4d0365c87dfc78fa9c2c9aef4a559aa3871430480226daba5",
"keyHash": "0x6ce6a6cfb1e7d69f52e0764cd4ad005d244097ee9773f7918c2ab532ad73d2df",
"new": true,
"number": "0x1bb",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"run": 0,
"cacheAnswers": 0
},
"refusals": []
},
"honest": {
"block": 100,
"submit": {
"accepted": true,
"block": "0x9b8f1030775a659645dde14253a598f982e0bd0b87eb63e7164d7de9aa173d3f",
"keyHash": "0x4a28017035561e93c93032f70dba67436b68506efd3ac761f608df142c8a7594",
"new": true,
"number": "0x64",
"reason": "accepted",
"shard": 0
},
"observed": {
"paid": [],
"carried": []
},
"verifies": {
"run": 0,
"cacheAnswers": 0
}
},
"invalid": {
"blocks": [
698,
800
],
"submits": [
{
"accepted": true,
"block": "0xd5c07da07b045e53646c90f591f0ac7a7ca0605a79f3862e38cecb5ffab253ed",
"keyHash": "0x89470283d097209eb0287ba87717938b8642c19b12bb37b5e30ed2a4328f2aaf",
"new": true,
"number": "0x2ba",
"reason": "accepted",
"shard": 0
},
{
"accepted": true,
"block": "0x74c38c46b7e0b43215a4e82384baa01d224a29660ede94d1e1bbf09d60a61a7a",
"keyHash": "0xaa474491707c6931a3d6d2fdb84e4d91fa3f3c57b7776b9c1fb1b01a1f96678a",
"new": true,
"number": "0x320",
"reason": "accepted",
"shard": 0
}
],
"verifies": {
"after3a": {
"run": 0,
"cacheAnswers": 0
},
"after3b": {
"run": 0,
"cacheAnswers": 0
}
},
"refusals": {
"after3a": 0,
"after3b": 0
},
"reasons": []
}
},
"proof": {
"block": 100,
"statement": "0xd9cbc90172d85d0dd962298c10d57603d369c319cbb1fbac206877e9c04e2432",
"native": "0xd9cbc90172d85d0dd962298c10d57603d369c319cbb1fbac206877e9c04e2432",
"bytes": 1272961,
"sha256": "0x3a37a8722d76ea3958f6062219ba400781a77a4dfd59c9e4a61f90a1c2fecb8f",
"hostLine": "RESULT compressed shard 0: prove 287.5 s, proof 1272961 bytes, verify 0.063 s, VERIFIED; statement 0xd9cbc90172d85d0dd962298c10d57603d369c319cbb1fbac206877e9c04e2432 proof sha256 0x3a37a8722d76ea3958f6062219ba400781a77a4dfd59c9e4a61f90a1c2fecb8f prover 0xc3c3c3c3c3c3c3c3c3C3C3c3C3C3C3c3C3C3c3c3 at 2026-10-08T22:01:04Z"
},
"verdict": {
"paidOnce": false,
"verifiesRun": 0,
"cacheAnswers": 0,
"contextRefused": false,
"invalidRefusedTwiceNoVerify": false,
"pass": false
},
"endedAt": "2026-10-08T22:09:05.964Z"
}

View file

@ -0,0 +1,23 @@
lease: 0 of 4 pool cores free (24 leased); waiting
lease: holding 8 pool cores (8,9,10,11,12,13,14,15, waited 988 s, class measure, mem 8 GB): finality native runs s6-cache-history (F01 two-node cache history, plan finality-native-runs-2026-10-09 section 6)
21:53:37.489 ch3 H1 up (pid 135652) after 1 s
21:53:38.499 ch3 H2 up (pid 135745) after 1 s
21:53:39.509 ch3 A up (pid 135838) after 1 s
21:53:39.515 ch3 phase 0: mining 90 s
21:55:09.630 ch3 block 100 0x9b8f1030775a659645dde14253a598f982e0bd0b87eb63e7164d7de9aa173d3f: H1's native statement for shard 0 and 0xc3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3: 0xd9cbc90172d85d0dd962298c10d57603d369c319cbb1fbac206877e9c04e2432
21:55:09.655 ch3 block 100 cut: wrote /tmp/igneum-fast-time-ch3/prove-100/block-100.json (16062 bytes, input commitment 0x81b970b08efd2bf5aee5ba0223a1ffba6ca25392c4bb774c75c63b483b46d203)
22:01:05.402 ch3 host: RESULT compressed shard 0: prove 287.5 s, proof 1272961 bytes, verify 0.063 s, VERIFIED; statement 0xd9cbc90172d85d0dd962298c10d57603d369c319cbb1fbac206877e9c04e2432 proof sha256 0x3a37a8722d76ea3958f
22:01:05.410 ch3 before phase 1: A is on H1's tip (0 s)
22:01:05.481 ch3 phase 1 (real bytes, another block's statement): A's pool accepted (accepted)
22:03:05.594 ch3 phase 1: H1 verifies {"run":0,"cacheAnswers":0}; block 443 paid []; refusals 0
22:03:05.599 ch3 before phase 2: A is on H1's tip (0 s)
22:03:05.645 ch3 phase 2 (the same bytes, the honest record): A's pool accepted (accepted)
22:05:05.717 ch3 phase 2: H1 verifies {"run":0,"cacheAnswers":0}; block 100 paid []; carried []
22:05:05.719 ch3 before phase 3: A is on H1's tip (0 s)
22:05:05.735 ch3 phase 3a (invalid bytes): A's pool accepted (accepted)
22:07:05.844 ch3 before phase 3b: A is on H1's tip (0 s)
22:07:05.857 ch3 phase 3b (the same invalid bytes, a later carrier): A's pool accepted (accepted)
22:09:05.964 ch3 phase 3: H1 verifies after 3a {"run":0,"cacheAnswers":0}, after 3b {"run":0,"cacheAnswers":0}; refusals 0 then 0
22:09:05.964 ch3 RESULT FAIL: paid once=false; SP1 verifies run=0 (expect 2); cache answers=0 (expect >= 2); context refusal read=false; invalid refused again without a verify=false; /srv/builds/_scratch/fin-runs/results/s6-cache-history.json
Terminated
lease: released 8 pool cores after 1920 s, exit 1

View file

@ -0,0 +1,4 @@
#### 21:37:08Z s6-cache-history: node /srv/builds/_scratch/fin-runs/pair-fin-e189afb4/igneumd (48e38006a7f8656b) prove-bin /srv/builds/_scratch/fin-runs/prove-bin
rc=1
#### 22:09:08Z s6-cache-history done rc=1
22:09:08Z watcher of s6-cache-history exiting after 0 restart(s)

View file

@ -896,4 +896,9 @@ The `verifies` counters the harness reads (`calls`, `sp1`, `contextRefusals`, `c
|---|---|---|---|
| 1 (21:53 to 22:09Z) | e189afb4, exec pool verifier Off (no `IGNEUM_PROOF_VERIFIER` in the runner's environment) | the host proved block 100 in 287.5 s on the 8 leased cores (VERIFIED, 1,272,961 bytes); H1 accepted every record "verify Off" and verified nothing, paid nothing; the harness's own verdict FAIL on every line; e189afb4 has no `verifies` field, so the counters read 0 | a run of the wrong node for this harness: kept as the record of why (`s6-cache-history-run1-verifier-off`) |
| 2 (22:15 to 22:30Z) | c591e63b, exec pool verifier = the build-2 `igneum-prove-host` (pin 0x51cd8cba…) against a node embedding the 2b1a81cb pin | the real bytes under another block's statement rejected by the host ("NOT VERIFIED", a full verify, 0.6 s); the same bytes under the honest record verified by the host (0.6 s) and paid once (633968600000000000 wei to 0xc3c3…, block 94, carrier 0x22c); the invalid bytes rejected at both carriers; `cacheAnswers` 2, `calls` and `sp1` 0 throughout: the subprocess verifier path never touches the in-process counters, and the node's own keys (2b1a81cb) differ from the host's (0x51cd8cba), so the in-consensus verifier could not have passed the proof | paid once holds; the counters the case is about were not exercised (the pair mismatch and the subprocess path): not a verdict on F01 |
| 3 | c591e63b rebuilt on the 0x51cd8cba pin (the enforced lane's `proving/igneum-prove/elf` from build-9), the matching host and export from build-9, the exec pool verifier Off so the body rule verifies in consensus (the shape of the lane's own passing run at 22:05Z, `docs/plans/proving-enforcement/cache-history-2.json` on its branch: paid once, 2 SP1 verifies, 2 cache answers) | (the row below when it lands) | |
| 3 (22:35 to 22:51Z) | c591e63b rebuilt on the 0x51cd8cba pin (the enforced lane's `proving/igneum-prove/elf` from build-9; `igneumd` 6886ff20b7cdd8a6…), the matching host and export from build-9, the exec pool verifier Off so the body rule verifies in consensus | A's own consensus refused every block that carried a record ("a carried proof record's proof does not verify: shard record block 433"), so no record reached H1's chain: the harness's A node relies on `IGNEUM_TEST_SKIP_PROOF_RULE=1`, which 3f672661 made a cargo feature (`kaspa-consensus/harness-unsafe`, the enforced lane's build-9 build has it: `cargo build … --features kaspad/igneum-pow,kaspa-consensus/harness-unsafe`, its builds.jsonl line) | the harness needs the harness-unsafe pair: rebuilt |
| 4 (22:53 to 23:13Z) | c591e63b + `kaspa-consensus/harness-unsafe` on the 0x51cd8cba pin (`igneumd` f6e67c31a02747d5…, the enforced lane's own build shape), 8 leased cores | the counters the case is about ran: phase 1 (the real bytes under another block's statement) refused as a cheap context refusal (`calls` 1, `contextRefusals` 1, `sp1` 0, no verifier run: F01's first half); phase 3 (invalid bytes under two carriers) verified once (`sp1` 1) and refused again from the cache at the later carrier (`cacheAnswers` 1, `sp1` unchanged, refusals 2 then 3: F01's second half). Phase 2 (the same real bytes under the honest record) was never carried: on 8 cores the host took 288.8 s to prove block 89 and A's rejoin after its refused phase-1 blocks took 185 s, so the honest record's first carrier was block 725, outside the 600-block record window ("segment 89 is outside the 600-block record window of carrier 725": A's own pool refused it, nothing reached H1), a timing margin of the harness under the lease, not the node's verdict | the two refusal halves of F01 PASS on this run; the paid-once half unmeasured (the record window): rerun on 24 cores |
| 5 (23:15 to 23:28Z) | the same pair, 24 leased cores (the host proved block 94 in 109.6 s; A rejoined in 5 to 30 s) | every record, the honest one included, refused by H1 as "the proof claims program id 0x51cd8cba…, which the carrier's epoch does not accept (accepted: 0x2b1a81cb…)": the harness names the accepted pair from `proving/igneum-prove/elf/manifest.json` beside it on the box, and that copy was still the 2b1a81cb manifest of the first setup while the node and the host carried 0x51cd8cba (the lane's own fault; the phase-1 and phase-2 refusals of this run are program-id refusals counted as context refusals: `contextRefusals` 2, `sp1` 1 for the invalid bytes, `cacheAnswers` 1) | not a verdict on F01: the manifest replaced, rerun |
| 6 (23:29 to 23:41Z, 00:29 to 00:41 UK) | the same pair (c591e63b + harness-unsafe, 0x51cd8cba pin, `igneumd` f6e67c31a02747d5…), the matching manifest beside the harness, 24 leased cores, the exec pool verifier Off (the body rule verifies in consensus), zero restarts | phase 1: the real proof's bytes under another block's statement (block 232) refused by H1 and H2 as a cheap context refusal (`calls` 1, `contextRefusals` 1, `sp1` 0: no verifier run, nothing cached); phase 2: the same bytes under the honest record (block 92) verified once in consensus (H1 0.259 s, H2 0.244 s; `sp1` 1) and paid exactly once, on both honest nodes at the same chain block 374 the same 633964200000000000 wei to 0xc3c3…; phase 3: the invalid bytes verified once at their first carrier (`sp1` 2) and refused again at a later carrier from the cache (`cacheAnswers` 1 to 2, `sp1` unchanged, refusals 2 then 3). H1's and H2's verdicts identical for all three records (232 refused, 92 verified, 481 refused) and their paid maps identical (one payout) | PASS: F01 on real nodes: a verdict is a fact record, never a cached refusal; the two honest nodes agree block for block and payout for payout |
Summary of section 6: the F01 case passes on the cache-history-node line (c591e63b, the 2.0.2 line ab489403 plus the verify counters) built with `kaspa-consensus/harness-unsafe` for the carrier node, on the pin the host embeds; the five earlier runs are the record of each setup fault (the exec pool verifier Off on a node without the counters, a host pin that was not the node's, the harness-unsafe feature missing, the 8-core lease against the 600-block record window, a stale manifest beside the harness), none a node fault. The plan's "known-failed shape first" (the pre-fix node's cached context refusal replayed under a later carrier) is not run here: it is the enforced lane's own known-failed line on its branch (its row), and the refusal path on this line is the cheap pre-check that caches nothing.

View file

@ -12,7 +12,7 @@
"cell": "node:finality-realnode",
"status": "PASS",
"evidence": "sim/finality-attacks-results/native-2026-10-09/s1b2.md",
"note": "the finality-runs lane's native rows on the 2.0.2 line e189afb4 (tools/finality-attacks/v4.mjs, three igneumd on the 60x file, WARM 230 SPLIT 420 HEAL 400 BPS 1, real nodes on build-5 and build-6 under the lease pool and pid watchers, zero restarts): the 40/40/20 case past the window (1a: every island pauses, 0 conflicts; 1b runs 2 and 3: exactly the island above half of the anchored table recovers after a full window with lockKind recovery on its node, the others pause and join its chain, 0 conflicts, 0 disagreement; 1b run 1: the island drew 43.22 percent by Poisson jitter and paused, as the rule says; 1c: the equivocator mining on both islands at 27.7 percent of the cut table produced the two recovery certificates of 6.5, outside the bound, the anchored history untouched; 1d: pause only, no lock anywhere, the equivocator stripped at the heal), the pause-only alternative with a fresh node joining from genesis and a kept-datadir restart into the heal (2: the fresh node holds the 12 pre-heal locks 2 s after its start by carried certificates, 0 disagreement, the pause ends within two intervals of the reconnect, 4 epoch reference blocks inside the pause with mining continuing), leave, strip, restart and out-of-order certificate arrival (3a to 3d PASS). Rows: sim/results_v2.md, the section named in evidence_dir. Two node findings owed (F04 / VER-08 and 3.11.4), recorded in the rows: a recovery certificate reads lockKind final on every node that did not form it (the stamp is local to evaluate; ingest records an ordinary lock), and a node holding two certificates at one index reports active and keeps locking instead of finality_active false, reason conflict.",
"note": "the finality-runs lane's native rows on the 2.0.2 line e189afb4 (tools/finality-attacks/v4.mjs, three igneumd on the 60x file, WARM 230 SPLIT 420 HEAL 400 BPS 1, real nodes on build-5 and build-6 under the lease pool and pid watchers, zero restarts): the 40/40/20 case past the window (1a: every island pauses, 0 conflicts; 1b runs 2 and 3: exactly the island above half of the anchored table recovers after a full window with lockKind recovery on its node, the others pause and join its chain, 0 conflicts, 0 disagreement; 1b run 1: the island drew 43.22 percent by Poisson jitter and paused, as the rule says; 1c: the equivocator mining on both islands at 27.7 percent of the cut table produced the two recovery certificates of 6.5, outside the bound, the anchored history untouched; 1d: pause only, no lock anywhere, the equivocator stripped at the heal), the pause-only alternative with a fresh node joining from genesis and a kept-datadir restart into the heal (2: the fresh node holds the 12 pre-heal locks 2 s after its start by carried certificates, 0 disagreement, the pause ends within two intervals of the reconnect, 4 epoch reference blocks inside the pause with mining continuing), leave, strip, restart and out-of-order certificate arrival (3a to 3d PASS). Rows: sim/results_v2.md, the section named in evidence_dir. Two node findings owed (F04 / VER-08 and 3.11.4), recorded in the rows: a recovery certificate reads lockKind final on every node that did not form it (the stamp is local to evaluate; ingest records an ordinary lock), and a node holding two certificates at one index reports active and keeps locking instead of finality_active false, reason conflict. Section 6 (F01, the two-node cache-history case) PASS on real nodes at 00:41 UK 9 October on the cache-history-node pair c591e63b + harness-unsafe (run 6; sim/finality-attacks-results/native-2026-10-09/s6-cache-history-6.json): the context refusal cheap, the honest record verified once and paid once on both honest nodes at the same chain block, the invalid bytes refused again from the cache; F01's cell is the enforced lane's to record.",
"method": "native"
},
{

View file

@ -15,3 +15,7 @@ stripped, `override-60x-88-keys.json` here), `prove-bin/` for section 6.
- `run-s6.sh` / `watch-s6.sh`: section 6, the enforced lane's `infra/fast-time/proving-cache-history.mjs` on the
cache-history-node pair with `IGNEUM_PROOF_VERIFIER=<igneum-prove-host>` exported (without it the honest nodes start with
the verifier Off and nothing is verified or paid: the lane's first run, kept as `s6-cache-history-run1-verifier-off`).
Field names in the landed result JSONs: every vote-key hash is under `keyHash` (`carried[].key` of the cache-history harness's
output is renamed on landing; `eKey`, `leaver`, `stripped` of v4.mjs's first runs are `equivocatorHash`, `leaverHash`,
`strippedHash`), so the tree's secrets check (a 64-hex value beside "key") reads them as the public identifiers they are.