Merge master 6190cbe5b into verdict-cache-fix under the master-landing lock

This commit is contained in:
igneum-labs 2026-10-08 21:36:59 +00:00
commit 3e31a67a90
24 changed files with 1425 additions and 135 deletions

View file

@ -0,0 +1,10 @@
# The chain-seed draw on the frozen object: the freeze's (c''') read (8 October 2026, 21:5x to 22:3x UK)
The coordinator's blocking read: the research pack hl-v6-all (4de7b836cc40a4ea) was drawn with the genesis epoch seed over the node1 state stream, a pair the node's class v5 pairing check refuses; on the chain's own seed the engine draws another program. The node lane read the live devnet-4 node's program-id line verbatim at 21:41:51 UK: epoch seed af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3 (the block hash), era 0:edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07 (the era seed stays the genesis hex), day 20730 (day hex 69676e65756d2d6461792ffa50000000000000), the node1 state (block 159357, root 1c583d35..., file sha abb58003...), class mx8+sh256x27+state+reg64c+fold+rw, generator 6, attempt 0: program **2a1d6caab4c24564**. The harness on the frozen tree 1a938abe4 (class-v6-census-all4 bdbe85bfb, binary f4e93766d5a3dc46 on build-4) reproduces that id from those inputs on the class-string path; the second column is the draw with the block hash as the era too (442a1691b3e3507f, era label 93a14ac6), which an earlier line named and the node lane's read ruled out; it is kept as the research comparison. Both rows on build-4 under the lease pool at 21:5x UK, the sitestats and census TSVs beside this file.
| Draw | Program (class) | The pair | (A) the whole rule with the (c''') floor on the program; per site over 2^20 evaluations | (B) the attempts census, 256 chain-shaped seeds under the pair's era and state |
|---|---|---|---|---|
| **the engine's draw (the freeze's read)** | 2a1d6caab4c24564 (mx8-erad810f22d+sh256x27+state+reg64c+fold+rw) | seed af89be5d..., era 0:edc4fa84..., day 20730, node1 state | ACCEPTED; min site ratio 0.99988, under 0.98: 0, under 0.995: 0; largest bucket +6.25 sigma; worst free bit -3.06 sigma; sites over 6 sigma 0 | 256 of 256, 0 exhausted at 256, r 0.129, mean attempt 0.15, max 2, (c''') refused 0 of 294; parts a' 23 b 7 a 4 reg64 3 c 1 |
| the research comparison | 442a1691b3e3507f (mx8-era93a14ac6+sh256x27+state+reg64c+fold+rw) | seed af89be5d..., era 0:af89be5d..., day 20730, node1 state | ACCEPTED; min site ratio 0.99992, under 0.98: 0, under 0.995: 0; largest bucket +5.25 sigma; worst free bit 2.91 sigma; sites over 6 sigma 0 | 256 of 256, 0 exhausted at 256, r 0.129, mean attempt 0.15, max 2, (c''') refused 0 of 294; parts a' 23 b 7 a 4 reg64 3 c 1 |
Verdict: the engine's draw 2a1d6caab4c24564 PASSES the sub-version 3 rule with the (c''') floor (every site clear of 0.98 and 0.995 at 0.99988, the largest 256-item bucket +6.25 sigma on one site, which the rule does not bound and the record's clean full-window sites read to +5.5, the worst free index bit 3.06 sigma, no site over 6 sigma) and the attempts census (256 of 256 chain-shaped seeds accepted inside two attempts, 0 exhausted, 0 (c''') refusals: the same 294 candidates and parts as the research pack's, since the census draws its own seeds under the pair's era and state). The research comparison reads the same on every line but the bucket (+5.25). The freeze's object on the chain's own seed is sound under the rule; the research pack's rows (census-packs.md section 7) are the same class on the genesis seed.

View file

@ -0,0 +1,259 @@
# census class mx8+sh256x27+state+reg64c+fold+rw eras [0] seeds 256 era-widths 4 state /srv/builds/v6-census/packs/node1-state.igsd1 erahex af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3 weights base bittest off bin f4e93766d5a3dc46 start 2026-10-08T20:50:59Z host igneum-build-4 threads 16
cand era seed candidates accepted attempt bit_z bit_site bit_bit reasons
census 0 8 1 1 0 nan - -
census 0 5 1 1 0 3.3 3 21
census 0 4 1 1 0 3.4 5 23
census 0 10 1 1 0 nan - -
census 0 12 1 1 0 3.2 1 23
census 0 9 1 1 0 3.3 10 22
census 0 7 1 1 0 2.8 12 25
census 0 3 1 1 0 2.8 0 24
census 0 0 1 1 0 nan - -
census 0 14 1 1 0 nan - -
census 0 11 1 1 0 2.6 5 22
census 0 2 1 1 0 2.9 13 1
census 0 13 1 1 0 3.1 0 20
census 0 15 1 1 0 3.3 5 21
census 0 6 1 1 0 nan - -
census 0 1 1 1 0 nan - -
census 0 20 1 1 0 nan - -
census 0 17 1 1 0 2.7 1 26
census 0 25 2 1 1 nan - - a=1;
census 0 23 1 1 0 nan - -
census 0 18 1 1 0 3.8 12 7
census 0 24 1 1 0 2.8 14 19
census 0 19 1 1 0 3.0 10 17
census 0 27 1 1 0 nan - -
census 0 16 1 1 0 nan - -
census 0 28 1 1 0 nan - -
census 0 22 1 1 0 nan - -
census 0 29 1 1 0 3.1 9 18
census 0 26 1 1 0 3.3 1 7
census 0 30 1 1 0 2.6 3 7
census 0 21 2 1 1 3.0 4 26 reg64=1;
census 0 31 2 1 1 nan - - b=1;
census 0 37 1 1 0 3.4 8 10
census 0 34 1 1 0 nan - -
census 0 32 1 1 0 nan - -
census 0 35 1 1 0 3.3 15 16
census 0 36 2 1 1 2.9 14 6 b=1;
census 0 38 1 1 0 3.1 7 13
census 0 33 1 1 0 3.3 0 6
census 0 39 1 1 0 nan - -
census 0 43 1 1 0 nan - -
census 0 41 1 1 0 nan - -
census 0 45 1 1 0 nan - -
census 0 42 2 1 1 nan - - a'=1;
census 0 46 1 1 0 nan - -
census 0 44 2 1 1 3.0 1 1 a'=1;
census 0 47 1 1 0 nan - -
census 0 40 1 1 0 2.6 13 22
census 0 52 1 1 0 nan - -
census 0 50 1 1 0 nan - -
census 0 49 1 1 0 2.8 6 1
census 0 48 1 1 0 2.9 5 2
census 0 55 1 1 0 3.4 8 9
census 0 53 2 1 1 3.4 11 21 b=1;
census 0 54 1 1 0 3.4 3 2
census 0 56 2 1 1 nan - - a'=1;
census 0 51 2 1 1 3.5 15 3 reg64=1;
census 0 60 1 1 0 nan - -
census 0 58 1 1 0 nan - -
census 0 57 1 1 0 nan - -
census 0 61 1 1 0 nan - -
census 0 59 1 1 0 3.0 3 16
census 0 62 1 1 0 nan - -
census 0 64 1 1 0 2.9 12 26
census 0 63 1 1 0 3.5 0 19
census 0 66 1 1 0 3.0 15 8
census 0 67 2 1 1 4.0 1 2 a=1;
census 0 68 1 1 0 3.0 11 7
census 0 69 1 1 0 nan - -
census 0 70 1 1 0 3.3 6 6
census 0 72 1 1 0 3.2 11 5
census 0 76 1 1 0 nan - -
census 0 74 1 1 0 2.9 8 21
census 0 71 2 1 1 nan - - a=1;
census 0 75 1 1 0 nan - -
census 0 65 1 1 0 nan - -
census 0 77 1 1 0 3.2 6 14
census 0 78 1 1 0 3.5 3 25
census 0 73 1 1 0 nan - -
census 0 80 2 1 1 nan - - a'=1;
census 0 81 1 1 0 nan - -
census 0 79 1 1 0 3.4 13 24
census 0 82 1 1 0 3.8 8 0
census 0 83 1 1 0 3.3 3 24
census 0 84 1 1 0 nan - -
census 0 85 1 1 0 3.4 4 25
census 0 86 1 1 0 nan - -
census 0 88 1 1 0 nan - -
census 0 87 2 1 1 nan - - a'=1;
census 0 91 1 1 0 2.7 1 23
census 0 89 1 1 0 nan - -
census 0 92 1 1 0 3.2 3 10
census 0 90 2 1 1 3.1 7 8 b=1;
census 0 94 1 1 0 3.5 1 15
census 0 93 1 1 0 nan - -
census 0 95 2 1 1 2.9 4 7 a'=1;
census 0 97 1 1 0 3.2 6 10
census 0 96 1 1 0 3.6 1 26
census 0 99 1 1 0 3.3 1 23
census 0 101 1 1 0 nan - -
census 0 103 1 1 0 nan - -
census 0 104 1 1 0 nan - -
census 0 102 1 1 0 2.9 3 14
census 0 98 1 1 0 nan - -
census 0 100 1 1 0 3.9 10 2
census 0 105 1 1 0 nan - -
census 0 106 1 1 0 nan - -
census 0 107 1 1 0 3.0 15 10
census 0 108 1 1 0 2.8 9 25
census 0 109 1 1 0 nan - -
census 0 113 1 1 0 nan - -
census 0 112 1 1 0 nan - -
census 0 111 1 1 0 3.3 13 8
census 0 110 1 1 0 3.2 9 11
census 0 114 1 1 0 nan - -
census 0 115 2 1 1 nan - - b=1;
census 0 116 1 1 0 3.4 12 10
census 0 118 1 1 0 3.0 4 20
census 0 117 1 1 0 nan - -
census 0 120 1 1 0 3.0 11 0
census 0 119 1 1 0 nan - -
census 0 121 1 1 0 3.0 3 5
census 0 122 1 1 0 2.8 0 12
census 0 126 1 1 0 3.0 0 19
census 0 127 2 1 1 nan - - a=1;
census 0 128 1 1 0 3.4 5 6
census 0 129 2 1 1 2.9 11 22 a'=1;
census 0 124 1 1 0 nan - -
census 0 130 1 1 0 nan - -
census 0 131 1 1 0 nan - -
census 0 132 1 1 0 nan - -
census 0 133 1 1 0 nan - -
census 0 123 1 1 0 3.4 13 21
census 0 134 1 1 0 3.3 3 12
census 0 125 2 1 1 3.3 14 6 b=1;
census 0 135 1 1 0 nan - -
census 0 136 1 1 0 nan - -
census 0 137 1 1 0 nan - -
census 0 138 1 1 0 3.0 5 13
census 0 140 2 1 1 nan - - a'=1;
census 0 143 1 1 0 nan - -
census 0 141 1 1 0 3.3 9 23
census 0 139 1 1 0 nan - -
census 0 142 2 1 1 2.8 10 22 a'=1;
census 0 144 1 1 0 nan - -
census 0 145 1 1 0 3.4 2 23
census 0 147 1 1 0 3.2 2 16
census 0 146 1 1 0 3.4 1 5
census 0 151 1 1 0 2.5 2 6
census 0 150 1 1 0 3.9 14 11
census 0 148 1 1 0 nan - -
census 0 152 1 1 0 2.7 9 4
census 0 153 1 1 0 3.0 13 13
census 0 154 2 1 1 nan - - a'=1;
census 0 155 1 1 0 nan - -
census 0 157 1 1 0 nan - -
census 0 158 1 1 0 nan - -
census 0 159 1 1 0 3.8 15 23
census 0 156 1 1 0 3.4 1 25
census 0 149 1 1 0 nan - -
census 0 160 1 1 0 nan - -
census 0 162 1 1 0 2.5 13 15
census 0 163 2 1 1 3.4 1 20 a'=1;
census 0 166 1 1 0 nan - -
census 0 165 1 1 0 nan - -
census 0 164 1 1 0 nan - -
census 0 167 3 1 2 nan - - a'=2;
census 0 168 1 1 0 2.6 7 10
census 0 170 1 1 0 3.3 14 2
census 0 173 3 1 2 2.7 9 6 a'=2;
census 0 171 1 1 0 3.4 3 1
census 0 172 2 1 1 3.5 3 1 a'=1;
census 0 161 1 1 0 nan - -
census 0 174 1 1 0 nan - -
census 0 175 1 1 0 nan - -
census 0 176 1 1 0 nan - -
census 0 169 2 1 1 nan - - a'=1;
census 0 177 1 1 0 nan - -
census 0 180 1 1 0 nan - -
census 0 178 1 1 0 nan - -
census 0 179 1 1 0 nan - -
census 0 182 1 1 0 3.1 14 3
census 0 183 1 1 0 nan - -
census 0 181 1 1 0 3.4 15 23
census 0 184 2 1 1 3.5 12 10 a'=1;
census 0 186 2 1 1 2.8 4 24 a'=1;
census 0 187 1 1 0 nan - -
census 0 185 1 1 0 nan - -
census 0 189 1 1 0 2.8 14 12
census 0 190 2 1 1 nan - - a'=1;
census 0 192 1 1 0 nan - -
census 0 193 1 1 0 2.8 4 4
census 0 195 1 1 0 nan - -
census 0 194 1 1 0 nan - -
census 0 196 1 1 0 3.3 14 19
census 0 191 1 1 0 nan - -
census 0 188 1 1 0 3.5 15 15
census 0 197 1 1 0 2.8 7 0
census 0 198 1 1 0 3.0 12 9
census 0 200 1 1 0 2.8 11 1
census 0 199 1 1 0 nan - -
census 0 202 1 1 0 2.6 8 0
census 0 201 1 1 0 3.2 3 25
census 0 203 1 1 0 nan - -
census 0 204 1 1 0 nan - -
census 0 205 1 1 0 2.6 5 0
census 0 207 1 1 0 nan - -
census 0 206 2 1 1 3.2 12 25 a'=1;
census 0 208 1 1 0 2.5 8 3
census 0 209 1 1 0 3.2 5 17
census 0 210 1 1 0 2.8 9 18
census 0 211 1 1 0 nan - -
census 0 212 1 1 0 nan - -
census 0 213 1 1 0 3.1 9 6
census 0 215 1 1 0 nan - -
census 0 216 1 1 0 nan - -
census 0 218 2 1 1 3.3 8 1 a'=1;
census 0 219 1 1 0 nan - -
census 0 220 1 1 0 nan - -
census 0 217 1 1 0 3.4 5 11
census 0 221 1 1 0 nan - -
census 0 222 1 1 0 nan - -
census 0 214 1 1 0 3.3 5 21
census 0 223 1 1 0 nan - -
census 0 225 1 1 0 2.8 0 15
census 0 224 1 1 0 3.3 3 4
census 0 226 1 1 0 3.1 7 16
census 0 228 1 1 0 nan - -
census 0 229 1 1 0 nan - -
census 0 227 1 1 0 3.5 12 25
census 0 234 1 1 0 nan - -
census 0 232 1 1 0 nan - -
census 0 235 1 1 0 nan - -
census 0 237 1 1 0 nan - -
census 0 236 1 1 0 3.1 0 18
census 0 238 1 1 0 3.2 15 3
census 0 239 1 1 0 nan - -
census 0 230 1 1 0 3.5 4 0
census 0 240 2 1 1 nan - - b=1;
census 0 233 2 1 1 2.9 11 20 c=1;
census 0 241 1 1 0 3.2 7 17
census 0 243 1 1 0 3.1 10 18
census 0 242 1 1 0 nan - -
census 0 231 1 1 0 nan - -
census 0 245 1 1 0 nan - -
census 0 247 1 1 0 2.8 1 4
census 0 246 2 1 1 2.8 10 23 a'=1;
census 0 244 2 1 1 nan - - reg64=1;
census 0 248 1 1 0 2.7 11 8
census 0 249 1 1 0 3.4 15 15
census 0 251 1 1 0 nan - -
census 0 250 1 1 0 3.4 15 24
census 0 252 1 1 0 3.2 7 18
census 0 253 1 1 0 3.4 6 10
census 0 254 1 1 0 3.7 10 20
census 0 255 1 1 0 3.1 8 20
# end 2026-10-08T20:52:19Z rows=257
Can't render this file because it has a wrong number of fields in line 2.

