adv-mixer-2: report skeleton: exact model A and C tails, the reading per attacker, the redraw rule row, ledger
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
2f5483a343
commit
70ff730a30
13 changed files with 455 additions and 13 deletions
185
docs/analysis/cryptanalysis/logs/adv-mixer-2/exact-w32.log
Normal file
185
docs/analysis/cryptanalysis/logs/adv-mixer-2/exact-w32.log
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
adv-mixer-2 exact --threads 40 | internal adversarial pass, not an independent review | class v4 x8, 72 applications per item
|
||||
|
||||
exact: w32 over 2^31 odd constants, 10.3 s
|
||||
|
||||
| w32 | Constants | Fraction | log2 |
|
||||
|---|---|---|---|
|
||||
| 1 | 2 | 9.3132e-10 | -30.00 |
|
||||
| 2 | 118 | 5.4948e-8 | -24.12 |
|
||||
| 3 | 3136 | 1.4603e-6 | -19.39 |
|
||||
| 4 | 49608 | 2.3101e-5 | -15.40 |
|
||||
| 5 | 520000 | 2.4214e-4 | -12.01 |
|
||||
| 6 | 3805120 | 1.7719e-3 | -9.14 |
|
||||
| 7 | 19948544 | 9.2893e-3 | -6.75 |
|
||||
| 8 | 75681408 | 3.5242e-2 | -4.83 |
|
||||
| 9 | 207381504 | 9.6570e-2 | -3.37 |
|
||||
| 10 | 405171200 | 1.8867e-1 | -2.41 |
|
||||
| 11 | 550371328 | 2.5629e-1 | -1.96 |
|
||||
| 12 | 498774016 | 2.3226e-1 | -2.11 |
|
||||
| 13 | 282427392 | 1.3152e-1 | -2.93 |
|
||||
| 14 | 89686016 | 4.1763e-2 | -4.58 |
|
||||
| 15 | 13107200 | 6.1035e-3 | -7.36 |
|
||||
| 16 | 557056 | 2.5940e-4 | -11.91 |
|
||||
|
||||
mean w32 per word 11.1111; expected cost A mean 225.7778
|
||||
exact cost A median 226 (the census uses 231)
|
||||
|
||||
| Gain A threshold | Cost A <= | P(day) exact | log2 | Days per 100 years (36,525) | Expected in 2^24 | Expected in 2^32 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 1.05x | 220 | 1.9247e-1 | -2.4 | 7029.9697 | 3229112.12 | 826652702.6 |
|
||||
| 1.1x | 209 | 4.3257e-3 | -7.9 | 157.9956 | 72572.93 | 18578670.2 |
|
||||
| 1.15x | 200 | 2.7628e-5 | -15.1 | 1.0091 | 463.52 | 118662.3 |
|
||||
| 1.2x | 192 | 7.0629e-8 | -23.8 | 0.0026 | 1.18 | 303.3 |
|
||||
| 1.3x | 177 | 2.4424e-14 | -45.2 | 0.0000 | 0.00 | 0.0 |
|
||||
| 1.5x | 154 | 3.0484e-28 | -91.4 | 0.0000 | 0.00 | 0.0 |
|
||||
| 2x | 115 | 2.1503e-63 | -208.2 | 0.0000 | 0.00 | 0.0 |
|
||||
| 3x | 77 | 1.5073e-116 | -384.8 | 0.0000 | 0.00 | 0.0 |
|
||||
|
||||
| Cost A | P exact | log2 |
|
||||
|---|---|---|
|
||||
| 151 | 1.6805e-30 | -98.9 |
|
||||
| 152 | 9.0505e-30 | -96.5 |
|
||||
| 153 | 4.7699e-29 | -94.1 |
|
||||
| 154 | 2.4603e-28 | -91.7 |
|
||||
| 155 | 1.2421e-27 | -89.4 |
|
||||
| 156 | 6.1373e-27 | -87.1 |
|
||||
| 157 | 2.9683e-26 | -84.8 |
|
||||
| 158 | 1.4053e-25 | -82.6 |
|
||||
| 159 | 6.5125e-25 | -80.3 |
|
||||
| 160 | 2.9545e-24 | -78.2 |
|
||||
| 161 | 1.3121e-23 | -76.0 |
|
||||
| 162 | 5.7045e-23 | -73.9 |
|
||||
| 163 | 2.4280e-22 | -71.8 |
|
||||
| 164 | 1.0117e-21 | -69.7 |
|
||||
| 165 | 4.1272e-21 | -67.7 |
|
||||
| 166 | 1.6483e-20 | -65.7 |
|
||||
| 167 | 6.4452e-20 | -63.8 |
|
||||
| 168 | 2.4673e-19 | -61.8 |
|
||||
| 169 | 9.2471e-19 | -59.9 |
|
||||
| 170 | 3.3930e-18 | -58.0 |
|
||||
| 171 | 1.2189e-17 | -56.2 |
|
||||
| 172 | 4.2868e-17 | -54.4 |
|
||||
| 173 | 1.4760e-16 | -52.6 |
|
||||
| 174 | 4.9753e-16 | -50.8 |
|
||||
| 175 | 1.6418e-15 | -49.1 |
|
||||
| 176 | 5.3040e-15 | -47.4 |
|
||||
| 177 | 1.6774e-14 | -45.8 |
|
||||
| 178 | 5.1927e-14 | -44.1 |
|
||||
| 179 | 1.5736e-13 | -42.5 |
|
||||
| 180 | 4.6677e-13 | -41.0 |
|
||||
| 181 | 1.3552e-12 | -39.4 |
|
||||
| 182 | 3.8513e-12 | -37.9 |
|
||||
| 183 | 1.0712e-11 | -36.4 |
|
||||
| 184 | 2.9159e-11 | -35.0 |
|
||||
| 185 | 7.7680e-11 | -33.6 |
|
||||
| 186 | 2.0251e-10 | -32.2 |
|
||||
| 187 | 5.1661e-10 | -30.9 |
|
||||
| 188 | 1.2895e-9 | -29.5 |
|
||||
| 189 | 3.1495e-9 | -28.2 |
|
||||
| 190 | 7.5256e-9 | -27.0 |
|
||||
| 191 | 1.7592e-8 | -25.8 |
|
||||
| 192 | 4.0230e-8 | -24.6 |
|
||||
| 193 | 8.9987e-8 | -23.4 |
|
||||
| 194 | 1.9688e-7 | -22.3 |
|
||||
| 195 | 4.2127e-7 | -21.2 |
|
||||
| 196 | 8.8151e-7 | -20.1 |
|
||||
| 197 | 1.8037e-6 | -19.1 |
|
||||
| 198 | 3.6087e-6 | -18.1 |
|
||||
| 199 | 7.0586e-6 | -17.1 |
|
||||
| 200 | 1.3497e-5 | -16.2 |
|
||||
| 201 | 2.5227e-5 | -15.3 |
|
||||
| 202 | 4.6085e-5 | -14.4 |
|
||||
| 203 | 8.2276e-5 | -13.6 |
|
||||
| 204 | 1.4353e-4 | -12.8 |
|
||||
| 205 | 2.4465e-4 | -12.0 |
|
||||
| 206 | 4.0740e-4 | -11.3 |
|
||||
| 207 | 6.6268e-4 | -10.6 |
|
||||
| 208 | 1.0528e-3 | -9.9 |
|
||||
| 209 | 1.6334e-3 | -9.3 |
|
||||
| 210 | 2.4745e-3 | -8.7 |
|
||||
| 211 | 3.6598e-3 | -8.1 |
|
||||
| 212 | 5.2839e-3 | -7.6 |
|
||||
| 213 | 7.4457e-3 | -7.1 |
|
||||
| 214 | 1.0239e-2 | -6.6 |
|
||||
| 215 | 1.3738e-2 | -6.2 |
|
||||
| 216 | 1.7982e-2 | -5.8 |
|
||||
| 217 | 2.2958e-2 | -5.4 |
|
||||
| 218 | 2.8586e-2 | -5.1 |
|
||||
| 219 | 3.4704e-2 | -4.8 |
|
||||
| 220 | 4.1074e-2 | -4.6 |
|
||||
| 221 | 4.7382e-2 | -4.4 |
|
||||
| 222 | 5.3265e-2 | -4.2 |
|
||||
| 223 | 5.8341e-2 | -4.1 |
|
||||
| 224 | 6.2245e-2 | -4.0 |
|
||||
| 225 | 6.4677e-2 | -4.0 |
|
||||
| 226 | 6.5437e-2 | -3.9 |
|
||||
| 227 | 6.4448e-2 | -4.0 |
|
||||
| 228 | 6.1776e-2 | -4.0 |
|
||||
| 229 | 5.7617e-2 | -4.1 |
|
||||
| 230 | 5.2275e-2 | -4.3 |
|
||||
| 231 | 4.6124e-2 | -4.4 |
|
||||
| 232 | 3.9569e-2 | -4.7 |
|
||||
| 233 | 3.2996e-2 | -4.9 |
|
||||
| 234 | 2.6737e-2 | -5.2 |
|
||||
| 235 | 2.1047e-2 | -5.6 |
|
||||
| 236 | 1.6090e-2 | -6.0 |
|
||||
| 237 | 1.1943e-2 | -6.4 |
|
||||
| 238 | 8.6036e-3 | -6.9 |
|
||||
| 239 | 6.0137e-3 | -7.4 |
|
||||
| 240 | 4.0771e-3 | -7.9 |
|
||||
| 241 | 2.6802e-3 | -8.5 |
|
||||
| 242 | 1.7077e-3 | -9.2 |
|
||||
| 243 | 1.0543e-3 | -9.9 |
|
||||
| 244 | 6.3038e-4 | -10.6 |
|
||||
| 245 | 3.6493e-4 | -11.4 |
|
||||
| 246 | 2.0445e-4 | -12.3 |
|
||||
| 247 | 1.1080e-4 | -13.1 |
|
||||
| 248 | 5.8068e-5 | -14.1 |
|
||||
| 249 | 2.9412e-5 | -15.1 |
|
||||
| 250 | 1.4392e-5 | -16.1 |
|
||||
| 251 | 6.8003e-6 | -17.2 |
|
||||
| 252 | 3.1012e-6 | -18.3 |
|
||||
| 253 | 1.3642e-6 | -19.5 |
|
||||
| 254 | 5.7860e-7 | -20.7 |
|
||||
| 255 | 2.3647e-7 | -22.0 |
|
||||
| 256 | 9.3070e-8 | -23.4 |
|
||||
| 257 | 3.5256e-8 | -24.8 |
|
||||
| 258 | 1.2846e-8 | -26.2 |
|
||||
| 259 | 4.4996e-9 | -27.7 |
|
||||
| 260 | 1.5140e-9 | -29.3 |
|
||||
| 261 | 4.8901e-10 | -30.9 |
|
||||
| 262 | 1.5152e-10 | -32.6 |
|
||||
| 263 | 4.5000e-11 | -34.4 |
|
||||
| 264 | 1.2801e-11 | -36.2 |
|
||||
| 265 | 3.4848e-12 | -38.1 |
|
||||
| 266 | 9.0711e-13 | -40.0 |
|
||||
| 267 | 2.2558e-13 | -42.0 |
|
||||
| 268 | 5.3543e-14 | -44.1 |
|
||||
| 269 | 1.2118e-14 | -46.2 |
|
||||
| 270 | 2.6123e-15 | -48.4 |
|
||||
| 271 | 5.3586e-16 | -50.7 |
|
||||
| 272 | 1.0447e-16 | -53.1 |
|
||||
| 273 | 1.9335e-17 | -55.5 |
|
||||
| 274 | 3.3928e-18 | -58.0 |
|
||||
| 275 | 5.6372e-19 | -60.6 |
|
||||
| 276 | 8.8563e-20 | -63.3 |
|
||||
| 277 | 1.3137e-20 | -66.0 |
|
||||
| 278 | 1.8368e-21 | -68.9 |
|
||||
| 279 | 2.4171e-22 | -71.8 |
|
||||
| 280 | 2.9881e-23 | -74.8 |
|
||||
| 281 | 3.4636e-24 | -77.9 |
|
||||
| 282 | 3.7569e-25 | -81.1 |
|
||||
| 283 | 3.8049e-26 | -84.4 |
|
||||
| 284 | 3.5896e-27 | -87.8 |
|
||||
| 285 | 3.1466e-28 | -91.4 |
|
||||
| 286 | 2.5557e-29 | -95.0 |
|
||||
| 287 | 1.9175e-30 | -98.7 |
|
||||
|
||||
| Model C | Value |
|
||||
|---|---|
|
||||
| exact 2-adder set size (cost 0..=2) | 4192 |
|
||||
| P(word) | 1.9521e-6 (log2 -19.0) |
|
||||
| P(k >= 1, gain 1.067x) | 3.1232e-5 (log2 -15.0) |
|
||||
| P(k >= 2, gain 1.143x) | 4.5725e-10 (log2 -31.0) |
|
||||
| P(MUL any = 1) | 7.4506e-9 (log2 -27.0) |
|
||||
| P(ROT all equal) | 3.6347e-11 (log2 -34.7) |
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
adv-mixer-2 day --index 20733 | internal adversarial pass, not an independent review | class v4 x8, 72 applications per item
|
||||
|
||||
### day 20733 (2026-10-07)
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| seed64 | de33e763e23f9008 |
|
||||
| ROT | 28 11 18 18 13 28 5 13 |
|
||||
| MUL | d1d79e7f bcb61f8b 970e91ab d749d96d 143d7339 2cde0d69 12d0a8c1 2d335be9 80a8aae9 7ac896c7 9de23db7 c362827d 5f4cdb5b fc6c5097 6f547f83 1ac31b47 |
|
||||
| w32(MUL) | 10 11 13 13 11 12 11 13 12 12 10 10 13 10 10 12 |
|
||||
| RC | e5bef5a3 db2a7d90 cd1fa7e1 30289419 0a730d58 432f8579 6ab978a5 8c984f49 788c3c9e 051eef02 05e77db9 8b3cd4f3 6948d6cf 0d8677f6 f9505c8c 4513c163 |
|
||||
| cost A | 231 (gain 1.0000x against 231) |
|
||||
| model C k | 0 (gain 1.0000x) |
|
||||
| classes fired | none |
|
||||
|
||||
93
docs/analysis/cryptanalysis/logs/adv-mixer-2/smoke-plant.log
Normal file
93
docs/analysis/cryptanalysis/logs/adv-mixer-2/smoke-plant.log
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
adv-mixer-2 plant | internal adversarial pass, not an independent review | class v4 x8, 72 applications per item
|
||||
|
||||
### day 20729 unplanted
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| seed64 | 2e689968528b3e14 |
|
||||
| ROT | 6 25 5 25 29 11 9 21 |
|
||||
| MUL | addda577 e83ff665 a15aee9f 31ffb8cb e72c824d 225e647b 3ec0ace3 d1eb11d5 fa5c7dc5 40128acf 70bc55cf b823fa39 07fcdf49 56a6c8b1 c05d3115 02063ddd |
|
||||
| w32(MUL) | 12 9 12 10 12 11 11 12 10 10 12 9 8 14 11 8 |
|
||||
| RC | 0655b978 2c53cb31 e14235d3 30d45c30 5b07a13b 25271fad 418b165b f7fe03d7 67943b1d 5ba337a2 24aa3983 6abbbed4 12488b47 a4a81e53 96f96da0 b86823f8 |
|
||||
| cost A | 219 (gain 1.0548x against 231) |
|
||||
| model C k | 0 (gain 1.0000x) |
|
||||
| classes fired | ROT same-word pair sums to 32; ROT any pair sums to 32 |
|
||||
|
||||
### plant alleq on day 20729
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| seed64 | 2e689968528b3e14 |
|
||||
| ROT | 6 6 6 6 6 6 6 6 |
|
||||
| MUL | addda577 e83ff665 a15aee9f 31ffb8cb e72c824d 225e647b 3ec0ace3 d1eb11d5 fa5c7dc5 40128acf 70bc55cf b823fa39 07fcdf49 56a6c8b1 c05d3115 02063ddd |
|
||||
| w32(MUL) | 12 9 12 10 12 11 11 12 10 10 12 9 8 14 11 8 |
|
||||
| RC | 0655b978 2c53cb31 e14235d3 30d45c30 5b07a13b 25271fad 418b165b f7fe03d7 67943b1d 5ba337a2 24aa3983 6abbbed4 12488b47 a4a81e53 96f96da0 b86823f8 |
|
||||
| cost A | 219 (gain 1.0548x against 231) |
|
||||
| model C k | 0 (gain 1.0000x) |
|
||||
| classes fired | ROT all equal; ROT distinct <= 2; ROT distinct <= 3; ROT distinct <= 4; ROT max multiplicity >= 4; ROT column set == diagonal set |
|
||||
|
||||
### plant mul1 on day 20729
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| seed64 | 2e689968528b3e14 |
|
||||
| ROT | 6 25 5 25 29 11 9 21 |
|
||||
| MUL | addda577 e83ff665 a15aee9f 31ffb8cb e72c824d 00000001 3ec0ace3 d1eb11d5 fa5c7dc5 40128acf 70bc55cf b823fa39 07fcdf49 56a6c8b1 c05d3115 02063ddd |
|
||||
| w32(MUL) | 12 9 12 10 12 1 11 12 10 10 12 9 8 14 11 8 |
|
||||
| RC | 0655b978 2c53cb31 e14235d3 30d45c30 5b07a13b 25271fad 418b165b f7fe03d7 67943b1d 5ba337a2 24aa3983 6abbbed4 12488b47 a4a81e53 96f96da0 b86823f8 |
|
||||
| cost A | 209 (gain 1.1053x against 231) |
|
||||
| model C k | 1 (gain 1.0667x) |
|
||||
| classes fired | ROT same-word pair sums to 32; ROT any pair sums to 32; MUL any = 1; MUL any involution (x^2 = 1); MUL any w32 <= 2; MUL any w32 <= 3; MUL any w32 <= 4; MUL any popcount <= 4 or >= 28; MUL any in exact 2-adder set (model C k >= 1); cost A gain >= 1.1x (cost <= 210) |
|
||||
|
||||
### plant mul1all on day 20729
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| seed64 | 2e689968528b3e14 |
|
||||
| ROT | 6 25 5 25 29 11 9 21 |
|
||||
| MUL | 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 |
|
||||
| w32(MUL) | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|
||||
| RC | 0655b978 2c53cb31 e14235d3 30d45c30 5b07a13b 25271fad 418b165b f7fe03d7 67943b1d 5ba337a2 24aa3983 6abbbed4 12488b47 a4a81e53 96f96da0 b86823f8 |
|
||||
| cost A | 64 (gain 3.6094x against 231) |
|
||||
| model C k | 16 (gain infx) |
|
||||
| classes fired | ROT same-word pair sums to 32; ROT any pair sums to 32; MUL any = 1; MUL any involution (x^2 = 1); MUL any w32 <= 2; MUL any w32 <= 3; MUL any w32 <= 4; MUL >= 2 with w32 <= 4; MUL any popcount <= 4 or >= 28; MUL two equal; MUL two inverse (a*b = 1); MUL any in exact 2-adder set (model C k >= 1); MUL model C k >= 2; cost A gain >= 1.1x (cost <= 210); cost A gain >= 1.2x (cost <= 192); cost A gain >= 1.5x (cost <= 154) |
|
||||
|
||||
### plant rcrk0 on day 20729
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| seed64 | 2e689968528b3e14 |
|
||||
| ROT | 6 25 5 25 29 11 9 21 |
|
||||
| MUL | addda577 e83ff665 a15aee9f 31ffb8cb e72c824d 225e647b 3ec0ace3 d1eb11d5 fa5c7dc5 40128acf 70bc55cf b823fa39 07fcdf49 56a6c8b1 c05d3115 02063ddd |
|
||||
| w32(MUL) | 12 9 12 10 12 11 11 12 10 10 12 9 8 14 11 8 |
|
||||
| RC | 0655b978 2c53cb31 e14235d3 673b8a1a 5b07a13b 25271fad 418b165b f7fe03d7 67943b1d 5ba337a2 24aa3983 6abbbed4 12488b47 a4a81e53 96f96da0 b86823f8 |
|
||||
| cost A | 219 (gain 1.0548x against 231) |
|
||||
| model C k | 0 (gain 1.0000x) |
|
||||
| classes fired | ROT same-word pair sums to 32; ROT any pair sums to 32; RC + rk = 0 for any of the 72 keys |
|
||||
|
||||
### plant rot1 on day 20729
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| seed64 | 2e689968528b3e14 |
|
||||
| ROT | 1 1 1 1 1 1 1 1 |
|
||||
| MUL | addda577 e83ff665 a15aee9f 31ffb8cb e72c824d 225e647b 3ec0ace3 d1eb11d5 fa5c7dc5 40128acf 70bc55cf b823fa39 07fcdf49 56a6c8b1 c05d3115 02063ddd |
|
||||
| w32(MUL) | 12 9 12 10 12 11 11 12 10 10 12 9 8 14 11 8 |
|
||||
| RC | 0655b978 2c53cb31 e14235d3 30d45c30 5b07a13b 25271fad 418b165b f7fe03d7 67943b1d 5ba337a2 24aa3983 6abbbed4 12488b47 a4a81e53 96f96da0 b86823f8 |
|
||||
| cost A | 219 (gain 1.0548x against 231) |
|
||||
| model C k | 0 (gain 1.0000x) |
|
||||
| classes fired | ROT all equal; ROT distinct <= 2; ROT distinct <= 3; ROT distinct <= 4; ROT max multiplicity >= 4; ROT >= 4 in {1,31}; ROT all 8 in {1,2,30,31}; ROT column set == diagonal set |
|
||||
|
||||
### plant weakday on day 20729
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| seed64 | 2e689968528b3e14 |
|
||||
| ROT | 6 6 6 6 6 6 6 6 |
|
||||
| MUL | 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 |
|
||||
| w32(MUL) | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|
||||
| RC | 0655b978 2c53cb31 e14235d3 30d45c30 5b07a13b 25271fad 418b165b f7fe03d7 67943b1d 5ba337a2 24aa3983 6abbbed4 12488b47 a4a81e53 96f96da0 b86823f8 |
|
||||
| cost A | 64 (gain 3.6094x against 231) |
|
||||
| model C k | 16 (gain infx) |
|
||||
| classes fired | ROT all equal; ROT distinct <= 2; ROT distinct <= 3; ROT distinct <= 4; ROT max multiplicity >= 4; ROT column set == diagonal set; MUL any = 1; MUL any involution (x^2 = 1); MUL any w32 <= 2; MUL any w32 <= 3; MUL any w32 <= 4; MUL >= 2 with w32 <= 4; MUL any popcount <= 4 or >= 28; MUL two equal; MUL two inverse (a*b = 1); MUL any in exact 2-adder set (model C k >= 1); MUL model C k >= 2; cost A gain >= 1.1x (cost <= 210); cost A gain >= 1.2x (cost <= 192); cost A gain >= 1.5x (cost <= 154) |
|
||||
|
||||
148
docs/analysis/cryptanalysis/report-mixer-2.md
Normal file
148
docs/analysis/cryptanalysis/report-mixer-2.md
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
# Report: the day-key weakness class of the mixer M_r (lane adv-mixer-2)
|
||||
|
||||
Internal adversarial pass, not an independent review. Every sentence below that could be quoted carries that label.
|
||||
|
||||
## Header
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Target commit | 017e70376489251e18564c0abce7e466e606c8b3 (class v4 sub-version 3, object byte 7) |
|
||||
| Target | the per-day draw of ROT[0..7], MUL[0..15], RC[0..15] for M_r (spec 01 section 1.8.4), class v4 (x8, 72 applications per item) |
|
||||
| Branch | adv-mixer-2 from build/master 7a7caa34, merged 04c4d9bc; plan 5704a7b3; harness ae3088a9 |
|
||||
| Byte identity | `git diff --quiet 017e7037... HEAD -- igneum-pow` printed IDENTICAL at 7a7caa34 and at 04c4d9bc (the whole crate) |
|
||||
| Harness | tools/attack/adv-mixer-2 (binary `adv-mixer-2`), igneum-pow by path, nothing re-implemented |
|
||||
| Binary sha256 | 88f6a3edfffad166d35a3bcadcaff7907613e710b842cfcbe94fbb1601f7c37b (release, identical on both boxes, copied to /srv/builds/_adv-adv-mixer-2/bin/) |
|
||||
| Boxes | igneum-build-1 and igneum-build-2, rustc 1.99.0; every sweep through `/srv/builds/_bin/lease pool` at class adv, 32 cores, --min 16, nice 10 |
|
||||
| Logs | /srv/builds/_adv-adv-mixer-2/logs/ on each box; copies in docs/analysis/cryptanalysis/logs/adv-mixer-2/ |
|
||||
| Price | chip-model-v3.md 5.2: 128 ops per application hoisted, 9,360 ops per item; the spec's 130 per application |
|
||||
| Clock | UK time throughout |
|
||||
|
||||
## What the per-day gain means, and for whom
|
||||
|
||||
The honest miner (any GPU) and the CPU verifier run `memhard::mixer` with the day's constants as operands: 16
|
||||
multiplies, 16 XORs, 32 adds, 32 XORs, 32 rotates per application, the same instruction count on every day. A
|
||||
multiplier unit costs the same for MUL = 3 as for MUL = 0x9E3779B9. So under chip-model-v3's op count (9,360 ops per
|
||||
item, value-independent) the per-day gain is exactly 1.0 on every day for every GPU, for the verifier, and for a
|
||||
chip with a general multiplier. The chip model credits hash rate only through that count.
|
||||
|
||||
The day's constants matter only to a datapath that bakes them in. An ASIC cannot be masked per day. An FPGA bitstream
|
||||
can be synthesised per day, and that is the only per-day attacker; its per-day gain is an AREA gain (fewer LUTs per
|
||||
multiplier, so more copies of the pipeline per device), which the chip model does not price as hash rate. The three
|
||||
cost models of this lane read that area:
|
||||
|
||||
| Model | What it measures | For whom | Gain over 1.1x on more than 2^-20 of days? |
|
||||
|---|---|---|---|
|
||||
| A, LUT shift-add (64 + sum of (w32 - 1)) | adder-equivalents per application with every multiplier as a canonical signed-digit shift-add chain; rotations and constant XORs free | a per-day FPGA build with multipliers in LUTs; not a wall-time gain for any chip | YES: P(cost A <= 205, gain >= 1.102x against the exact median 226) = 5.694e-4 = 2^-10.8 per day (exact, 16-fold convolution of the w32 table over all 2^31 odd constants; about 21 days per 100 years). 1.2x: 2^-28.8 (1 day in 2^28). 1.5x: under 2^-91 |
|
||||
| B, certified shift-add | the same datapath with each multiplier at its certified optimal chain (exact for 1 to 4 adders, decomposition certificate for 5) | the same FPGA, closer to what a synthesiser achieves; an upper bound on the attacker's cost | PENDING (queue 03 and 04) |
|
||||
| C, DSP | 16 / (16 - k) with k the words whose constant has a 2-adder chain and leaves its DSP block | a per-day FPGA build with multipliers in DSP blocks (value-independent) | NO: k >= 1 gives 1.067x on 3.123e-5 = 2^-15.0 of days; the first gain over 1.1x is k >= 2 (1.143x) on 4.57e-10 = 2^-31.0 |
|
||||
| Chip model (ops per item) | 9,360 per item, value-independent | every GPU, the verifier, any chip with a general multiplier | NO: the gain is 1.0 on every day |
|
||||
|
||||
Threshold used: the brief's, a gain over 1.1x on more than 2^-20 of days. Model A crosses it by 9 binary orders;
|
||||
model C and the chip-model reading do not. The redraw rule below is proposed on the model A reading, because the
|
||||
census of a public calendar is the attacker's cheapest tool and a 10 percent area edge on 1 day in 1,750 is free to
|
||||
take even if it buys no hash rate against the chip model's attacker. The worst real calendar day with its date is
|
||||
queue 02 (PENDING).
|
||||
|
||||
## Status board
|
||||
|
||||
| Q | Method | Known-failed shape | Gate | Result (numbers) | Status |
|
||||
|---|---|---|---|---|---|
|
||||
| Q0 plants | `plant` on the day-20729 draw with one field replaced, through the same classifier | alleq, rot1, mul1, mul1all, rcrk0, weakday (all ROT equal and MUL = 1) | every plant lands in its class with its gain | all six fire: alleq -> "ROT all equal" (cost 219); mul1 -> "MUL any = 1", gain 1.1053x; mul1all and weakday -> cost 64, gain 3.61x, model C k = 16; rcrk0 -> "RC + rk = 0"; rot1 -> "ROT all 8 in {1,2,30,31}" | PASS |
|
||||
| Q3 exact tail, model A | w32 over all 2^31 odd constants (exact), 16-fold convolution | the table must give 2 constants at w32 = 1 (1 and 2^32 - 1) and the mean must match the census | mean w32 11.1111; mean cost A 225.78, exact median 226; P(gain >= 1.05x) 4.72e-2; >= 1.1x 5.694e-4 (2^-10.8); >= 1.15x 1.66e-6 (2^-19.2); >= 1.2x 2.13e-9 (2^-28.8); >= 1.3x 2.07e-16; >= 1.5x under 2^-91 | FINDING (area reading), crosses 2^-20 |
|
||||
| Q3 exact, model C | exact 2-adder set (4,192 odd constants, 2^-19.0 per word) | the set must contain 1, 2^32 - 1, 2^s +- 1 | P(k >= 1) 3.12e-5 (gain 1.067x), P(k >= 2) 4.57e-10 (1.143x) | PASS (bound: under 2^-20 at 1.1x) |
|
||||
| Q1 census 2^24 | `census --from 20729 --count 2^24` (32 structural classes, cost A histogram, model C) | plants above | counts against the analytic expectation | queue 01, waiting in the box-2 lease pool since 21:22 UK | RUNNING |
|
||||
| Q2 census 2^32 | `census --count 2^32` | plants above | the model A tail against the exact table | queue 06, waiting in the box-1 lease pool since 21:28 UK | RUNNING |
|
||||
| Q4 the real calendar | `calendar --from 20729 --years 100` (36,525 days: 3 October 2026 to 2126) | the planted stream-shift pair must be found | worst day with date under A and C | queue 02 | RUNNING |
|
||||
| Q5 cross-day structure | seed collisions, stream shifts by k in 1..72, shared MUL and RC values over the calendar | planted shift pair | counts against expectation | queue 02 | RUNNING |
|
||||
| Q2 model B | `scm-refine` on the calendar, on the lowest 2^14 days of the 2^24 census, on a 2^16-day random sample | the self-test constants (3, 5, 7, 9, 2^32 - 1, 2^31 + 1 at 1 adder; 45 at 2) | the certified-cost distribution and the cost B tail | queue 03, 04 | RUNNING |
|
||||
| Q6 ROT diffusion | `avalanche` (1, 2, 3, 4, 8 applications; the 22 address bits) on the genesis day, the plants, the worst ROT days of the census | plant rot1 and alleq must read weaker than the genesis day at 1 application | a per-day gain only if a bit-exact shortcut follows; else 0 with the diffusion numbers | queue 05 | RUNNING |
|
||||
| Q7 redraw rule | `redraw-census` 2^24 and 2^28 days with the rule below | `--max-cost 0` must reproduce the real draw on 1,000 days (asserted in the binary) | fraction redrawn; residual over 1.1x must be 0 | queue 07 | RUNNING |
|
||||
| GPU rows | none needed | | | no row of this class depends on a GPU | BLOCKED (not applicable) |
|
||||
|
||||
## Q7: the proposed redraw rule
|
||||
|
||||
Rule, for the day's parameter draw (spec 1.8.4): after the forty draws, compute cost A = 64 + sum over the sixteen
|
||||
MUL of (w32(MUL) - 1), and the count k of MUL values with a 2-adder chain. If cost A <= 205 (a model A gain of 1.1x
|
||||
or more against the median 226), or k >= 1, or the eight ROT are equal, continue the SAME SplitMix64 stream and draw
|
||||
all forty again; repeat until accepted. The honest miner and the verifier pay forty more 64-bit draws per redraw,
|
||||
once a day; nothing else changes; every accepted day is a day the current rule could have drawn.
|
||||
|
||||
| Quantity | Value |
|
||||
|---|---|
|
||||
| Fraction of days redrawn at least once (exact, models A and C) | 5.694e-4 + 3.123e-5 = 6.0e-4 (2^-10.7), about 22 days per 100 years |
|
||||
| Fraction over 1.1x under model A after the rule | 0 by construction; measured by queue 07 over 2^24 and 2^28 days (PENDING) |
|
||||
| Fraction over 1.1x under model C after the rule | 0 (k = 0 on every accepted day) |
|
||||
| Chip-model reading after the rule | unchanged: 1.0 on every day before and after |
|
||||
| What the rule does not fix | the seed is 64 bits of the day key (K[0], K[1]); the day is a pure function of the calendar; both stand; neither is a weakness of this class on the numbers above |
|
||||
|
||||
## Sections per row
|
||||
|
||||
### Q0 plants (PASS)
|
||||
|
||||
Command on box 1: `nice -n 10 taskset -c 8-95 adv-mixer-2 plant` (19:4x UK, 0.3 s; the only hand-started runs of
|
||||
this lane were the three smoke runs before the lease rule of 20:22 UK). Log: logs/adv-mixer-2/smoke-plant.log. The
|
||||
unplanted day 20729 (3 October 2026): ROT 6 25 5 25 29 11 9 21, cost A 219, classes "ROT same-word pair sums to 32"
|
||||
(ROT[5] + ROT[7] = 32) and "any pair sums to 32".
|
||||
|
||||
### Q3 exact tail (FINDING on the area reading)
|
||||
|
||||
Command on box 1: `adv-mixer-2 exact --threads 40` (19:5x UK, 10.3 s wall, 173 CPU-s). Log: logs/adv-mixer-2/
|
||||
exact-w32.log. The w32 table over all 2^31 odd constants:
|
||||
|
||||
| w32 | Constants | Fraction |
|
||||
|---|---|---|
|
||||
| 1 | 2 | 9.3e-10 |
|
||||
| 2 | 118 | 5.5e-8 |
|
||||
| 3 | 3,136 | 1.5e-6 |
|
||||
| 4 | 49,608 | 2.3e-5 |
|
||||
| 5 | 520,000 | 2.4e-4 |
|
||||
| 6 | 3,805,120 | 1.8e-3 |
|
||||
| 7 | 19,948,544 | 9.3e-3 |
|
||||
| 8 | 75,681,408 | 3.5e-2 |
|
||||
| 9 | 207,381,504 | 9.7e-2 |
|
||||
| 10 | 405,171,200 | 0.189 |
|
||||
| 11 | 550,371,328 | 0.256 |
|
||||
| 12 | 498,774,016 | 0.232 |
|
||||
| 13 | 282,427,392 | 0.132 |
|
||||
| 14 | 89,686,016 | 4.2e-2 |
|
||||
| 15 | 13,107,200 | 6.1e-3 |
|
||||
| 16 | 557,056 | 2.6e-4 |
|
||||
|
||||
The exact cost A distribution (64 + the 16-fold convolution of w32 - 1), cumulative at the gain thresholds against
|
||||
the median 226 (the log's own threshold table was printed against a provisional 231 and is superseded by this one,
|
||||
computed from the log's per-cost table):
|
||||
|
||||
| Gain A | Cost A <= | P(day), exact | log2 | Days per 100 years |
|
||||
|---|---|---|---|---|
|
||||
| 1.05x | 215 | 4.717e-2 | -4.4 | 1,723 |
|
||||
| 1.1x | 205 | 5.694e-4 | -10.8 | 20.8 |
|
||||
| 1.15x | 196 | 1.660e-6 | -19.2 | 0.06 |
|
||||
| 1.2x | 188 | 2.132e-9 | -28.8 | 0.00008 |
|
||||
| 1.3x | 173 | 2.07e-16 | -52.1 | 0 |
|
||||
| 1.5x | 150 | under 1e-27 | under -91 | 0 |
|
||||
|
||||
Reading: an FPGA built for the worst day in 100 years saves about 15 percent of its multiplier adders under model
|
||||
A (cost about 196 against 226); a chip, a GPU and the verifier save nothing. The planted weak day (cost 64) would be
|
||||
a 3.6x area gain; its probability under the real draw is 2^-27 for one MUL = 1 and under 2^-400 for all sixteen.
|
||||
|
||||
### Ledger of rule changes during the run (box-hours stay honest)
|
||||
|
||||
| Time (UK) | Change | Effect on this lane |
|
||||
|---|---|---|
|
||||
| 19:22 | worktree cut from build/master 7a7caa34; IDENTICAL check | none |
|
||||
| 19:32 | plan pushed 5704a7b3 | |
|
||||
| 19:4x | SIGSTOP yield to builds dropped; nice 10 on cores 8 to 95 | run-box.sh rewritten before any sweep |
|
||||
| 19:4x | logs out of the worktree mirror (/srv/builds/_adv-adv-mixer-2/) | adopted before any sweep |
|
||||
| 19:40 to 19:50 | three smoke runs on box 1 by hand (plant 0.3 s, day, census 2^20 0.3 s, exact 10 s) | 0.05 box-hours |
|
||||
| 20:22 | `lease pool` is the only way to start a sweep | queue files rewritten; nothing of this lane was running |
|
||||
| 20:40 | priority classes release > v5 > measure > adv; 32 cores --min 16 | queue files at 32/16 |
|
||||
| 21:12 | box 2 open to adv-* | chain 01 to 05 started on box 2 at 21:22, chain 06 to 07 on box 1 at 21:28 |
|
||||
|
||||
Box-hours spent so far: 0.05 (the smoke runs). Pod-hours: 0. GPU: none.
|
||||
|
||||
## Bound reached, honestly
|
||||
|
||||
Exact for model A and model C over the whole draw space (every odd constant counted, not sampled); the census rows,
|
||||
the real-calendar worst day, model B and the diffusion numbers are pending the lease pool. A longer pass would add
|
||||
model B certificates past 5 adders (an exact optimal-SCM table for all 2^31 constants) and a census over 2^36 days
|
||||
for the model A tail below 2^-28; neither changes the crossing above, which is exact.
|
||||
|
|
@ -6,10 +6,10 @@ Internal adversarial pass, not an independent review. Every sentence below that
|
|||
|---|---|
|
||||
| Lane | adv-mixer-2, question class: weak parameter draws of M_r (the day-key weakness class) |
|
||||
| Target commit | 017e70376489251e18564c0abce7e466e606c8b3 (class v4 sub-version 3, object byte 7) |
|
||||
| Branch | adv-mixer-2, cut from build/master 7a7caa34 at 19:22 BST, 7 October 2026; merged build/master 04c4d9bc at 19:40 BST |
|
||||
| Branch | adv-mixer-2, cut from build/master 7a7caa34 at 19:22 UK, 7 October 2026; merged build/master 04c4d9bc at 19:40 UK |
|
||||
| Byte identity | `git diff --quiet 017e7037... HEAD -- igneum-pow` printed IDENTICAL at both 7a7caa34 and 04c4d9bc (the whole crate, every file) |
|
||||
| Attacker | an outsider with the public kit; nothing read under docs/ beyond the spec, chip-model-v3.md sections 1, 2, 5, 6 and the siblings' cryptanalysis files |
|
||||
| Plan due | 20:25 BST, 7 October 2026. First report rows due 00:00 BST, 8 October |
|
||||
| Plan due | 20:25 UK, 7 October 2026. First report rows due 00:00 UK, 8 October |
|
||||
| Toolchain | rustc 1.99.0 on both boxes; the Mac's PATH rustc is 1.69.0 and is never used (no cargo on the Mac) |
|
||||
|
||||
## 1. The target, restated from spec and code
|
||||
|
|
@ -85,7 +85,7 @@ process group, pid file beside the log under `/srv/builds/igneum-wt-adv-mixer-2/
|
|||
`/srv/builds/_locks` (build-k, quiet, core-*) that SIGSTOPs the group while any is held and SIGCONTs when clear,
|
||||
the pattern of `infra/build-server/capacity/run.sh`. Every sweep is a queue file
|
||||
`/srv/builds/_adv/mixer/queue/NN-adv-mixer-2-<name>.sh` on build-2, claimed by `mkdir .../claims/<file>` before it
|
||||
runs. CPU-bound sweeps run on build-1 (load 9 to 16 at 19:40 BST against build-2's 55 to 65); the binary is
|
||||
runs. CPU-bound sweeps run on build-1 (load 9 to 16 at 19:40 UK against build-2's 55 to 65); the binary is
|
||||
built on both boxes so a queue file runs on either. No GPU is used; no row needs one.
|
||||
|
||||
Total estimate: about 4 box-hours. 8 is the reading line, 16 the ask line.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 BST, 7 October 2026).
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 UK, 7 October 2026).
|
||||
set -uo pipefail
|
||||
B=/srv/builds/_adv-adv-mixer-2/bin/adv-mixer-2
|
||||
L=/srv/builds/_adv-adv-mixer-2/logs
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 BST, 7 October 2026).
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 UK, 7 October 2026).
|
||||
set -uo pipefail
|
||||
B=/srv/builds/_adv-adv-mixer-2/bin/adv-mixer-2
|
||||
L=/srv/builds/_adv-adv-mixer-2/logs
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 BST, 7 October 2026).
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 UK, 7 October 2026).
|
||||
set -uo pipefail
|
||||
B=/srv/builds/_adv-adv-mixer-2/bin/adv-mixer-2
|
||||
L=/srv/builds/_adv-adv-mixer-2/logs
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 BST, 7 October 2026).
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 UK, 7 October 2026).
|
||||
set -uo pipefail
|
||||
B=/srv/builds/_adv-adv-mixer-2/bin/adv-mixer-2
|
||||
L=/srv/builds/_adv-adv-mixer-2/logs
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 BST, 7 October 2026).
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 UK, 7 October 2026).
|
||||
set -uo pipefail
|
||||
B=/srv/builds/_adv-adv-mixer-2/bin/adv-mixer-2
|
||||
L=/srv/builds/_adv-adv-mixer-2/logs
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 BST, 7 October 2026).
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 UK, 7 October 2026).
|
||||
set -uo pipefail
|
||||
B=/srv/builds/_adv-adv-mixer-2/bin/adv-mixer-2
|
||||
L=/srv/builds/_adv-adv-mixer-2/logs
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 BST, 7 October 2026).
|
||||
# adv-mixer-2 queue file (owner: lane adv-mixer-2). Self-contained: binary, args, log, pid file. Runs on either box through /srv/builds/_bin/lease pool (rule of 20:22 UK, 7 October 2026).
|
||||
set -uo pipefail
|
||||
B=/srv/builds/_adv-adv-mixer-2/bin/adv-mixer-2
|
||||
L=/srv/builds/_adv-adv-mixer-2/logs
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
# detached chain, in order. Every queue file is self-contained and starts its binary only through
|
||||
# `/srv/builds/_bin/lease pool` (class adv, 32 cores, --min 16; single-threaded sweeps take 1), which pins and nices it.
|
||||
# Logs and pid files live under /srv/builds/_adv-adv-mixer-2/ on the box, never under the worktree mirror. Kill by pid
|
||||
# file only. History: 19:4x BST the SIGSTOP yield was dropped (cores 8 to 95 at nice 10); 20:22 BST the lease pool
|
||||
# became the only way to start a sweep; 20:40 BST priority classes (release > v5 > measure > adv).
|
||||
# file only. History: 19:4x UK the SIGSTOP yield was dropped (cores 8 to 95 at nice 10); 20:22 UK the lease pool
|
||||
# became the only way to start a sweep; 20:40 UK priority classes (release > v5 > measure > adv).
|
||||
# Usage: run-box.sh <1|2> <queue-file-name>...
|
||||
set -euo pipefail
|
||||
BOX="$1"; shift
|
||||
|
|
@ -26,4 +26,5 @@ for Q in "$@"; do
|
|||
done
|
||||
[ -n "$CHAIN" ] || exit 0
|
||||
STAMP=$(date -u +%Y%m%dT%H%M%SZ)
|
||||
ssh -i "$KEY" -o BatchMode=yes "$H" "cd /srv/builds/_adv-adv-mixer-2 && setsid nohup bash -c '$CHAIN' > logs/chain-$STAMP.log 2>&1 < /dev/null & echo \$! > /srv/builds/_adv-adv-mixer-2/logs/chain-$STAMP.pid; echo chain started on box $BOX: pid \$(cat /srv/builds/_adv-adv-mixer-2/logs/chain-$STAMP.pid), log logs/chain-$STAMP.log"
|
||||
# the detached chain keeps the ssh channel open, so the start is time-boxed to 20 s (perl alarm: macOS has no timeout)
|
||||
perl -e 'alarm 20; exec @ARGV' ssh -i "$KEY" -o BatchMode=yes "$H" "cd /srv/builds/_adv-adv-mixer-2 && (setsid nohup bash -c '$CHAIN' > logs/chain-$STAMP.log 2>&1 < /dev/null & echo \$! > logs/chain-$STAMP.pid); echo chain started on box $BOX: pid \$(cat logs/chain-$STAMP.pid), log logs/chain-$STAMP.log" || true
|
||||
|
|
|
|||
Loading…
Reference in a new issue