fast-time crossing on the hotfix f8da7515 (13:46:42Z to 14:03:21Z, 8 October 2026; the freeze fingerprint on both binaries): the crossing green on every check that reads it; the SUMMARY's three id failures were rows for epochs 12 and 13 mined during the late joiner's wait, past the observation window, with no template row (harness scope; such rows are now listed and never counted); the late joiner from genesis synced the pre-boundary blocks and waited on its executor, the hotfix's rule for a node that has synced nothing

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-08 14:04:29 +00:00
parent 8d29d71fba
commit 80f4a2cda4
3 changed files with 1677 additions and 2 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,108 @@
13:47:49.872 override: every key known to the binary
13:47:49.874 case cross-0325-f8da7515: 4 nodes, bytes 6/6/6/6, ladder up/up/up/up; class v4 sub-version 3 from genesis at rung 0; class window 60 DAA x 7 (the first epoch that can cross to v5 is 8, DAA 480), ladder window 45 DAA x 7 (the first epoch that can step is 6, DAA 360); v5 floor 900 (epoch 15); stale node 3; restart node 2 (stop at DAA 455, start at 500); 60 DAA per epoch, lead 10; run 960 s or 11 epochs; node /srv/artefacts/0325-f8da7515/node-lane/igneumd
13:47:52.109 CPU verifier on the Devnet 3 genesis pack: cli e5a4ac5978462156 pack e5a4ac5978462156 expected e5a4ac5978462156: OK
13:47:53.676 n0 up pid 4158261 json 30302 p2p 30301 exec 30303, byte 6, ladder up
13:47:55.185 n1 up pid 4159732 json 30312 p2p 30311 exec 30313, byte 6, ladder up
13:47:56.689 n2 up pid 4162896 json 30322 p2p 30321 exec 30323, byte 6, ladder up
13:47:58.194 n3 up pid 4165655 json 30332 p2p 30331 exec 30333, byte 6, ladder up
13:47:58.194 n0: Program class v5 from the override file: enabled, the floor at epoch 15 (DAA score 900 rounded up to the epoch boundary at 900); the class v | this node signals object version 6 | this node signals up
13:47:58.194 n1: Program class v5 from the override file: enabled, the floor at epoch 15 (DAA score 900 rounded up to the epoch boundary at 900); the class v | this node signals object version 6 | this node signals up
13:47:58.194 n2: Program class v5 from the override file: enabled, the floor at epoch 15 (DAA score 900 rounded up to the epoch boundary at 900); the class v | this node signals object version 6 | this node signals up
13:47:58.194 n3: Program class v5 from the override file: enabled, the floor at epoch 15 (DAA score 900 rounded up to the epoch boundary at 900); the class v | this node signals object version 6 | this node signals up
13:47:58.194 n0 digest: 6fa8e71d7fb9aa0d
13:47:59.205 epoch -1 -> 0 at daa 0, 7.1 s: template class 4 (next 4) rung 0 (27 passes, next rung 0), v5 share at the sink 0 bps (weakest of 7: 0), ladder up weakest 0 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 0
13:47:59.231 t=7.1 s daa 0 epoch 0 class 4 rung 0 v5 0 bps (weakest 0) up weakest 0 blocks/sink per node 0/234e082d 0/234e082d 0/234e082d 0/234e082d
13:48:14.277 t=22.2 s daa 3 epoch 0 class 4 rung 0 v5 0 bps (weakest 0) up weakest 0 blocks/sink per node 3/f35681e3 3/f35681e3 0/234e082d 0/234e082d
13:48:29.313 t=37.2 s daa 8 epoch 0 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 8/e52bd166 8/e52bd166 8/e52bd166 8/e52bd166
13:48:44.361 t=52.3 s daa 16 epoch 0 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 16/85680b52 16/85680b52 16/85680b52 16/85680b52
13:48:59.394 t=67.3 s daa 40 epoch 0 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 40/277938f0 40/277938f0 40/277938f0 40/277938f0
13:49:14.425 t=82.3 s daa 58 epoch 0 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 58/920f6399 58/920f6399 58/920f6399 58/920f6399
13:49:17.431 epoch 0 -> 1 at daa 60, 85.3 s: template class 4 (next 4) rung 0 (27 passes, next rung 0), v5 share at the sink 10000 bps (weakest of 7: 0), ladder up weakest 0 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 0
13:49:19.438 stream for epoch 1 (seed 7afbbb814102b5be): root 0x8c63dce3c4923fff 16 records, from n0
13:49:29.462 t=97.4 s daa 69 epoch 1 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 69/e7800f53 69/e7800f53 69/e7800f53 69/e7800f53
13:49:44.493 t=112.4 s daa 86 epoch 1 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 86/d737a4df 85/3b15f25c 85/3b15f25c 85/3b15f25c
13:49:59.528 t=127.4 s daa 106 epoch 1 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 106/753511fc 106/753511fc 106/753511fc 106/753511fc
13:50:08.546 epoch 1 -> 2 at daa 120, 136.4 s: template class 4 (next 4) rung 0 (27 passes, next rung 0), v5 share at the sink 10000 bps (weakest of 7: 0), ladder up weakest 0 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 0
13:50:11.554 stream for epoch 2 (seed 24eb1c824a42f821): root 0x00b8da6d4da2b08f 16 records, from n0
13:50:14.566 t=142.5 s daa 122 epoch 2 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 122/b78e7b9d 122/b78e7b9d 122/b78e7b9d 122/b78e7b9d
13:50:29.599 t=157.5 s daa 145 epoch 2 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 145/6b7545cb 145/6b7545cb 145/6b7545cb 145/6b7545cb
13:50:44.635 t=172.5 s daa 161 epoch 2 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 161/9b757465 160/5c56c3ff 160/5c56c3ff 161/9b757465
13:50:59.670 t=187.6 s daa 174 epoch 2 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 174/c63c17fc 174/c63c17fc 174/c63c17fc 174/c63c17fc
13:51:07.684 epoch 2 -> 3 at daa 180, 195.6 s: template class 4 (next 4) rung 0 (27 passes, next rung 0), v5 share at the sink 10000 bps (weakest of 7: 0), ladder up weakest 0 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 0
13:51:07.689 stream for epoch 3 (seed e74fef8f992cbeec): root 0xa324e68cf41d8993 17 records, from n0
13:51:14.700 t=202.6 s daa 184 epoch 3 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 184/a01de5a1 184/a01de5a1 182/edf7cc80 182/edf7cc80
13:51:29.733 t=217.6 s daa 199 epoch 3 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 199/ee0c7b0f 199/ee0c7b0f 199/ee0c7b0f 199/ee0c7b0f
13:51:44.769 t=232.7 s daa 217 epoch 3 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 217/f7c441c2 217/f7c441c2 217/f7c441c2 217/f7c441c2
13:51:59.806 t=247.7 s daa 231 epoch 3 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 231/c36c349a 231/c36c349a 231/c36c349a 231/c36c349a
13:52:07.820 epoch 3 -> 4 at daa 240, 255.7 s: template class 4 (next 4) rung 0 (27 passes, next rung 0), v5 share at the sink 10000 bps (weakest of 7: 0), ladder up weakest 0 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 0
13:52:07.826 stream for epoch 4 (seed fb24f928e6f0f95b): root 0xd18db2fb2cde7b79 17 records, from n0
13:52:14.843 t=262.7 s daa 241 epoch 4 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 241/56f001b8 242/3c81c8bb 241/56f001b8 245/39ca2627
13:52:29.878 t=277.8 s daa 263 epoch 4 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 263/8ea5aae6 263/8ea5aae6 263/8ea5aae6 263/8ea5aae6
13:52:44.913 t=292.8 s daa 280 epoch 4 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 280/6d16b4d3 280/6d16b4d3 280/6d16b4d3 280/6d16b4d3
13:52:59.948 t=307.8 s daa 293 epoch 4 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 293/fc0512cb 293/fc0512cb 293/fc0512cb 293/fc0512cb
13:53:03.952 epoch 4 -> 5 at daa 300, 311.8 s: template class 4 (next 4) rung 0 (27 passes, next rung 0), v5 share at the sink 10000 bps (weakest of 7: 0), ladder up weakest 10000 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 0
13:53:03.957 stream for epoch 5 (seed 2ac486a03da57bc8): root 0xe91c426aad0bb15b 17 records, from n0
13:53:14.981 t=322.9 s daa 309 epoch 5 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 309/5cc1ef5d 309/5cc1ef5d 309/5cc1ef5d 309/5cc1ef5d
13:53:30.019 t=337.9 s daa 330 epoch 5 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 330/4fd0b376 330/4fd0b376 330/4fd0b376 330/4fd0b376
13:53:45.058 t=352.9 s daa 340 epoch 5 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 340/07e1ba9f 340/07e1ba9f 340/07e1ba9f 340/07e1ba9f
13:54:00.096 t=368.0 s daa 356 epoch 5 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 356/123a7c14 356/123a7c14 356/123a7c14 356/123a7c14
13:54:06.106 epoch 5 -> 6 at daa 360, 374.0 s: template class 4 (next 4) rung 1 (35 passes, next rung 1), v5 share at the sink 10000 bps (weakest of 7: 0), ladder up weakest 10000 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 6
13:54:06.106 LADDER STEP: the template is rung 1 (35 shadow passes) from epoch 6 (daa 360) at 374.0 s wall
13:54:08.113 stream for epoch 6 (seed 7de1b7635acfb426): root 0xafad55e3a59ee6eb 17 records, from n0
13:54:15.130 t=383.0 s daa 367 epoch 6 class 4 rung 1 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 367/32e1dabf 367/32e1dabf 363/e43671d7 367/32e1dabf
13:54:30.165 t=398.1 s daa 382 epoch 6 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 382/b934a439 382/b934a439 382/b934a439 382/b934a439
13:54:45.200 t=413.1 s daa 405 epoch 6 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 405/74c5ef2d 405/74c5ef2d 405/74c5ef2d 405/74c5ef2d
13:55:00.234 epoch 6 -> 7 at daa 420, 428.1 s: template class 4 (next 4) rung 1 (35 passes, next rung 1), v5 share at the sink 10000 bps (weakest of 7: 10000), ladder up weakest 10000 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 6
13:55:00.237 stream for epoch 7 (seed bd367dd6c621837e): root 0x7b1c1be64a35cf91 17 records, from n0
13:55:00.238 t=428.1 s daa 420 epoch 7 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 420/b26c5441 420/b26c5441 420/b26c5441 420/b26c5441
13:55:15.266 t=443.2 s daa 433 epoch 7 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 433/2f39f3f4 433/2f39f3f4 433/2f39f3f4 433/2f39f3f4
13:55:30.300 t=458.2 s daa 450 epoch 7 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 450/2a664c40 450/2a664c40 450/2a664c40 450/2a664c40
13:55:38.321 RESTART STEP: n2 and its miner stopped at daa 456 (466.2 s), 24 DAA before the expected v5 boundary 480
13:55:45.336 t=473.2 s daa 470 epoch 7 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 470/97463500 470/97463500 down 470/97463500
13:55:57.359 epoch 7 -> 8 at daa 480, 485.3 s: template class 5 (next 5) rung 1 (35 passes, next rung 1), v5 share at the sink 10000 bps (weakest of 7: 10000), ladder up weakest 10000 bps, this node signals byte 6, v5 by signal at epoch 8, step at epoch 6
13:55:57.359 CLASS SWITCH: the template is class v5 from epoch 8 (daa 480) at rung 1 (35 passes), 485.3 s wall
13:56:00.367 stream for epoch 8 (seed 9746350055067d8f): root 0x6dce5a776d25c7c5 17 records, from n0
13:56:00.368 t=488.3 s daa 482 epoch 8 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 482/e10d74d2 482/e10d74d2 down 482/e10d74d2
13:56:15.391 t=503.3 s daa 494 epoch 8 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 494/fd1dffd9 494/fd1dffd9 down 494/fd1dffd9
13:56:21.912 n2 RESTARTED pid 85798 json 30322 p2p 30321 exec 30323, byte 6, ladder up (own datadir kept)
13:56:21.912 RESTART STEP: n2 started on its own datadir at daa 501 (509.8 s), 21 DAA after the boundary; its miner waits for the resync (at most 0 s)
13:56:21.915 RESTART STEP: n2's miner restarted with its key at daa 501 (509.8 s), without a resync inside 0 s
13:56:27.947 RESTART STEP: n2 at n0's sink 89a911bed891c980 (509 blocks) 6 s after its start
13:56:30.957 t=518.8 s daa 509 epoch 8 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 509/89a911be 509/89a911be 509/89a911be 509/89a911be
13:56:45.994 t=533.9 s daa 534 epoch 8 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 534/daef53f4 534/daef53f4 534/daef53f4 534/daef53f4
13:56:53.006 epoch 8 -> 9 at daa 540, 540.9 s: template class 5 (next 5) rung 1 (35 passes, next rung 1), v5 share at the sink 10000 bps (weakest of 7: 10000), ladder up weakest 10000 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 6
13:56:53.012 stream for epoch 9 (seed dd6272a7d21fa959): root 0x4a3cbd191fbc0072 17 records, from n0
13:57:01.036 t=548.9 s daa 547 epoch 9 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 547/2d97812d 547/2d97812d 547/2d97812d 542/88c75f8e
13:57:16.068 t=564.0 s daa 565 epoch 9 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 565/d4d14bec 565/d4d14bec 565/d4d14bec 565/d4d14bec
13:57:31.108 t=579.0 s daa 578 epoch 9 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 578/1cdf7a15 578/1cdf7a15 578/1cdf7a15 578/1cdf7a15
13:57:46.144 t=594.0 s daa 592 epoch 9 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 592/3a318352 592/3a318352 592/3a318352 592/3a318352
13:57:58.171 epoch 9 -> 10 at daa 600, 606.1 s: template class 5 (next 5) rung 1 (35 passes, next rung 1), v5 share at the sink 10000 bps (weakest of 7: 10000), ladder up weakest 10000 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 6
13:58:01.180 stream for epoch 10 (seed 6fb12c37c37798e0): root 0xe4b56bf1aa2d053f 17 records, from n0
13:58:01.183 t=609.1 s daa 601 epoch 10 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 601/be2c437c 601/be2c437c 601/be2c437c 601/be2c437c
13:58:16.214 t=624.1 s daa 614 epoch 10 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 614/195e3dd6 614/195e3dd6 614/195e3dd6 614/195e3dd6
13:58:31.251 t=639.1 s daa 629 epoch 10 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 629/a3a579e1 629/a3a579e1 629/a3a579e1 629/a3a579e1
13:58:46.290 t=654.2 s daa 651 epoch 10 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 651/a542abbf 651/a542abbf 651/a542abbf 651/a542abbf
13:58:52.302 epoch 10 -> 11 at daa 660, 660.2 s: template class 5 (next 5) rung 1 (35 passes, next rung 1), v5 share at the sink 10000 bps (weakest of 7: 10000), ladder up weakest 10000 bps, this node signals byte 6, v5 by signal at epoch none, step at epoch 6
13:58:55.309 stream for epoch 11 (seed f3afde3122a2a242): root 0xbc17745c230bd19d 17 records, from n0
13:58:56.820 n4 up pid 105819 json 30342 p2p 30341 exec 30343, byte 6, ladder up
13:58:56.820 LATE JOIN: n4 started from an empty datadir at daa 660 (664.7 s), the chain 665 s old
14:01:57.430 LATE JOIN: n4 did NOT reach n0's sink inside 180 s (its count 480); IBD refusals 0, catch-up done no; last lines: IBD: class v5 catch-up: syncing the bodies below the last validated honest header a13ff27fdc4607892d243063ed68208abfc97702447712026a52eb41a7821fd6 so the execut | IBD: Processed 99 blocks (20%) last block timestamp: 2026-10-08 15:49:53.000:+0200 | IBD: Processed 480 blocks (100%)
14:03:21.020 SUMMARY FAIL (cross-0325-f8da7515) 2026-10-08T14:03:21.018Z: rung 1 (35 passes) from epoch 6 at DAA 360; v5 from epoch 8 at DAA 480 at rung 1; epochs e0:v4:r0:0bps e1:v4:r0:0bps e2:v4:r0:0bps e3:v4:r0:0bps e4:v4:r0:0bps e5:v4:r0:0bps e6:v4:r1:0bps e7:v4:r1:10000bps e8:v5:r1:10000bps e9:v5:r1:10000bps e10:v5:r1:10000bps e11:v5:r1:10000bps; chain bytes {"0":1,"6":832} (9988 bps at byte 6), ladder bits {"none":1,"up":832}; blocks 483 / 350 across DAA 480; rejected miners 0/0/0/120/0 nodes 0/0/0/120/0 (submit timeouts 0/0/0/0/0); accepted after the flip 134/138/136/16/0; sinks 460f396de2905eba 460f396de2905eba 460f396de2905eba 460f396de2905eba a13ff27fdc460789 (agree) at 832/832/832/832/480; step lines 5/4 (epochs 6/6/6/6/6; later steps logged 12, earliest allowed 12), v5 signal lines 5/4 (epochs 8/8/8/8/8, weakest 10000/10000/10000/10000/10000); stale n3 accepted after the first refresh 0 rejected 120; restart n2 stopped at DAA 456, started at DAA 501, resynced 6 s later, lock faults 0, IBD refusals 0, catch-up done yes, hold refusals to its miner 0, accepted before/after done 0/136, accepted after the miner start 136; dn3 id OK; late joiner NOT synced inside 180 s (480 blocks, 0 IBD refusals)
14:03:21.020 PROGRAM ID epoch 0 v4 rung 0 (27 passes) seed 234e082d653dc69d: miners 83dab9f31f2e2dba (4 of 4) cli 83dab9f31f2e2dba other-class 343287b6df5996ed OK
14:03:21.020 PROGRAM ID epoch 1 v4 rung 0 (27 passes) seed 7afbbb814102b5be: miners c5168a7b01a79bfa (4 of 4) cli c5168a7b01a79bfa other-class cbd19a4d3b145a55 state 0x8c63dce3c4923fff (16 records) OK
14:03:21.020 PROGRAM ID epoch 1 FORK v4 rung 0 (27 passes) seed 24eb1c824a42f821: miners 0733b3fbf4e0c7dc (4 of 4) cli 0733b3fbf4e0c7dc other-class 4cba50f8ddb6e443 OK
14:03:21.020 PROGRAM ID epoch 3 v4 rung 0 (27 passes) seed e74fef8f992cbeec: miners 334d4722885111a9 (4 of 4) cli 334d4722885111a9 other-class fcd2ac8f21c8547c state 0xa324e68cf41d8993 (17 records) OK
14:03:21.020 PROGRAM ID epoch 4 v4 rung 0 (27 passes) seed fb24f928e6f0f95b: miners 52dfaba245e9fd2b (4 of 4) cli 52dfaba245e9fd2b other-class 4bcbbb761b088956 state 0xd18db2fb2cde7b79 (17 records) OK
14:03:21.020 PROGRAM ID epoch 5 v4 rung 0 (27 passes) seed 2ac486a03da57bc8: miners 4a631e51d46652e0 (4 of 4) cli 4a631e51d46652e0 other-class 207983060b68057b state 0xe91c426aad0bb15b (17 records) OK
14:03:21.020 PROGRAM ID epoch 6 v4 rung 1 (35 passes) seed 7de1b7635acfb426: miners 7e1472c126754fb7 (4 of 4) cli 7e1472c126754fb7 other-class d1a360475c37fb64 state 0xafad55e3a59ee6eb (17 records) OK
14:03:21.020 PROGRAM ID epoch 7 v4 rung 1 (35 passes) seed bd367dd6c621837e: miners ce95397290bce459 (4 of 4) cli ce95397290bce459 other-class 4855e4812aa62e2a state 0x7b1c1be64a35cf91 (17 records) OK
14:03:21.020 PROGRAM ID epoch 8 v5 rung 1 (35 passes) seed 9746350055067d8f: miners dfbff66c7feda53c (4 of 4) cli dfbff66c7feda53c other-class d1dc52971e500dad rung0 5f1314f84af89d87 state 0x6dce5a776d25c7c5 (17 records) OK
14:03:21.020 PROGRAM ID epoch 9 v5 rung 1 (35 passes) seed dd6272a7d21fa959: miners 5376270a1f7fe0ba (4 of 4) cli 5376270a1f7fe0ba other-class 1676ca386197a1ef rung0 35398e9d42ac7415 state 0x4a3cbd191fbc0072 (17 records) OK
14:03:21.020 PROGRAM ID epoch 10 v5 rung 1 (35 passes) seed 6fb12c37c37798e0: miners 2b763b0b6127b05a (4 of 4) cli 2b763b0b6127b05a other-class 8d7fcbb3890668b3 rung0 479fd67a37a2af55 state 0xe4b56bf1aa2d053f (17 records) OK
14:03:21.020 PROGRAM ID epoch 11 v5 rung 1 (35 passes) seed f3afde3122a2a242: miners 1f04618ddf2c06e6 (4 of 4) cli 1f04618ddf2c06e6 other-class d5ca675d4a9bba53 rung0 b9fbd6808fea1691 state 0xbc17745c230bd19d (17 records) OK
14:03:21.020 PROGRAM ID epoch 12 v5 rung ? (? passes) seed 0a749b2678f90439: miners 5b67898439456cd2 (4 of 4) cli null other-class null MISMATCH
14:03:21.020 PROGRAM ID epoch 13 v5 rung ? (? passes) seed aae2c1699f7da585: miners 451b0dd10b547884 (4 of 4) cli null other-class null MISMATCH
14:03:21.020 FAILED CHECK v5_ids_equal_the_cli_v5_id
14:03:21.020 FAILED CHECK v5_ids_differ_from_the_same_seed_v4_id
14:03:21.020 FAILED CHECK v5_ids_differ_from_the_rung0_v5_id
14:03:21.020 summary: /tmp/igneum-fast-time-v5x-cross-0325-f8da7515/summary.json and /srv/builds/igneum-wt-v5-fasttime/docs/design/class-v5-harness/fasttime/cross-0325-f8da7515.json