View file

@ -0,0 +1 @@
# pack cs-era-block class mx8+sh256x27+state+reg64c+fold+rw epoch af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3 day 69676e65756d2d6461792ffa50000000000000 era af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3 state /srv/builds/v6-census/packs/node1-state.igsd1 day-index 20730 era-widths 4 bin f4e93766d5a3dc46 f8 host igneum-build-4 start 2026-10-08T20:50:55Z

View file

@ -0,0 +1,67 @@
seed "igneum-epoch/af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3" generator v6 class mx8-era93a14ac6+sh256x27+state+reg64c+fold+rw attempt 0 program id 442a1691b3e3507f seed words 9c8caa3d 83537296 f21169a4 12d4d157 66e0ce33 cc049080 8579c352 4c6e4ac9
op mix load=16 add=10 shfl=8 rotl=5 rotr=5 xor=5 mad=4 mul=4 sub=4 mulhi=3 loads/hash 128 bytes/hash 512
era 93a14ac6 (igneum-era/0/af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3): width 4 B, stride mul 0x5ea34e0b rot 12, interleave [10, 11, 13, 14], windows (site:shrink:offset) 1:0:0 15:1:0 27:2:1 28:0:0 30:1:1 32:1:0 33:2:3 42:0:0 48:1:0 52:0:0 55:2:2 56:0:0 58:1:1 59:0:0 60:1:0 62:1:0
0: mad dst=7 src=3 src2=3 imm=0xd095f540 imm2=0xd3789b38 rot=19 bit=4 mask=4
1: load dst=1 src=7 src2=5 imm=0x390bbbd7 imm2=0x1b44071a rot=5 bit=13 mask=16
2: rotl dst=0 src=6 src2=7 imm=0xcd1e3e94 imm2=0xf0479df0 rot=29 bit=10 mask=2
3: shfl dst=5 src=6 src2=4 imm=0x78c099f8 imm2=0xc6d6c6bc rot=25 bit=21 mask=1
4: mulhi dst=5 src=3 src2=1 imm=0x2e8aa8d1 imm2=0x446c336a rot=23 bit=31 mask=16
5: rotl dst=7 src=1 src2=0 imm=0x46701a4a imm2=0xc2255717 rot=27 bit=20 mask=8
6: mad dst=4 src=2 src2=0 imm=0x487da55c imm2=0xf4675ef7 rot=26 bit=1 mask=8
7: rotl dst=2 src=6 src2=4 imm=0x74fdbac4 imm2=0x30e49db4 rot=11 bit=9 mask=16
8: mul dst=6 src=0 src2=4 imm=0x69e895ee imm2=0x66ebcedd rot=24 bit=11 mask=16
9: shfl dst=6 src=1 src2=7 imm=0x1510cbd0 imm2=0x607acada rot=4 bit=3 mask=2
10: add dst=0 src=2 src2=2 imm=0x33a68b0c imm2=0xffb7f024 rot=27 bit=1 mask=4
11: xor dst=0 src=2 src2=4 imm=0x61b96f54 imm2=0x7d5468b0 rot=30 bit=28 mask=8
12: sub dst=7 src=4 src2=1 imm=0x39217118 imm2=0x248e3f9b rot=29 bit=7 mask=16
13: shfl dst=1 src=4 src2=2 imm=0x6c12c43b imm2=0x6b60595d rot=20 bit=23 mask=8
14: xor dst=1 src=0 src2=0 imm=0x030181c6 imm2=0x52fbbc27 rot=1 bit=28 mask=4
15: load dst=5 src=0 src2=2 imm=0x5b20e3f6 imm2=0xa84ab3b3 rot=24 bit=31 mask=8
16: xor dst=5 src=4 src2=4 imm=0x6fc104e8 imm2=0x1a522a5c rot=27 bit=8 mask=8
17: shfl dst=6 src=7 src2=6 imm=0x5f5b071a imm2=0x39dc91da rot=16 bit=6 mask=16
18: rotr dst=2 src=7 src2=0 imm=0x07b3a28c imm2=0x33193f0c rot=18 bit=3 mask=1
19: add dst=4 src=1 src2=5 imm=0x0229d185 imm2=0x51cb8f70 rot=29 bit=26 mask=1
20: add dst=4 src=7 src2=1 imm=0xc39836f7 imm2=0x0c001b55 rot=8 bit=7 mask=16
21: add dst=0 src=3 src2=4 imm=0xb7d06b34 imm2=0x1ae7a0ac rot=9 bit=3 mask=4
22: mad dst=2 src=6 src2=7 imm=0x0978477e imm2=0x2fec3e13 rot=21 bit=3 mask=16
23: add dst=3 src=5 src2=7 imm=0x95cba5dd imm2=0x22934c58 rot=8 bit=19 mask=2
24: mulhi dst=5 src=3 src2=0 imm=0x14b79a1b imm2=0xccae3d33 rot=5 bit=15 mask=16
25: xor dst=0 src=3 src2=7 imm=0x22f74d7f imm2=0x782f1722 rot=18 bit=25 mask=4
26: mul dst=6 src=3 src2=6 imm=0xf774717f imm2=0x3a1a2c3a rot=28 bit=25 mask=16
27: load dst=3 src=7 src2=2 imm=0xf0d88d7d imm2=0x0fc8051c rot=14 bit=1 mask=16
28: load dst=3 src=0 src2=5 imm=0xac8eb588 imm2=0x57844c72 rot=12 bit=8 mask=2
29: rotr dst=6 src=7 src2=1 imm=0x89b07c78 imm2=0x90c747d7 rot=13 bit=30 mask=1
30: load dst=1 src=4 src2=7 imm=0xdd34b81d imm2=0x96e5cb94 rot=26 bit=16 mask=1
31: add dst=1 src=2 src2=3 imm=0x2fa2e27a imm2=0xbf8507da rot=27 bit=5 mask=1
32: load dst=2 src=1 src2=1 imm=0x4df1d479 imm2=0xea698909 rot=29 bit=12 mask=4
33: load dst=3 src=2 src2=1 imm=0xaa35122f imm2=0x01516545 rot=12 bit=18 mask=1
34: mul dst=3 src=5 src2=7 imm=0x6a941ac2 imm2=0xb56c91d9 rot=24 bit=16 mask=1
35: rotl dst=1 src=6 src2=7 imm=0xe8aa4cfe imm2=0x0d359401 rot=2 bit=3 mask=2
36: shfl dst=1 src=5 src2=1 imm=0xd090168f imm2=0x3ea71d89 rot=9 bit=3 mask=4
37: sub dst=0 src=4 src2=1 imm=0xdbda427b imm2=0xd9607488 rot=5 bit=12 mask=2
38: rotr dst=4 src=2 src2=7 imm=0xe3e3804c imm2=0xccdc9668 rot=27 bit=13 mask=16
39: mulhi dst=4 src=1 src2=2 imm=0x5d14fe55 imm2=0xb6db1d85 rot=17 bit=18 mask=4
40: rotr dst=0 src=1 src2=4 imm=0xc77a2d1f imm2=0x5a85c407 rot=10 bit=31 mask=1
41: add dst=2 src=3 src2=1 imm=0xfe28f51d imm2=0xf439f8e7 rot=5 bit=8 mask=2
42: load dst=1 src=2 src2=5 imm=0xe1b6fb46 imm2=0x23bb6ba4 rot=29 bit=22 mask=1
43: xor dst=7 src=5 src2=6 imm=0x34988c9d imm2=0xf8c6c4a8 rot=2 bit=21 mask=8
44: shfl dst=6 src=2 src2=2 imm=0x14f4d589 imm2=0x868d3c75 rot=29 bit=31 mask=8
45: mul dst=1 src=4 src2=1 imm=0x081dddbd imm2=0xc8e4de44 rot=23 bit=11 mask=16
46: rotl dst=0 src=6 src2=2 imm=0xaec2cb92 imm2=0x03157ee4 rot=14 bit=5 mask=16
47: add dst=1 src=3 src2=7 imm=0xf1719bbd imm2=0x14bb2234 rot=24 bit=7 mask=16
48: load dst=1 src=6 src2=6 imm=0x30e39813 imm2=0x9ce47150 rot=22 bit=10 mask=1
49: sub dst=5 src=1 src2=7 imm=0xaabdf6d2 imm2=0x0688a461 rot=13 bit=28 mask=2
50: add dst=2 src=3 src2=6 imm=0xb129b2b4 imm2=0x4611fe29 rot=3 bit=14 mask=16
51: sub dst=0 src=2 src2=1 imm=0xfe651d02 imm2=0x7c1929a9 rot=22 bit=31 mask=4
52: load dst=4 src=0 src2=4 imm=0xf906070a imm2=0xf301cff4 rot=5 bit=25 mask=1
53: mad dst=3 src=1 src2=4 imm=0xab213c09 imm2=0xf6d6f3fa rot=16 bit=28 mask=1
54: shfl dst=4 src=1 src2=7 imm=0xf6dafbae imm2=0xdbfc32c7 rot=12 bit=1 mask=16
55: load dst=6 src=5 src2=5 imm=0x881eaf9c imm2=0x7c50f5c8 rot=25 bit=22 mask=16
56: load dst=2 src=4 src2=1 imm=0x899bf6e0 imm2=0xbde5b6ee rot=24 bit=10 mask=8
57: shfl dst=5 src=7 src2=6 imm=0xea9c50d2 imm2=0xd2a8c99b rot=12 bit=28 mask=1
58: load dst=1 src=5 src2=3 imm=0xad4912ca imm2=0x546d00b2 rot=7 bit=1 mask=1
59: load dst=2 src=7 src2=1 imm=0x37cea58f imm2=0x13e31ff0 rot=21 bit=21 mask=16
60: load dst=2 src=1 src2=2 imm=0x33f9a95e imm2=0xda1c8a2e rot=22 bit=28 mask=8
61: add dst=3 src=2 src2=2 imm=0x0a051d32 imm2=0xe9ed866d rot=30 bit=1 mask=4
62: load dst=0 src=2 src2=2 imm=0xab1dd54b imm2=0xc9fcaae2 rot=9 bit=2 mask=1
63: rotr dst=5 src=0 src2=5 imm=0x1f0279bd imm2=0x223e7b9c rot=11 bit=3 mask=16

View file

@ -0,0 +1,20 @@
program id 442a1691b3e3507f class mx8-era93a14ac6+sh256x27+state+reg64c+fold+rw attempt 0 generator v6
rule: ACCEPTED, distinct 128.000 per hash, saturated 0, bias max 66
site instr win off width distinct ratio under_c2 under_c3 bucket_ratio bucket_z bucket_id bit_z bit top_count
0 1 0 0 1 1046493 0.99997 0 0 2.250 5.00 43706 -1.72 14 3
1 15 1 0 1 1044395 0.99992 0 0 1.688 3.89 10447 2.09 18 3
2 27 2 1 1 1040460 1.00007 0 0 1.531 4.25 21546 2.38 5 3
3 28 0 0 1 1046585 1.00005 0 0 2.062 4.25 11544 -2.58 22 3
4 30 1 1 1 1044506 1.00002 0 0 1.844 4.77 41807 2.26 20 3
5 32 1 0 1 1044487 1.00001 0 0 1.844 4.77 26116 1.91 0 3
6 33 2 3 1 1040412 1.00003 0 0 1.500 4.00 49321 -1.51 23 3
7 42 0 0 1 1046488 0.99996 0 0 2.125 4.50 9835 -2.25 0 3
8 48 1 0 1 1044552 1.00007 0 0 1.812 4.60 17972 -1.87 6 3
9 52 0 0 1 1046470 0.99994 0 0 2.188 4.75 49022 1.54 17 3
10 55 2 2 1 1040461 1.00007 0 0 1.500 4.00 35424 1.72 24 3
11 56 0 0 1 1046571 1.00004 0 0 2.312 5.25 12278 -1.84 2 3
12 58 1 1 1 1044543 1.00006 0 0 1.750 4.24 33127 -2.12 16 3
13 59 0 0 1 1046537 1.00001 0 0 2.125 4.50 1374 2.91 3 3
14 60 1 0 1 1044566 1.00008 0 0 1.812 4.60 5226 -2.44 19 3
15 62 1 0 1 1044430 0.99995 0 0 1.906 5.13 2829 -1.92 6 3
summary: sites 16, min ratio 0.99992, under 0.98: 0, under 0.995: 0, bucket z max 5.25, bit z max 2.91, sites over 6 sigma 0, 3.9 s
Can't render this file because it has a wrong number of fields in line 3.

View file

@ -0,0 +1,259 @@
# census class mx8+sh256x27+state+reg64c+fold+rw eras [0] seeds 256 era-widths 4 state /srv/builds/v6-census/packs/node1-state.igsd1 erahex edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07 weights base bittest off bin f4e93766d5a3dc46 start 2026-10-08T20:50:55Z host igneum-build-4 threads 16
cand era seed candidates accepted attempt bit_z bit_site bit_bit reasons
census 0 4 1 1 0 2.9 15 4
census 0 6 1 1 0 nan - -
census 0 14 1 1 0 3.5 12 21
census 0 5 1 1 0 nan - -
census 0 10 1 1 0 3.0 0 2
census 0 9 1 1 0 2.8 6 25
census 0 0 1 1 0 nan - -
census 0 20 1 1 0 3.2 10 7
census 0 3 1 1 0 2.8 14 3
census 0 2 1 1 0 3.5 3 15
census 0 7 1 1 0 3.4 1 23
census 0 18 1 1 0 nan - -
census 0 15 1 1 0 nan - -
census 0 1 1 1 0 nan - -
census 0 12 1 1 0 3.2 9 13
census 0 21 2 1 1 3.5 0 18 reg64=1;
census 0 8 1 1 0 2.8 9 12
census 0 13 1 1 0 2.8 12 13
census 0 19 1 1 0 nan - -
census 0 11 1 1 0 nan - -
census 0 16 1 1 0 nan - -
census 0 22 1 1 0 3.1 6 11
census 0 30 1 1 0 nan - -
census 0 17 1 1 0 nan - -
census 0 23 1 1 0 nan - -
census 0 26 1 1 0 3.2 7 9
census 0 32 1 1 0 4.4 10 21
census 0 29 1 1 0 nan - -
census 0 34 1 1 0 3.0 12 1
census 0 27 1 1 0 3.0 9 8
census 0 25 2 1 1 nan - - a=1;
census 0 24 1 1 0 3.7 13 12
census 0 33 1 1 0 nan - -
census 0 36 2 1 1 3.2 14 3 b=1;
census 0 35 1 1 0 4.2 12 12
census 0 31 2 1 1 3.2 1 5 b=1;
census 0 39 1 1 0 nan - -
census 0 38 1 1 0 nan - -
census 0 42 2 1 1 nan - - a'=1;
census 0 37 1 1 0 3.1 13 8
census 0 28 1 1 0 nan - -
census 0 41 1 1 0 nan - -
census 0 43 1 1 0 nan - -
census 0 44 2 1 1 nan - - a'=1;
census 0 40 1 1 0 2.8 9 25
census 0 50 1 1 0 3.3 9 9
census 0 53 2 1 1 nan - - b=1;
census 0 45 1 1 0 nan - -
census 0 49 1 1 0 nan - -
census 0 46 1 1 0 4.4 2 3
census 0 48 1 1 0 nan - -
census 0 51 2 1 1 nan - - reg64=1;
census 0 57 1 1 0 3.5 6 24
census 0 47 1 1 0 3.1 4 16
census 0 58 1 1 0 3.0 8 17
census 0 59 1 1 0 nan - -
census 0 62 1 1 0 3.2 9 19
census 0 55 1 1 0 nan - -
census 0 52 1 1 0 nan - -
census 0 60 1 1 0 nan - -
census 0 61 1 1 0 3.3 3 11
census 0 56 2 1 1 2.8 2 9 a'=1;
census 0 54 1 1 0 3.5 3 13
census 0 66 1 1 0 3.4 6 11
census 0 64 1 1 0 3.6 9 8
census 0 65 1 1 0 nan - -
census 0 70 1 1 0 nan - -
census 0 67 2 1 1 nan - - a=1;
census 0 63 1 1 0 nan - -
census 0 78 1 1 0 nan - -
census 0 79 1 1 0 nan - -
census 0 76 1 1 0 3.2 2 23
census 0 81 1 1 0 nan - -
census 0 80 2 1 1 nan - - a'=1;
census 0 68 1 1 0 nan - -
census 0 69 1 1 0 3.2 14 25
census 0 71 2 1 1 2.8 7 17 a=1;
census 0 72 1 1 0 nan - -
census 0 74 1 1 0 3.0 4 6
census 0 82 1 1 0 nan - -
census 0 73 1 1 0 nan - -
census 0 86 1 1 0 3.0 7 19
census 0 75 1 1 0 2.9 4 16
census 0 77 1 1 0 nan - -
census 0 88 1 1 0 nan - -
census 0 85 1 1 0 3.1 14 24
census 0 83 1 1 0 nan - -
census 0 92 1 1 0 nan - -
census 0 89 1 1 0 nan - -
census 0 87 2 1 1 nan - - a'=1;
census 0 84 1 1 0 nan - -
census 0 90 2 1 1 nan - - b=1;
census 0 94 1 1 0 nan - -
census 0 93 1 1 0 3.0 7 20
census 0 91 1 1 0 3.2 13 8
census 0 95 2 1 1 3.0 13 12 a'=1;
census 0 97 1 1 0 nan - -
census 0 96 1 1 0 3.1 8 7
census 0 101 1 1 0 nan - -
census 0 98 1 1 0 nan - -
census 0 100 1 1 0 nan - -
census 0 99 1 1 0 3.1 2 23
census 0 106 1 1 0 nan - -
census 0 102 1 1 0 3.5 0 13
census 0 105 1 1 0 nan - -
census 0 103 1 1 0 nan - -
census 0 107 1 1 0 nan - -
census 0 104 1 1 0 nan - -
census 0 108 1 1 0 nan - -
census 0 114 1 1 0 2.9 7 8
census 0 112 1 1 0 3.3 5 4
census 0 109 1 1 0 nan - -
census 0 120 1 1 0 nan - -
census 0 113 1 1 0 nan - -
census 0 111 1 1 0 3.3 3 27
census 0 116 1 1 0 3.1 1 5
census 0 119 1 1 0 3.1 3 18
census 0 110 1 1 0 3.4 7 15
census 0 115 2 1 1 nan - - b=1;
census 0 117 1 1 0 nan - -
census 0 124 1 1 0 3.6 0 15
census 0 118 1 1 0 nan - -
census 0 121 1 1 0 nan - -
census 0 126 1 1 0 4.3 8 3
census 0 129 2 1 1 3.2 6 6 a'=1;
census 0 123 1 1 0 nan - -
census 0 122 1 1 0 nan - -
census 0 125 2 1 1 3.3 1 6 b=1;
census 0 127 2 1 1 nan - - a=1;
census 0 128 1 1 0 nan - -
census 0 134 1 1 0 3.7 11 4
census 0 135 1 1 0 3.0 5 15
census 0 131 1 1 0 3.3 5 21
census 0 130 1 1 0 3.2 11 8
census 0 138 1 1 0 2.7 12 19
census 0 133 1 1 0 2.8 10 0
census 0 132 1 1 0 3.4 15 1
census 0 136 1 1 0 nan - -
census 0 140 2 1 1 nan - - a'=1;
census 0 137 1 1 0 nan - -
census 0 143 1 1 0 nan - -
census 0 139 1 1 0 3.4 11 3
census 0 146 1 1 0 3.4 15 22
census 0 142 2 1 1 4.0 6 0 a'=1;
census 0 141 1 1 0 nan - -
census 0 150 1 1 0 nan - -
census 0 149 1 1 0 nan - -
census 0 144 1 1 0 3.7 3 22
census 0 147 1 1 0 nan - -
census 0 148 1 1 0 3.7 10 0
census 0 145 1 1 0 2.7 14 24
census 0 152 1 1 0 3.1 11 25
census 0 155 1 1 0 nan - -
census 0 151 1 1 0 nan - -
census 0 157 1 1 0 3.5 1 16
census 0 162 1 1 0 3.1 2 16
census 0 154 2 1 1 3.3 12 17 a'=1;
census 0 156 1 1 0 nan - -
census 0 160 1 1 0 2.5 1 17
census 0 153 1 1 0 nan - -
census 0 163 2 1 1 3.7 0 19 a'=1;
census 0 161 1 1 0 nan - -
census 0 166 1 1 0 nan - -
census 0 158 1 1 0 3.1 13 1
census 0 159 1 1 0 nan - -
census 0 169 2 1 1 nan - - a'=1;
census 0 171 1 1 0 nan - -
census 0 170 1 1 0 nan - -
census 0 168 1 1 0 3.6 6 25
census 0 176 1 1 0 nan - -
census 0 177 1 1 0 3.1 14 0
census 0 165 1 1 0 3.0 11 5
census 0 164 1 1 0 3.8 7 25
census 0 174 1 1 0 nan - -
census 0 173 3 1 2 nan - - a'=2;
census 0 167 3 1 2 3.4 2 14 a'=2;
census 0 180 1 1 0 3.5 3 19
census 0 178 1 1 0 4.0 14 14
census 0 172 2 1 1 3.0 15 16 a'=1;
census 0 184 2 1 1 3.0 2 25 a'=1;
census 0 175 1 1 0 2.9 1 24
census 0 181 1 1 0 3.1 1 14
census 0 185 1 1 0 nan - -
census 0 186 2 1 1 nan - - a'=1;
census 0 182 1 1 0 nan - -
census 0 179 1 1 0 3.1 10 14
census 0 190 2 1 1 3.3 14 13 a'=1;
census 0 183 1 1 0 nan - -
census 0 187 1 1 0 3.6 4 14
census 0 191 1 1 0 nan - -
census 0 193 1 1 0 3.5 4 23
census 0 189 1 1 0 nan - -
census 0 188 1 1 0 3.2 0 12
census 0 192 1 1 0 4.1 3 23
census 0 194 1 1 0 3.7 2 6
census 0 198 1 1 0 nan - -
census 0 196 1 1 0 3.0 3 21
census 0 199 1 1 0 2.9 14 0
census 0 201 1 1 0 nan - -
census 0 195 1 1 0 2.9 2 10
census 0 200 1 1 0 3.1 5 21
census 0 197 1 1 0 nan - -
census 0 205 1 1 0 3.1 7 7
census 0 206 2 1 1 nan - - a'=1;
census 0 204 1 1 0 3.8 8 24
census 0 202 1 1 0 nan - -
census 0 207 1 1 0 nan - -
census 0 203 1 1 0 nan - -
census 0 210 1 1 0 3.3 1 20
census 0 208 1 1 0 nan - -
census 0 211 1 1 0 nan - -
census 0 212 1 1 0 nan - -
census 0 214 1 1 0 3.7 7 24
census 0 209 1 1 0 nan - -
census 0 215 1 1 0 3.0 12 7
census 0 220 1 1 0 nan - -
census 0 217 1 1 0 nan - -
census 0 225 1 1 0 3.2 14 23
census 0 213 1 1 0 2.8 13 3
census 0 224 1 1 0 3.0 12 11
census 0 221 1 1 0 nan - -
census 0 216 1 1 0 3.5 7 4
census 0 223 1 1 0 nan - -
census 0 222 1 1 0 3.0 14 10
census 0 227 1 1 0 3.4 14 24
census 0 219 1 1 0 3.0 9 22
census 0 228 1 1 0 3.0 8 9
census 0 229 1 1 0 3.0 5 17
census 0 218 2 1 1 2.9 0 7 a'=1;
census 0 226 1 1 0 3.6 12 11
census 0 230 1 1 0 nan - -
census 0 232 1 1 0 3.4 4 15
census 0 236 1 1 0 nan - -
census 0 231 1 1 0 2.9 12 13
census 0 235 1 1 0 3.3 8 16
census 0 238 1 1 0 nan - -
census 0 234 1 1 0 nan - -
census 0 237 1 1 0 3.1 7 12
census 0 239 1 1 0 3.4 6 18
census 0 242 1 1 0 nan - -
census 0 240 2 1 1 3.4 11 17 b=1;
census 0 241 1 1 0 nan - -
census 0 233 2 1 1 3.2 7 11 c=1;
census 0 249 1 1 0 nan - -
census 0 245 1 1 0 3.0 13 2
census 0 243 1 1 0 3.4 5 5
census 0 251 1 1 0 3.0 11 0
census 0 246 2 1 1 nan - - a'=1;
census 0 252 1 1 0 3.0 0 24
census 0 244 2 1 1 3.0 3 8 reg64=1;
census 0 250 1 1 0 3.9 14 21
census 0 247 1 1 0 nan - -
census 0 248 1 1 0 3.8 0 16
census 0 255 1 1 0 2.6 6 14
census 0 254 1 1 0 nan - -
census 0 253 1 1 0 nan - -
# end 2026-10-08T20:53:02Z rows=257
Can't render this file because it has a wrong number of fields in line 2.

View file

@ -0,0 +1 @@
# pack cs-era-genesis class mx8+sh256x27+state+reg64c+fold+rw epoch af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3 day 69676e65756d2d6461792ffa50000000000000 era edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07 state /srv/builds/v6-census/packs/node1-state.igsd1 day-index 20730 era-widths 4 bin f4e93766d5a3dc46 f8 host igneum-build-4 start 2026-10-08T20:50:53Z

View file