View file

@ -378,7 +378,9 @@ for (const e of [...programs.values()].sort((a, b) => a.epoch - b.epoch)) {
else { row.cli = cliId(e.seedHex, ep.eraSeed, e.class, reps, null); row.cli_other = cliId(e.seedHex, ep.eraSeed, e.class, reps === RUNG0 ? RUNG1 : 0, null); }
idRows.push(row);
}
const mainRows = idRows.filter(r => !r.fork), forkRows = idRows.filter(r => r.fork);
const maxEpochSeen = Math.max(-1, ...epochs.keys());
// rows for epochs the template loop never observed (mined during the late joiner's wait on f8da7515, 14:03Z) are listed, never counted
const mainRows = idRows.filter(r => !r.fork && r.epoch <= maxEpochSeen), forkRows = idRows.filter(r => r.fork);
const v4Rows = mainRows.filter(r => r.class === 'v4'), v5Rows = mainRows.filter(r => r.class === 'v5');
// the miners expected on a main-chain row: every honest node's, less the restarted node while it is off the chain
const MINERS_EXPECTED = Math.max(2, honest.length - (restartNode ? 1 : 0));
@ -422,7 +424,6 @@ const floorLines = nodes.map(n => n.grepLog(FLOOR_LINE)[0]?.replace(/^.*?(Progra
const sinks = dag.map(d => String(d.sink || d.error || '?').slice(0, 16));
const counts = dag.map(d => d.blockCount ?? '?');
const honestIdx = honest.map(n => n.i);
const maxEpochSeen = Math.max(-1, ...epochs.keys());
const epochRows = [...epochs.entries()].sort((a, b) => a[0] - b[0]);
const afterStep = step ? epochRows.filter(([e]) => e > step.epoch).map(([, v]) => v.rung) : [];
const v5Epochs = epochRows.filter(([, v]) => v.class === 5);