@ -0,0 +1,67 @@
seed "igneum-epoch/af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3" generator v6 class mx8-erad810f22d+sh256x27+state+reg64c+fold+rw attempt 0 program id 2a1d6caab4c24564 seed words 9c8caa3d 83537296 f21169a4 12d4d157 66e0ce33 cc049080 8579c352 4c6e4ac9
op mix load=16 add=10 shfl=8 rotl=5 rotr=5 xor=5 mad=4 mul=4 sub=4 mulhi=3 loads/hash 128 bytes/hash 512
era d810f22d (igneum-era/0/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07): width 4 B, stride mul 0x9ad30d99 rot 29, interleave [0, 2, 12, 13], windows (site:shrink:offset) 1:0:0 15:1:0 27:2:1 28:0:0 30:1:1 32:1:0 33:2:3 42:0:0 48:1:0 52:0:0 55:2:2 56:0:0 58:1:1 59:0:0 60:1:0 62:1:0
0: mad dst=7 src=3 src2=3 imm=0xd095f540 imm2=0xd3789b38 rot=19 bit=4 mask=4
1: load dst=1 src=7 src2=5 imm=0x390bbbd7 imm2=0x1b44071a rot=5 bit=13 mask=16
2: rotl dst=0 src=6 src2=7 imm=0xcd1e3e94 imm2=0xf0479df0 rot=29 bit=10 mask=2
3: shfl dst=5 src=6 src2=4 imm=0x78c099f8 imm2=0xc6d6c6bc rot=25 bit=21 mask=1
4: mulhi dst=5 src=3 src2=1 imm=0x2e8aa8d1 imm2=0x446c336a rot=23 bit=31 mask=16
5: rotl dst=7 src=1 src2=0 imm=0x46701a4a imm2=0xc2255717 rot=27 bit=20 mask=8
6: mad dst=4 src=2 src2=0 imm=0x487da55c imm2=0xf4675ef7 rot=26 bit=1 mask=8
7: rotl dst=2 src=6 src2=4 imm=0x74fdbac4 imm2=0x30e49db4 rot=11 bit=9 mask=16
8: mul dst=6 src=0 src2=4 imm=0x69e895ee imm2=0x66ebcedd rot=24 bit=11 mask=16
9: shfl dst=6 src=1 src2=7 imm=0x1510cbd0 imm2=0x607acada rot=4 bit=3 mask=2
10: add dst=0 src=2 src2=2 imm=0x33a68b0c imm2=0xffb7f024 rot=27 bit=1 mask=4
11: xor dst=0 src=2 src2=4 imm=0x61b96f54 imm2=0x7d5468b0 rot=30 bit=28 mask=8
12: sub dst=7 src=4 src2=1 imm=0x39217118 imm2=0x248e3f9b rot=29 bit=7 mask=16
13: shfl dst=1 src=4 src2=2 imm=0x6c12c43b imm2=0x6b60595d rot=20 bit=23 mask=8
14: xor dst=1 src=0 src2=0 imm=0x030181c6 imm2=0x52fbbc27 rot=1 bit=28 mask=4
15: load dst=5 src=0 src2=2 imm=0x5b20e3f6 imm2=0xa84ab3b3 rot=24 bit=31 mask=8
16: xor dst=5 src=4 src2=4 imm=0x6fc104e8 imm2=0x1a522a5c rot=27 bit=8 mask=8
17: shfl dst=6 src=7 src2=6 imm=0x5f5b071a imm2=0x39dc91da rot=16 bit=6 mask=16
18: rotr dst=2 src=7 src2=0 imm=0x07b3a28c imm2=0x33193f0c rot=18 bit=3 mask=1
19: add dst=4 src=1 src2=5 imm=0x0229d185 imm2=0x51cb8f70 rot=29 bit=26 mask=1
20: add dst=4 src=7 src2=1 imm=0xc39836f7 imm2=0x0c001b55 rot=8 bit=7 mask=16
21: add dst=0 src=3 src2=4 imm=0xb7d06b34 imm2=0x1ae7a0ac rot=9 bit=3 mask=4
22: mad dst=2 src=6 src2=7 imm=0x0978477e imm2=0x2fec3e13 rot=21 bit=3 mask=16
23: add dst=3 src=5 src2=7 imm=0x95cba5dd imm2=0x22934c58 rot=8 bit=19 mask=2
24: mulhi dst=5 src=3 src2=0 imm=0x14b79a1b imm2=0xccae3d33 rot=5 bit=15 mask=16
25: xor dst=0 src=3 src2=7 imm=0x22f74d7f imm2=0x782f1722 rot=18 bit=25 mask=4
26: mul dst=6 src=3 src2=6 imm=0xf774717f imm2=0x3a1a2c3a rot=28 bit=25 mask=16
27: load dst=3 src=7 src2=2 imm=0xf0d88d7d imm2=0x0fc8051c rot=14 bit=1 mask=16
28: load dst=3 src=0 src2=5 imm=0xac8eb588 imm2=0x57844c72 rot=12 bit=8 mask=2
29: rotr dst=6 src=7 src2=1 imm=0x89b07c78 imm2=0x90c747d7 rot=13 bit=30 mask=1
30: load dst=1 src=4 src2=7 imm=0xdd34b81d imm2=0x96e5cb94 rot=26 bit=16 mask=1
31: add dst=1 src=2 src2=3 imm=0x2fa2e27a imm2=0xbf8507da rot=27 bit=5 mask=1
32: load dst=2 src=1 src2=1 imm=0x4df1d479 imm2=0xea698909 rot=29 bit=12 mask=4
33: load dst=3 src=2 src2=1 imm=0xaa35122f imm2=0x01516545 rot=12 bit=18 mask=1
34: mul dst=3 src=5 src2=7 imm=0x6a941ac2 imm2=0xb56c91d9 rot=24 bit=16 mask=1
35: rotl dst=1 src=6 src2=7 imm=0xe8aa4cfe imm2=0x0d359401 rot=2 bit=3 mask=2
36: shfl dst=1 src=5 src2=1 imm=0xd090168f imm2=0x3ea71d89 rot=9 bit=3 mask=4
37: sub dst=0 src=4 src2=1 imm=0xdbda427b imm2=0xd9607488 rot=5 bit=12 mask=2
38: rotr dst=4 src=2 src2=7 imm=0xe3e3804c imm2=0xccdc9668 rot=27 bit=13 mask=16
39: mulhi dst=4 src=1 src2=2 imm=0x5d14fe55 imm2=0xb6db1d85 rot=17 bit=18 mask=4
40: rotr dst=0 src=1 src2=4 imm=0xc77a2d1f imm2=0x5a85c407 rot=10 bit=31 mask=1
41: add dst=2 src=3 src2=1 imm=0xfe28f51d imm2=0xf439f8e7 rot=5 bit=8 mask=2
42: load dst=1 src=2 src2=5 imm=0xe1b6fb46 imm2=0x23bb6ba4 rot=29 bit=22 mask=1
43: xor dst=7 src=5 src2=6 imm=0x34988c9d imm2=0xf8c6c4a8 rot=2 bit=21 mask=8
44: shfl dst=6 src=2 src2=2 imm=0x14f4d589 imm2=0x868d3c75 rot=29 bit=31 mask=8
45: mul dst=1 src=4 src2=1 imm=0x081dddbd imm2=0xc8e4de44 rot=23 bit=11 mask=16
46: rotl dst=0 src=6 src2=2 imm=0xaec2cb92 imm2=0x03157ee4 rot=14 bit=5 mask=16
47: add dst=1 src=3 src2=7 imm=0xf1719bbd imm2=0x14bb2234 rot=24 bit=7 mask=16
48: load dst=1 src=6 src2=6 imm=0x30e39813 imm2=0x9ce47150 rot=22 bit=10 mask=1
49: sub dst=5 src=1 src2=7 imm=0xaabdf6d2 imm2=0x0688a461 rot=13 bit=28 mask=2
50: add dst=2 src=3 src2=6 imm=0xb129b2b4 imm2=0x4611fe29 rot=3 bit=14 mask=16
51: sub dst=0 src=2 src2=1 imm=0xfe651d02 imm2=0x7c1929a9 rot=22 bit=31 mask=4
52: load dst=4 src=0 src2=4 imm=0xf906070a imm2=0xf301cff4 rot=5 bit=25 mask=1
53: mad dst=3 src=1 src2=4 imm=0xab213c09 imm2=0xf6d6f3fa rot=16 bit=28 mask=1
54: shfl dst=4 src=1 src2=7 imm=0xf6dafbae imm2=0xdbfc32c7 rot=12 bit=1 mask=16
55: load dst=6 src=5 src2=5 imm=0x881eaf9c imm2=0x7c50f5c8 rot=25 bit=22 mask=16
56: load dst=2 src=4 src2=1 imm=0x899bf6e0 imm2=0xbde5b6ee rot=24 bit=10 mask=8
57: shfl dst=5 src=7 src2=6 imm=0xea9c50d2 imm2=0xd2a8c99b rot=12 bit=28 mask=1
58: load dst=1 src=5 src2=3 imm=0xad4912ca imm2=0x546d00b2 rot=7 bit=1 mask=1
59: load dst=2 src=7 src2=1 imm=0x37cea58f imm2=0x13e31ff0 rot=21 bit=21 mask=16
60: load dst=2 src=1 src2=2 imm=0x33f9a95e imm2=0xda1c8a2e rot=22 bit=28 mask=8
61: add dst=3 src=2 src2=2 imm=0x0a051d32 imm2=0xe9ed866d rot=30 bit=1 mask=4
62: load dst=0 src=2 src2=2 imm=0xab1dd54b imm2=0xc9fcaae2 rot=9 bit=2 mask=1
63: rotr dst=5 src=0 src2=5 imm=0x1f0279bd imm2=0x223e7b9c rot=11 bit=3 mask=16

View file

@ -0,0 +1,20 @@
program id 2a1d6caab4c24564 class mx8-erad810f22d+sh256x27+state+reg64c+fold+rw attempt 0 generator v6
rule: ACCEPTED, distinct 128.000 per hash, saturated 0, bias max 60
site instr win off width distinct ratio under_c2 under_c3 bucket_ratio bucket_z bucket_id bit_z bit top_count
0 1 0 0 1 1046503 0.99998 0 0 2.188 4.75 60156 -1.87 26 2
1 15 1 0 1 1044355 0.99988 0 0 1.750 4.24 14357 2.42 22 3
2 27 2 1 1 1040572 1.00018 0 0 1.562 4.50 24199 -2.24 16 4
3 28 0 0 1 1046539 1.00001 0 0 2.312 5.25 10753 -3.06 1 3
4 30 1 1 1 1044536 1.00005 0 0 1.781 4.42 58838 -1.54 24 3
5 32 1 0 1 1044401 0.99992 0 0 1.906 5.13 1461 1.62 16 3
6 33 2 3 1 1040390 1.00001 0 0 1.547 4.38 50857 -2.50 7 4
7 42 0 0 1 1046557 1.00003 0 0 2.250 5.00 35595 -2.44 23 3
8 48 1 0 1 1044478 1.00000 0 0 1.781 4.42 14934 2.31 19 3
9 52 0 0 1 1046564 1.00003 0 0 2.500 6.00 57814 -3.00 20 3
10 55 2 2 1 1040481 1.00009 0 0 1.531 4.25 45966 -2.63 2 3
11 56 0 0 1 1046558 1.00003 0 0 2.438 5.75 65197 2.34 2 3
12 58 1 1 1 1044602 1.00012 0 0 1.781 4.42 44729 2.46 24 3
13 59 0 0 1 1046533 1.00000 0 0 2.562 6.25 4623 -1.77 1 3
14 60 1 0 1 1044508 1.00003 0 0 1.906 5.13 9415 -2.48 25 3
15 62 1 0 1 1044593 1.00011 0 0 1.875 4.95 300 2.97 9 3
summary: sites 16, min ratio 0.99988, under 0.98: 0, under 0.995: 0, bucket z max 6.25, bit z max -3.06, sites over 6 sigma 0, 2.2 s
Can't render this file because it has a wrong number of fields in line 3.

View file

@ -0,0 +1,44 @@
# The pairing class and the chain-paired packs (8 October 2026, 20:4x to 21:1x UTC)
The frozen research pack `hl-v6-all` (id `0x4de7b836cc40a4ea`, generator 6, the class-v6 tree 1a938abe4) was exported with the
genesis epoch seed `edc4fa84…fb07` over node1's state stream captured after block `af89be5d…66b3` (number 159357, root
`1c583d35…1526`, 93 records, file sha256 `abb58003…0098`). `IgneumEngine::epoch_for` refuses that pair by the class v5 rule
(the stream's block must be the epoch's seed block), so the node and pool readers cannot re-check the object as packed. The
pairing was the W = 8 lane's research recipe of 14:00 (the CLI had no seed-block check), not a tool fault.
## The pairing holds on the chain's own pair
| Reader | Inputs | Id |
|---|---|---|
| the node engine, `igneum-miner program-id` on the placed (c) pair (node lane, 20:46:55 UTC) | epoch `af89be5d…`, era `edc4fa84…`, day 20730, the state above, class v6 | `2a1d6caab4c24564`, attempt 0 |
| the freeze CLI at 1a938abe4, `export … --era 0:edc4fa84…` (build-5, 20:48 UTC) | the same | `0x2a1d6caab4c24564`, attempt 0, generator 6, loads 256 |
A read with the era set to the block hash as well (`--era 0:af89be5d…`) draws `442a1691b3e3507f` (era label 93a14ac6): a
different input, void for the pairing. The ruling (hash lane, 21:00 UTC): D1 freezes the generator tree 1a938abe4; F0 names
the chain-seed draw `2a1d6caab4c24564` on the pair above; the research pack stays labelled at its pairing.
## The chain-paired packs (build-1 `/srv/artefacts/packs/`, read back 21:1x UTC)
| Pack | Class | Id | Attempt | Loads | tgz sha256 |
|---|---|---|---|---|---|
| hl-v6-all-cs | mx8+sh256x27+state+reg64c+fold+rw | `0x2a1d6caab4c24564` | 0 | 256 | `a4742bfefdc632a1f3977c9dfb8f66417c2f132436dcd9ad72c32a608638d6ca` |
| hl-v6-all-nowin-cs | the same +nowin | `0x4e1897e6ee262228` | 0 | 256 | `6ef02eeea5d078f5215b09145239e27a83c8a41e6bccb11bd638d3170b0538bb` |
| hl-v6-foldrw-cs | mx8+sh256x27+state+fold+rw | `0xb53d00f2bf629076` | 0 | 128 | `4f2abd36aee600d97d230b5b09f10680f228448007c6c7062fca737bf6351748` |
| hl-v5-nowin-cs | mx8+sh256x27+state+nowin | `0xa02b1a9dee6b8587` | 1 | 128 | `e2eb2840879d264a8d3562751f983ce57d821087ae6d52796eccf3ef48484b8e` |
| hl-v6-all-prefix-cs | as hl-v6-all-cs, the F05 prefix text | `0x2a1d6caab4c24564` | 0 | 256 | `a9e01f13d6f26f133504c6d62e73b86ee460b53d8798218100b2f250e0ac8ca5` |
All five: epoch seed `af89be5d…`, era `edc4fa84…`, day 20730, the state above, exported at 1a938abe4 on build-5.
## The P01 reference of the signing object
`igneum-pow hash-bound --prehash 00…01 --nonce 0 --count 1000000` on hl-v6-all-cs's inputs (build-5, 20:55 to 21:02 UTC):
1,000,000 lines `nonce hash16`, first `0 2394c9f10f9447a2`, last `999999 cdaadae412c7d9c1`, sha256
`b77c61d874aed238394fd0e556113192acf21e0762871b1044796f3fbaea338a`, at build-1 `/srv/artefacts/packs/p01-vectors/hl-v6-all-cs.txt`
(+ .sha256). The OpenCL read on PC 1's RX 7600 is the job `run-ca3-pc1-p01-opencl-7600-20261008` (behind the knee rows; the
pack by `fetch-ca3-p01cs-pack-20261008`); equal digests are 1,000,000 of 1,000,000. The Metal read is the morning's.
## The tool fix
class-v6 `ce6e6902f45f40e727726cf3e0dbf0e1c924658a` (suite 151 passed, 0 failed, 8 ignored on build-7): `StateStream::check_pairing`
runs first on every `--state` command; a refused pair exits 2 and writes nothing; a string seed never pairs; `--unpaired-state`
records a research pairing on purpose. Known-failed test `igneum-pow/tests/pairing.rs`. The generator is untouched.

View file

@ -0,0 +1,75 @@
{
"format": "igneum-same-work-job-context-1",
"spec": "docs/plans/igneum-2.0-same-work-test.md (F03, Review B); the driver tools/ci/p01-vectors.py --job-context <this file> --phase 1|2|3",
"class": "v6",
"generator": 6,
"load_class": "mx8+sh256x27+state+reg64c+fold+rw",
"era": "0:edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07",
"era_seed_bytes": "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07",
"era_widths": 4,
"generator_tree": "class-v6 1a938abe4 (igneum-pow built on build-4 at /srv/builds/igneum-wt-same-work-v6/igneum-pow, binary sha256 0d3f3fca713b10a3...)",
"state_stream": {
"path": "build-4:/srv/builds/v6-census/packs/node1-state.igsd1",
"chain_block": 159357,
"block_hash": "af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3",
"root": "1c583d352bb9c75a06dadb8d82d42836ebe8afa82d0b413be87bf921741f1526",
"records": 93,
"leaves": 93
},
"day": {
"D": {
"index": 20730,
"bytes": "69676e65756d2d6461792ffa50000000000000"
},
"D1": {
"index": 20731,
"bytes": "69676e65756d2d6461792ffb50000000000000"
}
},
"day_rule": "day bytes = 'igneum-day/' || day_le64 (igneum_pow::bind::day_bytes); D is the frozen pack's day index 20730, D+1 the next index 20731: the dataset-day rotation (infra/fast-time/override-60x.json, pow_day_ms 1440000) changes the day bytes and the dataset only; the program id is the same on both days",
"prehash": "0000000000000000000000000000000000000000000000000000000000000001",
"range_log2": 20,
"phases": {
"1": [
0,
1048576
],
"2": [
1048576,
2097152
],
"3": [
2097152,
3145728
]
},
"boundary_nonce": 1572864,
"boundary_rule": "the midpoint of phase 2 (2^20 + 2^19 = 1572864, 32-aligned for the workers): under the 60x clock the day switches every 1,440,000 ms and phase 2 is the engine's window across one switch; every reader switches program and dataset at this nonce; the boundary block is the last 2^12 nonces of day D [1568768, 1572864) and the first 2^12 of day D+1 [1572864, 1576960)",
"manifest": "c30ab32c",
"manifest_note": "packaging/release-manifest.json on release-2.0.1 c30ab32c (the F03 R01 record, node 7cfa422a); the pool kit is release-2.0.2 f3e99e9c whose manifest file carries the same 2.0.1 text; the kit's node enum ends at V5, so a class=v6 job line is unnameable by it (the pool lane's read-back, 22:0x UK)",
"references": {
"D": "references/ref-D.txt",
"D1": "references/ref-D1.txt"
},
"reference_recipe": "igneum-pow hash-bound --epoch-hex <epoch seed> --day-hex <day bytes> --class mx8+sh256x27+state+reg64c+fold+rw --era 0:edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07 --era-widths 4 --state node1-state.igsd1 --prehash 00..01 --nonce <start> --count <n> on build-4 with the class-v6 1a938abe4 binary; ref-D covers [0, 1572864), ref-D1 covers [1572864, 3145728)",
"readers": {
"cpu_reference": "the reference files themselves (igneum-pow hash-bound, build-4)",
"cuda": "the kit worker igneum-worker-cuda gen 6 (sha256 804a6f7f...) --serve on packs.D, driven by the driver (prepare of packs.D1 before phase 2)",
"opencl": "igneum-worker-opencl --serve, PC 1 RX 7600, the morning (08:30 UK)",
"metal": "the mini's worker, the morning (08:30 UK)",
"node": "igneum-miner --recheck-vectors on a branch off class-v6-node-review e8773ff5 (IgneumEngine::epoch_for then hash_bound per nonce)",
"pool": "igneum-pool recheck --job-context (the member-side share verifier); on the 2.0.2 kit BLOCKED by its V5 pins, the D1 pairing against class-v6-node-review e8773ff5 a separate labelled row"
},
"evidence_shape": "the driver's JSON: agree, disagree, missing, the first ten disagreements, answered, segments (program id and day bytes per segment), boundary (phase 2: nonce, ids and day bytes either side, the hashes and references either side, switched), prepare_line, manifest_sha, verdict",
"job_line": "job <seq> <prehash> ffffffffffffffff <start nonce> <nonces> <epoch seed bytes> <day bytes> class=v6 era=edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07",
"run_id": "same-work-20261008-01",
"object": "the frozen class v6 object: pack hl-v6-all (tgz sha256 9131431015e102f4b2f545e1e56e7e2271b0e805568682200113f749709858b1, re-exported byte for byte from class-v6 1a938abe4 on build-4 at 21:44 UK), program id 0x4de7b836cc40a4ea, generator 6, epoch seed edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07 (the genesis seeds) over the node1 state stream",
"object_id": "0x4de7b836cc40a4ea",
"epoch_seed_bytes": "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07",
"packs": {
"D": "packs/hl-v6-all",
"D1": "packs/hl-v6-all-d20731"
},
"pairing_note": "the node engine refuses this pair: IgneumEngine::epoch_for's class v5 check wants the state stream's block (af89be5d...) to equal the epoch seed (edc4fa84...), so the node and pool readers cannot run it (the node lane's program-id read-back, 21:5x UK); this context is the CUDA and CPU row only and is never counted as same-work (the coordinator's ruling, 22:0x UK); the same-work run is same-work-20261008-02",
"written": "2026-10-08 22:1x UK by the same-work hand (worktree same-work-harness)"
}

View file

@ -0,0 +1,75 @@
{
"format": "igneum-same-work-job-context-1",
"spec": "docs/plans/igneum-2.0-same-work-test.md (F03, Review B); the driver tools/ci/p01-vectors.py --job-context <this file> --phase 1|2|3",
"class": "v6",
"generator": 6,
"load_class": "mx8+sh256x27+state+reg64c+fold+rw",
"era": "0:edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07",
"era_seed_bytes": "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07",
"era_widths": 4,
"generator_tree": "class-v6 1a938abe4 (igneum-pow built on build-4 at /srv/builds/igneum-wt-same-work-v6/igneum-pow, binary sha256 0d3f3fca713b10a3...)",
"state_stream": {
"path": "build-4:/srv/builds/v6-census/packs/node1-state.igsd1",
"chain_block": 159357,
"block_hash": "af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3",
"root": "1c583d352bb9c75a06dadb8d82d42836ebe8afa82d0b413be87bf921741f1526",
"records": 93,
"leaves": 93
},
"day": {
"D": {
"index": 20730,
"bytes": "69676e65756d2d6461792ffa50000000000000"
},
"D1": {
"index": 20731,
"bytes": "69676e65756d2d6461792ffb50000000000000"
}
},
"day_rule": "day bytes = 'igneum-day/' || day_le64 (igneum_pow::bind::day_bytes); D is the frozen pack's day index 20730, D+1 the next index 20731: the dataset-day rotation (infra/fast-time/override-60x.json, pow_day_ms 1440000) changes the day bytes and the dataset only; the program id is the same on both days",
"prehash": "0000000000000000000000000000000000000000000000000000000000000001",
"range_log2": 20,
"phases": {
"1": [
0,
1048576
],
"2": [
1048576,
2097152
],
"3": [
2097152,
3145728
]
},
"boundary_nonce": 1572864,
"boundary_rule": "the midpoint of phase 2 (2^20 + 2^19 = 1572864, 32-aligned for the workers): under the 60x clock the day switches every 1,440,000 ms and phase 2 is the engine's window across one switch; every reader switches program and dataset at this nonce; the boundary block is the last 2^12 nonces of day D [1568768, 1572864) and the first 2^12 of day D+1 [1572864, 1576960)",
"manifest": "c30ab32c",
"manifest_note": "packaging/release-manifest.json on release-2.0.1 c30ab32c (the F03 R01 record, node 7cfa422a); the pool kit is release-2.0.2 f3e99e9c whose manifest file carries the same 2.0.1 text; the kit's node enum ends at V5, so a class=v6 job line is unnameable by it (the pool lane's read-back, 22:0x UK)",
"references": {
"D": "references/ref-D.txt",
"D1": "references/ref-D1.txt"
},
"reference_recipe": "igneum-pow hash-bound --epoch-hex <epoch seed> --day-hex <day bytes> --class mx8+sh256x27+state+reg64c+fold+rw --era 0:edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07 --era-widths 4 --state node1-state.igsd1 --prehash 00..01 --nonce <start> --count <n> on build-4 with the class-v6 1a938abe4 binary; ref-D covers [0, 1572864), ref-D1 covers [1572864, 3145728)",
"readers": {
"cpu_reference": "the reference files themselves (igneum-pow hash-bound, build-4)",
"cuda": "the kit worker igneum-worker-cuda gen 6 (sha256 804a6f7f...) --serve on packs.D, driven by the driver (prepare of packs.D1 before phase 2)",
"opencl": "igneum-worker-opencl --serve, PC 1 RX 7600, the morning (08:30 UK)",
"metal": "the mini's worker, the morning (08:30 UK)",
"node": "igneum-miner --recheck-vectors on a branch off class-v6-node-review e8773ff5 (IgneumEngine::epoch_for then hash_bound per nonce)",
"pool": "igneum-pool recheck --job-context (the member-side share verifier); on the 2.0.2 kit BLOCKED by its V5 pins, the D1 pairing against class-v6-node-review e8773ff5 a separate labelled row"
},
"evidence_shape": "the driver's JSON: agree, disagree, missing, the first ten disagreements, answered, segments (program id and day bytes per segment), boundary (phase 2: nonce, ids and day bytes either side, the hashes and references either side, switched), prepare_line, manifest_sha, verdict",
"job_line": "job <seq> <prehash> ffffffffffffffff <start nonce> <nonces> <epoch seed bytes> <day bytes> class=v6 era=edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07",
"run_id": "same-work-20261008-02",
"object": "the chain-seed class v6 object: epoch seed af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3 (the node1 state stream's own block hash, the pair the engine accepts) with the genesis era seed, class v6 generator 6, program id 0x2a1d6caab4c24564 (the id the node lane drew on class-v6-node-review; the export with era 0:af89be5d... draws 0x442a1691b3e3507f and is not it), packs exported from class-v6 1a938abe4 on build-4 at 21:48 UK",
"object_id": "0x2a1d6caab4c24564",
"epoch_seed_bytes": "af89be5ddbadb6f6b4aee28ac8f249713be5d4c12621e3cea7f83ceada3c66b3",
"packs": {
"D": "packs/chain-seed-d20730",
"D1": "packs/chain-seed-d20731"
},
"pairing_note": "every reader runs this context (the coordinator's ruling, 22:0x UK: the same-work test's meaning is six readers on one context); the frozen-object context 01 is the CUDA and CPU-only row",
"written": "2026-10-08 22:1x UK by the same-work hand (worktree same-work-harness)"
}

View file

@ -0,0 +1,78 @@
{
"format": "igneum-same-work-job-context-1",
"spec": "docs/plans/igneum-2.0-same-work-test.md (F03, Review B); the driver tools/ci/p01-vectors.py --job-context <this file> --phase 1|2|3",
"class": "v5",
"generator": 5,
"load_class": "mx8-era+sh256x27+state (class v5, --program-class v5)",
"era": "0:7c36b83374a673e990213be462509dcb08bcfc85144306aa9517cf3ad66faf6e",
"era_seed_bytes": "7c36b83374a673e990213be462509dcb08bcfc85144306aa9517cf3ad66faf6e",
"era_widths": 4,
"generator_tree": "release-2.0.1 c30ab32c (igneum-pow at the class v5 freeze 1c420786, fingerprint cbc5bd0a), built on build-4 at /srv/builds/igneum-wt-same-work-v5/igneum-pow",
"state_stream": {
"path": "state-epoch2.igsd1 (beside this file; from build-1's seed EVM RPC 127.0.0.1:27810 igneum_getPowStateLeaves for the seed block; the hand 26870 answered \"no published state stream\" for it at 22:18 UK)",
"chain_block": 3423,
"block_hash": "3c3fab434f7fd894ce6db0b09f298c3865726253e4fc68fd77acd163ccea8221",
"root": "0xf798d1d89ee4de62...",
"records": 224,
"bytes": 21132,
"sha256": "f36e6bbab71dc8b049fff052d0895bc4dd1e3f245779e82968fcf5b42535dee1"
},
"day": {
"D": {
"index": 20734,
"bytes": "69676e65756d2d6461792ffe50000000000000"
},
"D1": {
"index": 20735,
"bytes": "69676e65756d2d6461792fff50000000000000"
}
},
"day_rule": "day bytes = 'igneum-day/' || day_le64 (igneum_pow::bind::day_bytes); D is the frozen pack's day index 20730, D+1 the next index 20731: the dataset-day rotation (infra/fast-time/override-60x.json, pow_day_ms 1440000) changes the day bytes and the dataset only; the program id is the same on both days",
"prehash": "0000000000000000000000000000000000000000000000000000000000000001",
"range_log2": 20,
"phases": {
"1": [
0,
1048576
],
"2": [
1048576,
2097152
],
"3": [
2097152,
3145728
]
},
"boundary_nonce": 1572864,
"boundary_rule": "the midpoint of phase 2 (2^20 + 2^19 = 1572864, 32-aligned for the workers): under the 60x clock the day switches every 1,440,000 ms and phase 2 is the engine's window across one switch; every reader switches program and dataset at this nonce; the boundary block is the last 2^12 nonces of day D [1568768, 1572864) and the first 2^12 of day D+1 [1572864, 1576960)",
"manifest": "c30ab32c",
"manifest_note": "packaging/release-manifest.json on release-2.0.1 c30ab32c (the F03 R01 record, node 7cfa422a); the pool kit is release-2.0.2 f3e99e9c whose manifest file carries the same 2.0.1 text; the kit's node enum ends at V5, so a class=v6 job line is unnameable by it (the pool lane's read-back, 22:0x UK)",
"references": {
"D": "references/ref-D.txt",
"D1": "references/ref-D1.txt"
},
"reference_recipe": "igneum-pow hash-bound --epoch-hex 3c3fab434f7fd894ce6db0b09f298c3865726253e4fc68fd77acd163ccea8221 --day-hex <day bytes> --program-class v5 --era-hex 7c36b83374a673e990213be462509dcb08bcfc85144306aa9517cf3ad66faf6e --state state-epoch2.igsd1 --prehash 00..01 --nonce <start> --count <n> on build-4 with release-2.0.1's binary 7ba781db...; ref-D covers [0, 1572864), ref-D1 [1572864, 3145728)",
"readers": {
"cpu_reference": "the reference files themselves (igneum-pow hash-bound, build-4)",
"cuda": "the kit worker igneum-worker-cuda 9bfcf728 (generation 5) --serve on packs.D, driven by the driver (prepare of packs.D1 before phase 2)",
"opencl": "igneum-worker-opencl --serve, PC 1 RX 7600, the morning (08:30 UK)",
"metal": "the mini's worker, the morning (08:30 UK)",
"node": "igneum-miner --recheck-vectors on the release line's engine (class v5 by construction); until the subcommand is on a release-line branch the row reads from same-work-node cc23f9bd labelled as such",
"pool": "igneum-pool recheck on the 2.0.2 kit as pinned (class v5 is nameable by its node)"
},
"evidence_shape": "the driver's JSON: agree, disagree, missing, the first ten disagreements, answered, segments (program id and day bytes per segment), boundary (phase 2: nonce, ids and day bytes either side, the hashes and references either side, switched), prepare_line, manifest_sha, verdict",
"job_line": "job <seq> <prehash> ffffffffffffffff <start nonce> <nonces> <epoch seed bytes> <day bytes> class=v5 era=7c36b83374a673e990213be462509dcb08bcfc85144306aa9517cf3ad66faf6e",
"run_id": "same-work-20261008-03",
"object": "the live chain half: igneum-devnet-4 class v5 object at epoch 2, program id 0x81fbfa3aa413173f, epoch seed 3c3fab434f7fd894ce6db0b09f298c3865726253e4fc68fd77acd163ccea8221 (the epoch-2 seed block, chain block 3423, common to every tonight's chain: the split came after it), day 20734, era 0 seed 7c36b83374a673e990213be462509dcb08bcfc85144306aa9517cf3ad66faf6e (class v5 reads no era: the id is the same under era zero, both read), generator 5, on release-2.0.1's igneum-pow (class v5 freeze 1c420786; binary sha256 7ba781db08525637... built on build-4 from c30ab32c)",
"object_id": "0x81fbfa3aa413173f",
"epoch_seed_bytes": "3c3fab434f7fd894ce6db0b09f298c3865726253e4fc68fd77acd163ccea8221",
"packs": {
"D": "packs/v5-epoch2-d20734",
"D1": "packs/v5-epoch2-d20735"
},
"pairing_note": "the coordinator's third row (22:1x UK): the same-work test's live-chain half; the node and pool readers run it on their release-line engines; CPU and CUDA cells by 06:00 UK, node and pool NOT RUN with a 08:30 UK clock if the hours run out",
"written": "2026-10-08 22:2x UK by the same-work hand (worktree same-work-harness)",
"genesis_day_index": 20734,
"witness": "igneum-miner program-id --epoch-hex <seed> --era-hex <era> --day 20734 --class v5 --state state-epoch2.igsd1 reads \"class v5 attempt 0 id 81fbfa3aa413173f\" under era 7c36b833... and under era 00..00 alike (the miner at same-work-node cc23f9bd on build-2, the class v5 engine path; the 2.0.1 pair's miner ef0f2ed8 on build-1 has no program-id subcommand); the placed (c) pair's read on the seed's stream gave the same id (the node lane, 22:33 UK); build-1's seed is a dead fork since 21:34 UK (the devnet-4 split at the epoch-3 cut) and epoch 2's object is unaffected"
}

View file

@ -1329,30 +1329,30 @@
"manual_page": 24,
"owner_lane": "hash lane (a690540514aa453d7)",
"run_status": "NOT RUN",
"evidence_path": "docs/analysis/review-2026-10-08-b/f10/emu-test.log; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all-nowin.json",
"run_id": "p01-20261008-01",
"updated": "2026-10-08T20:10:24.686Z",
"evidence_path": "docs/analysis/review-2026-10-08-b/f10/emu-test.log; build-1:/srv/artefacts/tas/same-work-20261008-01/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-01/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-01/references/ref-D1.txt",
"run_id": "same-work-20261008-01",
"updated": "2026-10-08T21:36:08.400Z",
"evidence_record": {
"requirement_id": "POW-01",
"decision": "NOT RUN",
"method": "GPU",
"cell": "harness:p01-vectors",
"manifest_sha": "417c4a57",
"run_id": "p01-20261008-01",
"evidence": "build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all-nowin.json",
"manifest_sha": "c30ab32c",
"run_id": "same-work-20261008-01",
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-01/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-01/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-01/references/ref-D1.txt",
"in_progress": false,
"coverage": "the million-vector campaign per backend per pack, bit-for-bit; PASS only when every supported backend reads a million vectors with zero disagreement; the malformed-input half is harness:parser-malformed",
"release_identity": {
"commit": "417c4a57 (the node pin at the kit's cut); the kit packs-class-v6-20261008T162324Z.zip 098e64c3…; the worker igneum-worker-cuda 9bfcf728",
"commit": "c30ab32c; the CPU reference class-v6 1a938abe4; the CUDA reader the kit's gen 6 worker 804a6f7f",
"lockfile": "",
"binary": "bin/linux/igneum-worker-cuda (the kit's)",
"network_object": "the class v5 freeze 1c420786, pack hl-v5-win e3da3669 id 0x6554474f410f36f3",
"activation": "igneum-devnet-4 object be5f4068",
"binary": "igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...",
"network_object": "the frozen class v6 object: pack hl-v6-all (tgz sha256 9131431015e102f4..., re-exported byte for byte from class-v6 1a938abe4 on build-4 at 21:44 UK, every file's sha256 equal), id 0x4de7b836cc40a4ea, epoch seed edc4fa84... (the genesis seeds) over the node1 state stream",
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
"profile_hashes": ""
},
"claim_impact": "POW-01's CUDA half on the class v5 object and all three class v6 D1 candidates: a million nonces agree bit-for-bit with the CPU reference on three CUDA generations each; OpenCL and Metal remain",
"claim_impact": "POW-01's CUDA half across a dataset-day switch on the frozen object: CUDA against the CPU reference bit for bit on three ranges with the day switch at nonce 1572864. NOT same-work evidence: the node engine refuses this seed/stream pair (IgneumEngine::epoch_for's class v5 check wants the stream's block af89be5d... to equal the epoch seed edc4fa84...), so the node and pool readers cannot read it; the coordinator's ruling 22:0x UK keeps it as the CUDA and CPU-only row",
"reviewer": "",
"at": "2026-10-08T20:10:24.686Z"
"at": "2026-10-08T21:36:08.400Z"
},
"in_progress_since": "2026-10-08T20:07:26.255Z",
"approvals": {
@ -1392,22 +1392,22 @@
"decision": "NOT RUN",
"method": "GPU",
"cell": "harness:p01-vectors",
"manifest_sha": "417c4a57",
"run_id": "p01-20261008-01",
"evidence": "build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all-nowin.json",
"manifest_sha": "c30ab32c",
"run_id": "same-work-20261008-01",
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-01/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-01/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-01/references/ref-D1.txt",
"in_progress": false,
"coverage": "the million-vector campaign per backend per pack, bit-for-bit; PASS only when every supported backend reads a million vectors with zero disagreement; the malformed-input half is harness:parser-malformed",
"release_identity": {
"commit": "417c4a57 (the node pin at the kit's cut); the kit packs-class-v6-20261008T162324Z.zip 098e64c3…; the worker igneum-worker-cuda 9bfcf728",
"commit": "c30ab32c; the CPU reference class-v6 1a938abe4; the CUDA reader the kit's gen 6 worker 804a6f7f",
"lockfile": "",
"binary": "bin/linux/igneum-worker-cuda (the kit's)",
"network_object": "the class v5 freeze 1c420786, pack hl-v5-win e3da3669 id 0x6554474f410f36f3",
"activation": "igneum-devnet-4 object be5f4068",
"binary": "igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...",
"network_object": "the frozen class v6 object: pack hl-v6-all (tgz sha256 9131431015e102f4..., re-exported byte for byte from class-v6 1a938abe4 on build-4 at 21:44 UK, every file's sha256 equal), id 0x4de7b836cc40a4ea, epoch seed edc4fa84... (the genesis seeds) over the node1 state stream",
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
"profile_hashes": ""
},
"claim_impact": "POW-01's CUDA half on the class v5 object and all three class v6 D1 candidates: a million nonces agree bit-for-bit with the CPU reference on three CUDA generations each; OpenCL and Metal remain",
"claim_impact": "POW-01's CUDA half across a dataset-day switch on the frozen object: CUDA against the CPU reference bit for bit on three ranges with the day switch at nonce 1572864. NOT same-work evidence: the node engine refuses this seed/stream pair (IgneumEngine::epoch_for's class v5 check wants the stream's block af89be5d... to equal the epoch seed edc4fa84...), so the node and pool readers cannot read it; the coordinator's ruling 22:0x UK keeps it as the CUDA and CPU-only row",
"reviewer": "",
"at": "2026-10-08T20:10:24.686Z"
"at": "2026-10-08T21:36:08.400Z"
}
}
},
@ -1438,19 +1438,19 @@
"manual_page": 24,
"owner_lane": "hash lane (a690540514aa453d7)",
"run_status": "NOT RUN",
"evidence_path": "docs/analysis/review-2026-10-08-b/f10/packfile-test.log;docs/analysis/review-2026-10-08-b/f10/geometry-check-mini.log; docs/analysis/class-v6/family-gate.md; docs/analysis/class-v6/rows/live-dataset-census-1a938abe4.md",
"run_id": "census-v6-live-20261008-2210",
"updated": "2026-10-08T21:20:19.390Z",
"evidence_path": "docs/analysis/review-2026-10-08-b/f10/packfile-test.log;docs/analysis/review-2026-10-08-b/f10/geometry-check-mini.log; docs/analysis/class-v6/family-gate.md; docs/analysis/class-v6/rows/chainseed-census-1a938abe4.md; docs/analysis/class-v6/rows/pairing-20261008.md",
"run_id": "hash-lane-20261008-batch3",
"updated": "2026-10-08T21:34:44.641Z",
"evidence_record": {
"requirement_id": "POW-02",
"decision": "PASS",
"method": "native",
"cell": "census:class-v6",
"cell": "suite:pow",
"manifest_sha": "1a938abe4",
"run_id": "census-v6-live-20261008-2210",
"evidence": "docs/analysis/class-v6/rows/live-dataset-census-1a938abe4.md",
"run_id": "hash-lane-20261008-batch3",
"evidence": "docs/analysis/class-v6/rows/pairing-20261008.md",
"in_progress": false,
"coverage": "partial: the fold's index statistics and the grammar bounds on 256 seeds plus the F8 set; the malformed programs are owed to harness:parser-malformed",
"coverage": "partial: program derivation, ds55 geometry, the v6 fold, the packs and the spec read-back tests; the independent re-implementation and the index-fold census are the hash lane's harnesses",
"release_identity": {
"commit": "1a938abe4",
"lockfile": "",
@ -1461,7 +1461,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:20:19.390Z"
"at": "2026-10-08T21:34:44.641Z"
},
"in_progress_since": "2026-10-08T20:07:26.255Z",
"approvals": {
@ -1523,8 +1523,8 @@
"method": "native",
"cell": "census:class-v6",
"manifest_sha": "1a938abe4",
"run_id": "census-v6-live-20261008-2210",
"evidence": "docs/analysis/class-v6/rows/live-dataset-census-1a938abe4.md",
"run_id": "census-v6-chainseed-20261008-2230",
"evidence": "docs/analysis/class-v6/rows/chainseed-census-1a938abe4.md",
"in_progress": false,
"coverage": "partial: the fold's index statistics and the grammar bounds on 256 seeds plus the F8 set; the malformed programs are owed to harness:parser-malformed",
"release_identity": {
@ -1537,7 +1537,29 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:20:19.390Z"
"at": "2026-10-08T21:33:35.822Z"
},
"suite:pow": {
"requirement_id": "POW-02",
"decision": "PASS",
"method": "native",
"cell": "suite:pow",
"manifest_sha": "1a938abe4",
"run_id": "hash-lane-20261008-batch3",
"evidence": "docs/analysis/class-v6/rows/pairing-20261008.md",
"in_progress": false,
"coverage": "partial: program derivation, ds55 geometry, the v6 fold, the packs and the spec read-back tests; the independent re-implementation and the index-fold census are the hash lane's harnesses",
"release_identity": {
"commit": "1a938abe4",
"lockfile": "",
"binary": "",
"network_object": "",
"activation": "",
"profile_hashes": ""
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:34:44.641Z"
}
}
},
@ -2073,34 +2095,32 @@
"owner": "Cryptography + GPU lead",
"manual_page": 26,
"owner_lane": "hash lane (a690540514aa453d7)",
"run_status": "NOT RUN",
"evidence_path": "docs/analysis/class-v6/rows/pow-07-fp32-unreachable.md",
"run_id": "hash-lane-20261008-batch2",
"updated": "2026-10-08T19:59:34.316Z",
"run_status": "PASS",
"evidence_path": "docs/analysis/class-v6/rows/pairing-20261008.md",
"run_id": "hash-lane-20261008-batch3",
"updated": "2026-10-08T21:34:44.641Z",
"evidence_record": {
"cell": "suite:pow",
"manifest_sha": "b24dfc162",
"coverage": {
"POW-02": "partial: program derivation, ds55 geometry, the v6 fold, the packs and the spec read-back tests; the independent re-implementation and the index-fold census are the hash lane's harnesses",
"POW-08": "partial: the freeze list and the generator version pin; the public-claim scrub is the site gate's",
"POW-07": "the mixed FP32 branch is excluded and unreachable: no class flag reaches an FP op in igneum-pow on master (the mixedfp lane's branch is not on master); evidence the grep of the emitters on master, recorded by the hash lane"
},
"at": "2026-10-08T19:59:34.316Z",
"method": "native",
"requirement_id": "POW-08",
"decision": "NOT RUN",
"reviewer": "",
"claim_impact": "",
"decision": "PASS",
"method": "native",
"cell": "suite:pow",
"manifest_sha": "1a938abe4",
"run_id": "hash-lane-20261008-batch3",
"evidence": "docs/analysis/class-v6/rows/pairing-20261008.md",
"in_progress": false,
"coverage": "partial: the freeze list and the generator version pin; the public-claim scrub is the site gate's",
"release_identity": {
"commit": "b24dfc162",
"commit": "1a938abe4",
"lockfile": "",
"binary": "",
"network_object": "",
"activation": "",
"profile_hashes": ""
}
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:34:44.641Z"
},
"in_progress_since": "2026-10-08T19:59:34.316Z",
"approvals": {
"scope_approved": null,
"implementation_complete": null,
@ -2109,30 +2129,26 @@
},
"evidence_records": {
"suite:pow": {
"cell": "suite:pow",
"manifest_sha": "b24dfc162",
"coverage": {
"POW-02": "partial: program derivation, ds55 geometry, the v6 fold, the packs and the spec read-back tests; the independent re-implementation and the index-fold census are the hash lane's harnesses",
"POW-08": "partial: the freeze list and the generator version pin; the public-claim scrub is the site gate's",
"POW-07": "the mixed FP32 branch is excluded and unreachable: no class flag reaches an FP op in igneum-pow on master (the mixedfp lane's branch is not on master); evidence the grep of the emitters on master, recorded by the hash lane"
},
"at": "2026-10-08T19:59:34.316Z",
"method": "native",
"requirement_id": "POW-08",
"decision": "NOT RUN",
"reviewer": "",
"claim_impact": "",
"decision": "PASS",
"method": "native",
"cell": "suite:pow",
"manifest_sha": "1a938abe4",
"run_id": "hash-lane-20261008-batch3",
"evidence": "docs/analysis/class-v6/rows/pairing-20261008.md",
"in_progress": false,
"coverage": "partial: the freeze list and the generator version pin; the public-claim scrub is the site gate's",
"release_identity": {
"commit": "b24dfc162",
"commit": "1a938abe4",
"lockfile": "",
"binary": "",
"network_object": "",
"activation": "",
"profile_hashes": ""
},
"run_id": "hash-lane-20261008-batch2",
"evidence": "docs/analysis/class-v6/rows/pow-07-fp32-unreachable.md",
"in_progress": true
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:34:44.641Z"
}
}
}
@ -5190,7 +5206,7 @@
"run_status": "PASS",
"evidence_path": "docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json",
"run_id": "enforced-proving-20261008-02",
"updated": "2026-10-08T21:23:06.293Z",
"updated": "2026-10-08T21:36:59.823Z",
"evidence_record": {
"requirement_id": "EVM-08",
"decision": "PASS",
@ -5211,7 +5227,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
},
"dependency": "the first pin into elf/prior/ (the node lane, key-succession-pin, tonight by 21:00) and the devnet-4 succession height (main, by 22:00 under the floor rule)",
"approvals": {
@ -5241,7 +5257,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
}
}
}
@ -5294,7 +5310,7 @@
"run_status": "NOT RUN",
"evidence_path": "build-1:/srv/artefacts/tas/201-7cfa422a-aa0e0f45/node-7cfa422a/box4-exec.log; docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json",
"run_id": "enforced-proving-20261008-02",
"updated": "2026-10-08T21:23:06.293Z",
"updated": "2026-10-08T21:36:59.823Z",
"evidence_record": {
"requirement_id": "ZKP-01",
"decision": "PASS",
@ -5315,7 +5331,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
},
"in_progress_since": "2026-10-08T19:32:50.856Z",
"approvals": {
@ -5372,7 +5388,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
}
}
},
@ -5407,7 +5423,7 @@
"run_status": "PASS",
"evidence_path": "docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json",
"run_id": "enforced-proving-20261008-02",
"updated": "2026-10-08T21:23:06.293Z",
"updated": "2026-10-08T21:36:59.823Z",
"evidence_record": {
"requirement_id": "ZKP-02",
"decision": "PASS",
@ -5428,7 +5444,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
},
"dependency": "the mixed-pair crossing needs the node lane's first pin into elf/prior/ (key-succession-pin, tonight by 21:00) and the next-pair proof (build-2:/home/build/enforced-fixtures/next-pair-block-56-shard-0-compressed.bin)",
"approvals": {
@ -5458,7 +5474,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
}
}
},
@ -5493,7 +5509,7 @@
"run_status": "NOT RUN",
"evidence_path": "build-1:/srv/artefacts/tas/201-7cfa422a-aa0e0f45/node-7cfa422a/box4-exec.log; docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json",
"run_id": "enforced-proving-20261008-02",
"updated": "2026-10-08T21:23:06.293Z",
"updated": "2026-10-08T21:36:59.823Z",
"evidence_record": {
"requirement_id": "ZKP-03",
"decision": "PASS",
@ -5514,7 +5530,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
},
"in_progress_since": "2026-10-08T19:32:50.856Z",
"approvals": {
@ -5571,7 +5587,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
}
}
},
@ -5606,7 +5622,7 @@
"run_status": "PASS",
"evidence_path": "docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json",
"run_id": "enforced-proving-20261008-02",
"updated": "2026-10-08T21:23:06.293Z",
"updated": "2026-10-08T21:36:59.823Z",
"evidence_record": {
"requirement_id": "ZKP-04",
"decision": "PASS",
@ -5627,7 +5643,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
},
"dependency": "the proof side of the derivation (P22 stages 1 to 3) changes both guests' public values and so both program ids, so it ships only through a key succession (docs/design/key-succession.md, key-succession-node 291ee6ae); stage 1 (the inputs commitment carried by shard 0 and the aggregator, vetoed natively) is on branch p22-stage-1 under test since 18:46 UK; the clocks (stage 1 09:00, stage 2 14:00, stage 3's design 18:00 UK on 9 October 2026) stand because the succession's first height is asked of main by 22:00 under the floor rule; without a named height the stages are built and tested on their branch and wait for the succession that carries them",
"approvals": {
@ -5657,7 +5673,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
}
}
},
@ -5692,7 +5708,7 @@
"run_status": "PASS",
"evidence_path": "docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json",
"run_id": "enforced-proving-20261008-02",
"updated": "2026-10-08T21:23:06.293Z",
"updated": "2026-10-08T21:36:59.823Z",
"evidence_record": {
"requirement_id": "ZKP-05",
"decision": "PASS",
@ -5713,7 +5729,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
},
"approvals": {
"scope_approved": null,
@ -5742,7 +5758,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
}
}
},
@ -5905,7 +5921,7 @@
"run_status": "PASS",
"evidence_path": "docs/plans/proving-enforcement/succession-360-window-300-vcache-7.json",
"run_id": "enforced-proving-20261008-02",
"updated": "2026-10-08T21:23:06.293Z",
"updated": "2026-10-08T21:36:59.823Z",
"evidence_record": {
"requirement_id": "ZKP-08",
"decision": "PASS",
@ -5926,7 +5942,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
},
"dependency": "the proof side of the derivation (P22 stages 1 to 3) changes both guests' public values and so both program ids, so it ships only through a key succession (docs/design/key-succession.md, key-succession-node 291ee6ae); stage 1 (the inputs commitment carried by shard 0 and the aggregator, vetoed natively) is on branch p22-stage-1 under test since 18:46 UK; the clocks (stage 1 09:00, stage 2 14:00, stage 3's design 18:00 UK on 9 October 2026) stand because the succession's first height is asked of main by 22:00 under the floor rule; without a named height the stages are built and tested on their branch and wait for the succession that carries them",
"approvals": {
@ -5956,7 +5972,7 @@
},
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:23:06.293Z"
"at": "2026-10-08T21:36:59.823Z"
}
}
}
@ -12091,30 +12107,30 @@
"POW-01",
"ROT-02"
],
"run_id": "kit-class-v6-20261008-01",
"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",
"updated": "2026-10-08T21:18:18.084Z",
"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:36:08.520Z",
"evidence_record": {
"requirement_id": "R2-F03-R02",
"decision": "NOT RUN",
"method": "GPU",
"cell": "kit:class-v6-fingerprints",
"manifest_sha": "ef0f2ed8",
"run_id": "kit-class-v6-20261008-01",
"evidence": "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",
"in_progress": true,
"coverage": "partial: the worker half (CPU reference, CUDA, Metal, OpenCL) on the same program packs; the node's and the pool's accepted work on the same job context are the CI steward's and the pool lane's cells; PASS only when every listed platform reads one fingerprint and the node and pool halves are green",
"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",
"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": "ef0f2ed8",
"commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728",
"lockfile": "",
"binary": "",
"network_object": "",
"activation": "",
"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 27810",
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
"profile_hashes": ""
},
"claim_impact": "",
"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",
"reviewer": "",
"at": "2026-10-08T21:18:18.084Z"
"at": "2026-10-08T21:36:08.520Z"
},
"evidence_records": {
"kit:class-v6-fingerprints": {
@ -12138,6 +12154,28 @@
"claim_impact": "",
"reviewer": "",
"at": "2026-10-08T21:18:18.084Z"
},
"harness:same-work": {
"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",
"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",
"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 27810",
"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",
"reviewer": "",
"at": "2026-10-08T21:36:08.520Z"
}
},
"in_progress_since": "2026-10-08T21:18:18.084Z",
@ -12179,42 +12217,53 @@
"POW-01",
"ROT-02"
],
"updated": "2026-10-08T20:10:24.556Z",
"run_id": "same-work-20261008-03",
"evidence_path": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json",
"updated": "2026-10-08T21:36:08.520Z",
"evidence_record": {
"reason": "R2-F03 (P0, the external review): the regression's harness is the owner lane's (CI steward, hash lane (ProgramClass::V6 on freeze), pool lane); not yet named in the map",
"at": "2026-10-08T20:10:24.556Z",
"method": "static",
"requirement_id": "R2-F03-R03",
"decision": "NOT RUN",
"reviewer": "",
"claim_impact": "",
"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",
"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": "",
"commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728",
"lockfile": "",
"binary": "",
"network_object": "",
"activation": "",
"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 27810",
"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",
"reviewer": "",
"at": "2026-10-08T21:36:08.520Z"
},
"evidence_records": {
"record": {
"reason": "R2-F03 (P0, the external review): the regression's harness is the owner lane's (CI steward, hash lane (ProgramClass::V6 on freeze), pool lane); not yet named in the map",
"at": "2026-10-08T20:10:24.556Z",
"method": "static",
"harness:same-work": {
"requirement_id": "R2-F03-R03",
"decision": "NOT RUN",
"reviewer": "",
"claim_impact": "",
"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",
"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": "",
"commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728",
"lockfile": "",
"binary": "",
"network_object": "",
"activation": "",
"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 27810",
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
"profile_hashes": ""
},
"in_progress": false
"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",
"reviewer": "",
"at": "2026-10-08T21:36:08.520Z"
}
},
"approvals": {

View file

@ -286,9 +286,16 @@ bs_wt_lock() {
local d="$BS_ROOT_REMOTE/_locks/wt-$BS_WT" t0 holder
t0=$(date +%s)
while :; do
if bs_ssh "mkdir '$d' 2>/dev/null && printf 'pid %s since %sZ: %s\n' '$$' \"\$(date -u +%H:%M:%S)\" '${BS_TOOL:-build} $BS_CRATE_REL' > '$d/holder'"; then BS_WT_LOCKED="$d"; trap 'bs_wt_unlock' EXIT; return 0; fi
if bs_ssh "mkdir '$d' 2>/dev/null && printf 'pid %s host %s since %sZ: %s\n' '$$' '$(hostname -s)' \"\$(date -u +%H:%M:%S)\" '${BS_TOOL:-build} $BS_CRATE_REL' > '$d/holder'"; then BS_WT_LOCKED="$d"; trap 'bs_wt_unlock' EXIT; return 0; fi
holder=$(bs_ssh "cat '$d/holder' 2>/dev/null; find '$d' -maxdepth 0 -mmin +180 -print 2>/dev/null | grep -q . && echo STALE" 2>/dev/null || true)
case "$holder" in *STALE*) bs_log "worktree lock $d is older than 3 h; taking it over"; bs_ssh "rm -rf '$d'"; continue ;; esac
# the dead-holder class (8 October 2026, 21:11 to 22:11 UK): a build-remote killed by its pid never runs its EXIT trap, so the
# box kept its lock for the 3 h rule and the next run on that worktree waited an hour. The holder line names the Mac and
# the pid; a waiter on the same Mac whose pid is dead takes the lock over at once and says so.
case "$holder" in
"pid "*" host $(hostname -s) since "*) local hp; hp=$(printf '%s' "$holder" | sed -n 's/^pid \([0-9]*\) host .*/\1/p')
if [ -n "$hp" ] && ! kill -0 "$hp" 2>/dev/null; then bs_log "worktree lock $d held by pid $hp of this Mac, which is dead; taking it over"; bs_ssh "rm -rf '$d'"; continue; fi ;;
esac
[ $(( $(date +%s) - t0 )) -lt 7200 ] || bs_die "gave up after 2 h waiting for the worktree lock $d (held: $holder)"
[ $(( ($(date +%s) - t0) % 60 )) -lt 10 ] && bs_log "waiting for another run on worktree $BS_WT: ${holder:-?}"
sleep 10

View file

@ -19,5 +19,7 @@
"vk_sha256": "0x8b4da5bff86d963f4210a78e5d800a1cd00ab41b158f6962f4ac009edc249d4c"
},
"sp1_circuit_version": "v6.1.0",
"sp1_crate_version": "6.8.1"
"sp1_crate_version": "6.8.1",
"source_commit": "15bb6cdd43bf0e52fca0df0f1dd880e124d03acf",
"guest_input_format": 1
}

View file

@ -74,6 +74,11 @@ fn run() -> Result<()> {
println!("RESULT id: {}", pinned.describe());
return Ok(());
}
// A host whose code writes a guest input layout the pinned pair does not read never builds an input for it: refused
// here with the source commit to build from (aggregate, chain and every fixture mode build guest inputs; id and the verify modes do not).
if !mode.starts_with("verify") {
pinned.manifest.check_input_format(igneum_prove_core::shard::GUEST_INPUT_FORMAT)?;
}
if mode == "verify" {
// proving v0 (spec 7.7): the node's proof pool verifies a submitted shard proof off the consensus path
return run_verify(&pinned, &arg("--proof").context("--proof <file>")?, &arg("--statement").context("--statement 0x<keccak of the public values>")?);

View file

@ -61,6 +61,36 @@ pub struct Manifest {
/// from its object, never from here).
#[serde(default, skip_serializing_if = "Option::is_none")]
pub succession: Option<Succession>,
/// V6-10 provenance (8 October 2026): the commit the pinned pair was built from; the host for this pair is built
/// from it (the steward's release-manifest check reads it as an ancestor of the tree).
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_commit: Option<String>,
/// The guest input layout the pinned pair reads (`igneum_prove_core::shard::GUEST_INPUT_FORMAT` of its source; absent
/// on a pin from before the field, which is format 1). A host whose code writes another layout refuses to start
/// (22:0x UK, 8 October 2026: a host from master wrote format 3 to the 5 October guests and read "public values are
/// 0 bytes" on a 3060 and a 4060; the kit's prover is built from `source_commit`, never from a tree of another format).
#[serde(default, skip_serializing_if = "Option::is_none")]
pub guest_input_format: Option<u32>,
}
impl Manifest {
/// The input layout the pinned pair reads: the manifest's field, or 1 for a pin from before the field.
pub fn input_format(&self) -> u32 {
self.guest_input_format.unwrap_or(1)
}
/// Refuses a host whose code writes a layout the pinned pair does not read; the line names the source commit to
/// build the prover from instead.
pub fn check_input_format(&self, code_format: u32) -> Result<()> {
let pinned = self.input_format();
if pinned == code_format {
return Ok(());
}
anyhow::bail!(
"this host writes guest input format {code_format} and the pinned pair (shard {}) reads format {pinned}: the prover for this pair is built from the manifest's source commit {}, never from this tree (or the pin moves with the code: proving/igneum-prove/pin-guests.sh)",
self.shard.program_id,
self.source_commit.as_deref().unwrap_or("(absent: a pin from before provenance; its source is the commit that last changed elf/igneum-prove-program.elf)")
)
}
}
/// The prior pair's block: the same per-program fields as the top level and the time it was pinned.
@ -227,6 +257,36 @@ pub fn claimed_program_id(proof: &SP1ProofWithPublicValues) -> Option<B256> {
mod tests {
use super::*;
/// Known-failed first: a manifest naming another input layout refuses the host with the source commit to build from;
/// a manifest naming none reads as format 1; the code's own format passes.
#[test]
fn a_pinned_pair_of_another_input_format_refuses_this_host_and_names_the_source_to_build() {
let mut m = Manifest::embedded().unwrap();
m.guest_input_format = Some(igneum_prove_core::shard::GUEST_INPUT_FORMAT + 1);
m.source_commit = Some("abc123".into());
let e = m.check_input_format(igneum_prove_core::shard::GUEST_INPUT_FORMAT).unwrap_err().to_string();
assert!(e.contains("built from the manifest's source commit abc123"), "{e}");
m.guest_input_format = None;
assert_eq!(m.input_format(), 1, "a pin from before the field is format 1");
if igneum_prove_core::shard::GUEST_INPUT_FORMAT != 1 {
let e = m.check_input_format(igneum_prove_core::shard::GUEST_INPUT_FORMAT).unwrap_err().to_string();
assert!(e.contains("reads format 1"), "{e}");
}
m.guest_input_format = Some(igneum_prove_core::shard::GUEST_INPUT_FORMAT);
m.check_input_format(igneum_prove_core::shard::GUEST_INPUT_FORMAT).unwrap();
// the embedded manifest itself: Pinned::load still answers (id and the verify modes work on a held pin), and the
// input-format check either passes or names the source commit the prover is built from
let embedded = Manifest::embedded().unwrap();
Pinned::load().unwrap();
match embedded.check_input_format(igneum_prove_core::shard::GUEST_INPUT_FORMAT) {
Ok(()) => assert_eq!(embedded.input_format(), igneum_prove_core::shard::GUEST_INPUT_FORMAT),
Err(e) => {
assert!(e.to_string().contains("guest input format"), "{e}");
assert!(embedded.source_commit.is_some(), "a held pin names the source commit its prover is built from");
}
}
}
#[test]
fn manifest_parses_and_names_both_programs() {
let m = Manifest::embedded().unwrap();

View file

@ -0,0 +1,6 @@
{
"run_id": "census-v6-chainseed-20261008-2230",
"manifest_sha": "1a938abe4",
"evidence_dir": "docs/analysis/class-v6/rows/chainseed-census-1a938abe4",
"cells": [ { "cell": "census:class-v6", "status": "PASS", "method": "native", "evidence": "docs/analysis/class-v6/rows/chainseed-census-1a938abe4.md" } ]
}

View file

@ -0,0 +1,19 @@
{
"run_id": "hash-lane-20261008-batch3",
"manifest_sha": "1a938abe4",
"evidence_dir": "docs/analysis/class-v6/rows",
"cells": [
{
"cell": "harness:p01-vectors",
"status": "PASS",
"method": "native",
"evidence": "docs/analysis/class-v6/rows/pairing-20261008.md"
},
{
"cell": "suite:pow",
"status": "PASS",
"method": "native",
"evidence": "docs/analysis/class-v6/rows/pairing-20261008.md"
}
]
}

View file

@ -0,0 +1,37 @@
{
"run_id": "same-work-20261008-01",
"manifest_sha": "c30ab32c",
"method": "GPU",
"evidence_dir": "build-1:/srv/artefacts/tas/same-work-20261008-01",
"boxes": [
"build-4 (CPU reference)",
"tas-p01-5090",
"tas-p01-4090",
"tas-p01-3090"
],
"release_identity": {
"lockfile": "",
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
"profile_hashes": "",
"commit": "c30ab32c; the CPU reference class-v6 1a938abe4; the CUDA reader the kit's gen 6 worker 804a6f7f",
"binary": "igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...",
"network_object": "the frozen class v6 object: pack hl-v6-all (tgz sha256 9131431015e102f4..., re-exported byte for byte from class-v6 1a938abe4 on build-4 at 21:44 UK, every file's sha256 equal), id 0x4de7b836cc40a4ea, epoch seed edc4fa84... (the genesis seeds) over the node1 state stream"
},
"claim_impact": "POW-01's CUDA half across a dataset-day switch on the frozen object: CUDA against the CPU reference bit for bit on three ranges with the day switch at nonce 1572864. NOT same-work evidence: the node engine refuses this seed/stream pair (IgneumEngine::epoch_for's class v5 check wants the stream's block af89be5d... to equal the epoch seed edc4fa84...), so the node and pool readers cannot read it; the coordinator's ruling 22:0x UK keeps it as the CUDA and CPU-only row",
"network_label": "on an island, not a network",
"note": "Context 01 at build-1:/srv/artefacts/tas/same-work-20261008-01/job-context.json (sha256 d2540e02...). CPU reference: igneum-pow hash-bound (class-v6 1a938abe4, binary 0d3f3fca...) on build-4, 21:46 to 21:55 UK, ref-D c49fed11... over [0, 1572864), ref-D1 5ae1220d... over [1572864, 3145728); ref-D's first million lines equal the hash lane's P01 reference /srv/artefacts/packs/p01-vectors/hl-v6-all.txt byte for byte. The node1 state stream (block af89be5d...) was written on build-4 at 15:34 UK, before the 20:00 UK split; the cell carries the island label by main's 22:2x UK rule. CUDA: runs after context 02 on the three pods (the fleet lane's runner), evidence cuda-<card>-<N>.json beside the context; in progress at the time of this record.",
"cells": [
{
"cell": "harness:p01-vectors",
"cases": [
"POW-01"
],
"status": "NOT RUN",
"method": "GPU",
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-01/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-01/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-01/references/ref-D1.txt",
"note": "the CUDA reads on the frozen object across the day switch are running after context 02; CPU reference written and cross-checked against the hash lane's P01 file; in progress",
"network_label": "on an island, not a network",
"in_progress": true
}
]
}

View file

@ -0,0 +1,50 @@
{
"run_id": "same-work-20261008-02",
"manifest_sha": "c30ab32c",
"method": "GPU",
"evidence_dir": "build-1:/srv/artefacts/tas/same-work-20261008-02",
"boxes": [
"build-4 (CPU reference, pool D1 pairing)",
"build-2 (node reader)",
"tas-p01-5090",
"tas-p01-4090",
"tas-p01-3090"
],
"release_identity": {
"lockfile": "",
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
"profile_hashes": "",
"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",
"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)"
},
"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 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, rerun pending. 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.",
"cells": [
{
"cell": "harness:same-work",
"cases": [
"R2-F03-R02"
],
"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",
"note": "node PASS x3, CPU reference written and cross-checked, CUDA 5090 phase 1 PASS and phases 2 and 3 running, pool D1 pairing rerun pending after the install fix, pool kit row BLOCKED by its V5 pins, Metal and OpenCL NOT RUN until the morning (Metal 08:30 UK on the mini, OpenCL 08:30 UK on PC 1); the case stays NOT RUN in progress until every reader has read",
"network_label": "on an island, not a network",
"in_progress": true
},
{
"cell": "harness:same-work",
"cases": [
"R2-F03-R03"
],
"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",
"note": "the dataset-day transition in phase 2: the node reader switched program and dataset at nonce 1572864 with the program id unchanged and both boundary hashes equal to the reference; the CUDA and pool phase 2 reads are pending; in progress",
"network_label": "on an island, not a network",
"in_progress": true
}
]
}

View file

@ -0,0 +1,50 @@
{
"run_id": "same-work-20261008-03",
"manifest_sha": "c30ab32c",
"method": "GPU",
"evidence_dir": "build-1:/srv/artefacts/tas/same-work-20261008-03",
"boxes": [
"build-4 (CPU reference)",
"build-2 (program-id witness)",
"tas-p01-5090",
"tas-p01-4090",
"tas-p01-3090"
],
"release_identity": {
"lockfile": "",
"activation": "none (a re-check of hashes against one job context, no chain state changes)",
"profile_hashes": "",
"commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728",
"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 27810"
},
"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",
"network_label": "on an island, not a network",
"note": "On an island, not a network: build-1's seed is one of devnet-4's islands since the epoch-3 cut (21:34 UK), its stream pulled at 22:18 UK; epoch 2's object predates the split. Context 03 at build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json (sha256 53837a96...). The witness for the id: igneum-miner program-id reads class v5 attempt 0 id 81fbfa3aa413173f under era 7c36b833... and era 00..00 alike, from the miner at same-work-node cc23f9bd on build-2 (the class v5 engine path; the 2.0.1 pair's miner ef0f2ed8 on build-1 has no program-id subcommand), and the node lane's placed (c) read gave the same id; the hand's RPC 26870 answered no published state stream for the block at 22:18 UK. Packs v5-epoch2-d20734 and d20735 (both id 0x81fbfa3aa413173f) exported from release-2.0.1's igneum-pow on build-4 at 22:19 UK; the CPU references run on build-4 under watchers from 22:20 UK (about 300 nonces a second a run); CUDA follows on the pods after contexts 02 and 01. Node and pool: the recheck subcommand is not on a release-line branch tonight, so those cells read NOT RUN with the 08:30 UK clock as the coordinator set; a labelled extra row from cc23f9bd's miner runs beside them when the references land.",
"cells": [
{
"cell": "harness:same-work",
"cases": [
"R2-F03-R02"
],
"status": "NOT RUN",
"method": "GPU",
"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",
"note": "CPU reference running (about 23:45 UK), CUDA after it, node and pool NOT RUN with the 08:30 UK clock on the release lines; in progress",
"network_label": "on an island, not a network",
"in_progress": true
},
{
"cell": "harness:same-work",
"cases": [
"R2-F03-R03"
],
"status": "NOT RUN",
"method": "GPU",
"evidence": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json",
"note": "the day switch 20734 to 20735 at nonce 1572864 on the live object; readers pending; in progress",
"network_label": "on an island, not a network",
"in_progress": true
}
]
}

View file

@ -17,7 +17,10 @@ The job context (the same-work test, docs/plans/igneum-2.0-same-work-test.md) na
day D+1), the prehash, the range width (range_log2, 20) and the boundary nonce; phase N runs nonces [(N-1)*2^w, N*2^w): phase 1
under day D, phase 3 under day D+1, phase 2 under day D up to the boundary nonce and day D+1 from it, no job line crossing the
boundary, and the evidence carries the boundary block (the nonce, the program id and day bytes on each side, the two hashes
either side) that the readers are compared on.
either side) that the readers are compared on. A worker holds one (epoch, day) pair, so before any job the driver sends the
worker `prepare <seed bytes> <day D+1 bytes> <pack dir of day D+1>` and waits for its `prepared` line (a `prepare-failed` line or
a ready line saying `prepare 0` is an error: the day switch cannot be driven); the first job on day D+1 then switches the pair,
as the miner does at a real day switch.
The job line is pool.rs's: `job <seq> <prehash hex> <share_target64 hex16> <start nonce> <nonces> <epoch seed bytes hex> <day bytes hex> class=<c> era=<era hex>`.
"""
import argparse, json, os, subprocess, sys, tempfile, time
@ -73,6 +76,19 @@ def run(a):
if line.startswith('ready'): ready = line.strip(); break
if time.time() - t0 > 120: break
if not ready: p.kill(); return {'error': 'the worker never said ready'}, 2
prepared = None
if len(seg_fields) > 1:
# the second segment's pair (day D+1) is prepared before any job: the worker builds it in the background and the first
# job on that day switches to it; a worker without prepare support cannot be driven across the boundary
if ' prepare 0' in ready: p.kill(); return {'error': f'the worker has no prepare support (ready line: {ready}); phase 2 needs it for the day switch'}, 2
ss2, se2, (sb2, db2, _c2, _er2, _pid2, _gen2) = seg_fields[1]
p.stdin.write(f"prepare {sb2} {db2} {segs[1][2]}\n"); p.stdin.flush()
t1 = time.time()
for line in p.stdout:
if line.startswith('prepared '): prepared = line.strip(); break
if line.startswith('prepare-failed'): p.kill(); return {'error': f'the worker refused the day D+1 pair: {line.strip()[:300]}'}, 2
if time.time() - t1 > 900: break
if not prepared: p.kill(); return {'error': 'the worker never said prepared for the day D+1 pair (900 s)'}, 2
got = {}; agree = 0; disagree = []; seq = 0; start = a.start; end = a.start + a.count; pending = set()
def feed():
nonlocal seq, start
@ -102,13 +118,15 @@ def run(a):
except Exception: pass
p.wait(timeout=30)
missing = [n for n in range(a.start, end) if n not in got]
ev = {'case': 'POW-01', 'profile': 'P01', 'pack': os.path.basename(os.path.abspath(a.pack)), 'program_id': program_id, 'generator': generator, 'class': cls,
pack_name = os.path.basename(os.path.abspath(a.pack)) if a.pack else ', '.join(os.path.basename(os.path.abspath(s[2])) for s in segs)
ev = {'case': 'POW-01', 'profile': 'P01', 'pack': pack_name, 'program_id': program_id, 'generator': generator, 'class': cls,
'worker': a.worker, 'worker_args': a.worker_arg, 'device_line': ready, 'manifest_sha': a.manifest, 'prehash': a.prehash,
'nonces': {'start': a.start, 'count': a.count}, 'answered': len(got), 'agree': agree, 'disagree': disagree_count[0], 'missing': len(missing),
'first_disagreements': disagree, 'first_missing': missing[:10], 'worker_errors': errors[:10], 'seconds': round(time.time() - t0, 1), 'at': time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime())}
if jc is not None:
ev['job_context'] = os.path.abspath(a.job_context); ev['phase'] = int(a.phase); ev['object'] = jc.get('object')
ev['segments'] = [{'start': ss, 'end': se, 'program_id': f[4], 'day_bytes': f[1], 'class': f[2]} for (ss, se, f) in seg_fields]
ev['segments'] = [{'start': ss, 'end': se, 'program_id': f[4], 'day_bytes': f[1], 'class': f[2], 'pack': os.path.basename(os.path.abspath(sg[2]))} for (ss, se, f), sg in zip(seg_fields, segs)]
if prepared: ev['prepare_line'] = prepared
if len(seg_fields) == 2:
b = seg_fields[1][0]; fb, fa = seg_fields[0][2], seg_fields[1][2]
ev['boundary'] = {'nonce': b, 'program_id_before': fb[4], 'program_id_after': fa[4], 'day_bytes_before': fb[1], 'day_bytes_after': fa[1],
@ -126,11 +144,16 @@ 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 1", flush=True)
print("ready fake-gpu 0 prepare " + ("0" if os.environ.get("NOPREPARE") == "1" else "1"), flush=True)
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:
p = line.split()
if p[0] == "prepare":
if os.environ.get("PREPFAIL") == "1": print(f"prepare-failed {p[1]} {p[2]} nvcc exit 1", flush=True); continue
resident.add(p[2]); print(f"prepared {p[1]} {p[2]} 12.0 nvcc 10.0 cache 1.0 dataset 1.0 resident 2 programs 2 datasets", flush=True); continue
if p[0] != "job": continue
seq, start, n = int(p[1]), int(p[4]), int(p[5])
if p[7] not in resident: print(f"error {seq} day seed mismatch: the job's day seed {p[7]} is not resident", flush=True); print(f"done {seq} 0 0", flush=True); continue
for k in range(start, start + n):
if os.environ.get("DROP") == "1" and k == 9: continue
h = (k * 0x9e3779b97f4a7c15) % (1 << 64)
@ -157,18 +180,23 @@ for line in sys.stdin:
refD1 = os.path.join(d, 'refD1.txt'); open(refD1, 'w').write(''.join(f"{k} {((k * 0x9e3779b97f4a7c15) % (1 << 64)) ^ 0xdd00dd00dd00dd00:016x}\n" for k in range(0, 48)))
jc = os.path.join(d, 'job-context.json')
json.dump({'object': 'fake', 'prehash': '00' * 31 + '01', 'range_log2': 4, 'boundary_nonce': 24, 'manifest': 'deadbeef', 'packs': {'D': pack, 'D1': pack2}, 'references': {'D': refD, 'D1': refD1}}, open(jc, 'w'))
def gojc(phase, tag, boundary=None):
def gojc(phase, tag, boundary=None, env=None):
if boundary is not None:
j = json.load(open(jc)); j['boundary_nonce'] = boundary; json.dump(j, open(jc, 'w'))
out = os.path.join(d, f'{tag}.json')
r = subprocess.run([sys.executable, __file__, '--worker', sys.executable, '--worker-arg', w, '--job-context', jc, '--phase', str(phase), '--job-nonces', '8', '--out', out], capture_output=True, text=True)
out = os.path.join(d, f'{tag}.json'); e = dict(os.environ); e.update(env or {})
r = subprocess.run([sys.executable, __file__, '--worker', sys.executable, '--worker-arg', w, '--job-context', jc, '--phase', str(phase), '--job-nonces', '8', '--out', out], capture_output=True, text=True, env=e)
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}')
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(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
if not (b.get('switched') is True and str(ev.get('prepare_line', '')).startswith('prepared ' + 'aa' * 32 + ' ' + 'dd' * 19) and ev['segments'][1]['pack'] == 'pack2'): print(f"self-test failed: phase 2 did not prepare the day D+1 pair before the first job on it: {ev.get('prepare_line')} {ev.get('segments')}"); fails = 1
rc, ev, o = gojc(2, 'jc2noprep', env={'NOPREPARE': '1'})
if rc != 2 or 'no prepare support' not in o: print(f"self-test failed: a worker without prepare support was not refused for phase 2: rc={rc} {o[-200:]}"); fails = 1
rc, ev, o = gojc(2, 'jc2prepfail', env={'PREPFAIL': '1'})
if rc != 2 or 'refused the day D+1 pair' not in o: print(f"self-test failed: a prepare-failed line was not an error: rc={rc} {o[-200:]}"); fails = 1
rc, ev, o = gojc(2, 'jc2bad', boundary=40)
if rc == 0 or 'not inside phase 2' not in o: print(f"self-test failed: a boundary outside phase 2 was not refused: rc={rc} {o[-200:]}"); fails = 1
if not fails: print('self-test passed: a clean million-shape run is PASS with the counts; one wrong hash is FAIL naming the nonce, the gpu and cpu hashes; an unanswered nonce is FAIL naming it; the job-context form runs each phase on its range and pack, splits phase 2 at the boundary nonce with the boundary block, and refuses a boundary outside phase 2; the job lines carry the pack fields and the all-pass target')
@ -185,5 +213,6 @@ if __name__ == '__main__':
if not a.job_context and not (a.pack and a.reference): ap.error('--pack and --reference, or --job-context with --phase')
ev, rc = run(a)
os.makedirs(os.path.dirname(os.path.abspath(a.out)), exist_ok=True); json.dump(ev, open(a.out, 'w'), indent=2)
if 'error' in ev: print(f"p01-vectors: ERROR: {ev['error']} -> {a.out}"); sys.exit(rc)
print(f"p01-vectors: {ev.get('verdict', 'ERROR')}: answered {ev.get('answered')} agree {ev.get('agree')} disagree {ev.get('disagree')} missing {ev.get('missing')} in {ev.get('seconds')} s -> {a.out}")
sys.exit(rc)