diff --git a/docs/design/class-v5-harness/fasttime/cross-63524e28.json b/docs/design/class-v5-harness/fasttime/cross-63524e28.json new file mode 100644 index 000000000..d330d0138 --- /dev/null +++ b/docs/design/class-v5-harness/fasttime/cross-63524e28.json @@ -0,0 +1,1548 @@ +{ + "pass": false, + "case": "cross-63524e28", + "utc": "2026-10-07T20:34:12.803Z", + "checks": { + "started_on_class_v4_at_rung_0": true, + "every_node_signals_its_byte": true, + "every_node_signals_its_ladder_bits": true, + "window_and_ladder_lines_on_every_node": true, + "v5_enabled_by_the_floor_on_every_node": true, + "chain_carries_the_bytes": true, + "cli_reproduces_the_devnet_3_genesis_id": true, + "template_stepped_to_rung_1": true, + "stepped_at_the_first_full_window_epoch": true, + "step_line_on_every_node_same_epoch": true, + "step_weakest_up_at_or_above_threshold": true, + "no_second_step": false, + "rung0_ids_equal_the_cli_rung0_id": true, + "rung1_ids_equal_the_cli_rung1_id": true, + "template_switched_to_v5": true, + "crossed_at_the_first_full_window_epoch": true, + "crossed_after_the_rung_step": true, + "crossed_before_the_floor": true, + "signal_line_on_every_honest_node_same_epoch": true, + "signal_weakest_at_or_above_threshold": true, + "byte_6_counted_exactly_on_chain": true, + "blocks_on_both_sides": true, + "v5_rides_at_rung_1": true, + "a_stream_for_every_v5_epoch": true, + "v5_ids_equal_the_cli_v5_id": true, + "v5_ids_differ_from_the_same_seed_v4_id": true, + "v5_ids_differ_from_the_rung0_v5_id": true, + "state_roots_agree_across_nodes": true, + "a_v5_epoch_per_window_refresh": true, + "zero_rejected_on_honest_nodes": true, + "zero_rejected_by_honest_miners": true, + "honest_miners_accepted_after_the_flip": true, + "sinks_agree": false, + "block_counts_agree": false, + "stale_node_refused_from_the_first_refresh": true, + "stale_node_mined_before_the_refresh": true, + "restarted_across_the_boundary": true, + "no_lock_fault_after_the_restart": true, + "restarted_node_resynced": false, + "restarted_node_ibd_not_refused": false, + "restarted_node_mines_v5_after_the_restart": true + }, + "signals": [ + 6, + 6, + 6, + 6 + ], + "ladder": [ + "up", + "up", + "up", + "up" + ], + "class_window": 60, + "ladder_window": 45, + "windows": 7, + "class_threshold_bps": 9500, + "ladder_threshold_bps": 9000, + "floor": 900, + "floor_epoch": 15, + "epoch_blocks": 60, + "lead": 10, + "first_step_epoch": 6, + "first_flip_epoch": 8, + "boundary_daa": 480, + "node": "/srv/artefacts/v5-pair-63524e28/igneumd", + "miner": "/srv/artefacts/v5-pair-63524e28/igneum-miner", + "pow": "/srv/builds/igneum-wt-v5-fasttime/igneum-pow/target/release/igneum-pow", + "override_keys_dropped": [], + "dn3_genesis_check": { + "seed": "4020cb4382e3fe4b", + "pack_id": "e5a4ac5978462156", + "cli_id": "e5a4ac5978462156", + "ok": true + }, + "ladder_step": { + "epoch": 6, + "daa": 360, + "rung": 1, + "reps": 35, + "at": 421.2, + "wall": 1791404824599 + }, + "class_switch": { + "epoch": 8, + "daa": 480, + "at": 530.5, + "wall": 1791404933898, + "rung": 1, + "reps": 35 + }, + "run_ended_at_s": 719.8, + "final_daa": 660, + "max_epoch_seen": 11, + "epochs": { + "0": { + "class": 4, + "rung": 0, + "reps": 27, + "firstSeenDaa": 0, + "at": 7.1, + "wall": 1791404410462, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "v5_bps": 0, + "v5_weakest_bps": 0, + "v5_signal_epoch": null, + "up_weakest_bps": 0, + "step_epoch": 0 + }, + "1": { + "class": 4, + "rung": 0, + "reps": 27, + "firstSeenDaa": 60, + "at": 126.4, + "wall": 1791404529784, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "625a96ec783479e4e3f24f8b4acf4c4e9a3fc902eb04c60e81b39020f97cb9a3", + "v5_bps": 10000, + "v5_weakest_bps": 0, + "v5_signal_epoch": null, + "up_weakest_bps": 0, + "step_epoch": 0 + }, + "2": { + "class": 4, + "rung": 0, + "reps": 27, + "firstSeenDaa": 120, + "at": 183.6, + "wall": 1791404586925, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "10d331863788ace9826ff31e2221a11c9d2137f3f0409ec1d7229b822778b0a7", + "v5_bps": 10000, + "v5_weakest_bps": 0, + "v5_signal_epoch": null, + "up_weakest_bps": 0, + "step_epoch": 0 + }, + "3": { + "class": 4, + "rung": 0, + "reps": 27, + "firstSeenDaa": 180, + "at": 243.7, + "wall": 1791404647095, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "a75213ceb811abadbe93ad1b1670b73d68991041df2a77cabcf809a64315add8", + "v5_bps": 10000, + "v5_weakest_bps": 0, + "v5_signal_epoch": null, + "up_weakest_bps": 0, + "step_epoch": 0 + }, + "4": { + "class": 4, + "rung": 0, + "reps": 27, + "firstSeenDaa": 240, + "at": 305.9, + "wall": 1791404709278, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "6bc39c0fed38c1c75d63b6ed0b3accc17b61882074dbe7d903e371f9af71fb63", + "v5_bps": 10000, + "v5_weakest_bps": 0, + "v5_signal_epoch": null, + "up_weakest_bps": 0, + "step_epoch": 0 + }, + "5": { + "class": 4, + "rung": 0, + "reps": 27, + "firstSeenDaa": 300, + "at": 363.1, + "wall": 1791404766426, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "0a07dca05d53beb128959fa40745daeb91a780eb816c076a7f5dede09f8854ec", + "v5_bps": 10000, + "v5_weakest_bps": 0, + "v5_signal_epoch": null, + "up_weakest_bps": 10000, + "step_epoch": 0 + }, + "6": { + "class": 4, + "rung": 1, + "reps": 35, + "firstSeenDaa": 360, + "at": 421.2, + "wall": 1791404824598, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "2f47a9742c88e28992d903cdf4831195e090bc139edf1bcc7b838ae3e7abfe72", + "v5_bps": 10000, + "v5_weakest_bps": 0, + "v5_signal_epoch": null, + "up_weakest_bps": 10000, + "step_epoch": 6 + }, + "7": { + "class": 4, + "rung": 1, + "reps": 35, + "firstSeenDaa": 421, + "at": 473.4, + "wall": 1791404876751, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "6b977f4d0016495dab90243eee9267ac7e72a167e55281f593ae1095ee01a7a2", + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "v5_signal_epoch": null, + "up_weakest_bps": 10000, + "step_epoch": 6 + }, + "8": { + "class": 5, + "rung": 1, + "reps": 35, + "firstSeenDaa": 480, + "at": 530.5, + "wall": 1791404933898, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "2f7944518dd2ad3bb207ee3157a70e27ebcd8b87cbb9be45c81ca930dcb4b88f", + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "v5_signal_epoch": 8, + "up_weakest_bps": 10000, + "step_epoch": 6 + }, + "9": { + "class": 5, + "rung": 1, + "reps": 35, + "firstSeenDaa": 540, + "at": 594.2, + "wall": 1791404997620, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "1161f6e6a0b99b13c9f63efdd3f45cb8f09df7556374a75192dfffe4a9ac442f", + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "v5_signal_epoch": null, + "up_weakest_bps": 10000, + "step_epoch": 6 + }, + "10": { + "class": 5, + "rung": 1, + "reps": 35, + "firstSeenDaa": 600, + "at": 657.5, + "wall": 1791405060879, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "1588ab6d08450df2a90c0657e9ca2d3aacce8e5082a74d821e7c122be7875a61", + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "v5_signal_epoch": null, + "up_weakest_bps": 10000, + "step_epoch": 6 + }, + "11": { + "class": 5, + "rung": 1, + "reps": 35, + "firstSeenDaa": 660, + "at": 719.8, + "wall": 1791405123144, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "seed": "7fda1c7f1e3c69adacbb5cd0038dff64cf8c0d4b0ed68b538377973dcfccf4e8", + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "v5_signal_epoch": null, + "up_weakest_bps": 10000, + "step_epoch": 6 + } + }, + "streams": { + "0": { + "root": null, + "records": null, + "block": null, + "roots_per_node": {} + }, + "1": { + "root": "0xa955444f8e5d0dccbf636c9d2af27418a34ce31c0f9edb5bb6c0f582b835f1a4", + "records": 16, + "block": "625a96ec783479e4e3f24f8b4acf4c4e9a3fc902eb04c60e81b39020f97cb9a3", + "roots_per_node": { + "0": "0xa955444f8e5d0dccbf636c9d2af27418a34ce31c0f9edb5bb6c0f582b835f1a4", + "1": "0xa955444f8e5d0dccbf636c9d2af27418a34ce31c0f9edb5bb6c0f582b835f1a4", + "2": "0xa955444f8e5d0dccbf636c9d2af27418a34ce31c0f9edb5bb6c0f582b835f1a4" + } + }, + "2": { + "root": "0xd00cb0e4afc1772034f2a003f6ecb40a2995d8d596066fb550425f4db9c729be", + "records": 17, + "block": "10d331863788ace9826ff31e2221a11c9d2137f3f0409ec1d7229b822778b0a7", + "roots_per_node": { + "0": "0xd00cb0e4afc1772034f2a003f6ecb40a2995d8d596066fb550425f4db9c729be", + "1": "0xd00cb0e4afc1772034f2a003f6ecb40a2995d8d596066fb550425f4db9c729be", + "2": "0xd00cb0e4afc1772034f2a003f6ecb40a2995d8d596066fb550425f4db9c729be" + } + }, + "3": { + "root": "0x6888bdeb6d14cad64ed838d2f54a06cbeabaee161cb551bc3ccc240e2e67dfc7", + "records": 17, + "block": "a75213ceb811abadbe93ad1b1670b73d68991041df2a77cabcf809a64315add8", + "roots_per_node": { + "0": "0x6888bdeb6d14cad64ed838d2f54a06cbeabaee161cb551bc3ccc240e2e67dfc7", + "1": "0x6888bdeb6d14cad64ed838d2f54a06cbeabaee161cb551bc3ccc240e2e67dfc7", + "2": "0x6888bdeb6d14cad64ed838d2f54a06cbeabaee161cb551bc3ccc240e2e67dfc7" + } + }, + "4": { + "root": "0xae27f1438d314ff3091c1681bae48c1b26243a3d20aa13274671acbee0581601", + "records": 17, + "block": "6bc39c0fed38c1c75d63b6ed0b3accc17b61882074dbe7d903e371f9af71fb63", + "roots_per_node": { + "0": "0xae27f1438d314ff3091c1681bae48c1b26243a3d20aa13274671acbee0581601", + "1": "0xae27f1438d314ff3091c1681bae48c1b26243a3d20aa13274671acbee0581601", + "2": "0xae27f1438d314ff3091c1681bae48c1b26243a3d20aa13274671acbee0581601" + } + }, + "5": { + "root": "0xe2164c5c9665c4b7818412e2f157aa3a6df160789ec941cd0d9f2ba673decb02", + "records": 17, + "block": "0a07dca05d53beb128959fa40745daeb91a780eb816c076a7f5dede09f8854ec", + "roots_per_node": { + "0": "0xe2164c5c9665c4b7818412e2f157aa3a6df160789ec941cd0d9f2ba673decb02", + "1": "0xe2164c5c9665c4b7818412e2f157aa3a6df160789ec941cd0d9f2ba673decb02", + "2": "0xe2164c5c9665c4b7818412e2f157aa3a6df160789ec941cd0d9f2ba673decb02" + } + }, + "6": { + "root": "0xd1aa568c26ac7b3bc9edc729ffc23e248471d30eed88f1400872385331a32339", + "records": 17, + "block": "2f47a9742c88e28992d903cdf4831195e090bc139edf1bcc7b838ae3e7abfe72", + "roots_per_node": { + "0": "0xd1aa568c26ac7b3bc9edc729ffc23e248471d30eed88f1400872385331a32339", + "1": "0xd1aa568c26ac7b3bc9edc729ffc23e248471d30eed88f1400872385331a32339", + "2": "0xd1aa568c26ac7b3bc9edc729ffc23e248471d30eed88f1400872385331a32339" + } + }, + "7": { + "root": "0x83da097a19d54213ff54187cf1a99771017dca3c44102a3e6cbb65284f7bcd76", + "records": 17, + "block": "6b977f4d0016495dab90243eee9267ac7e72a167e55281f593ae1095ee01a7a2", + "roots_per_node": { + "0": "0x83da097a19d54213ff54187cf1a99771017dca3c44102a3e6cbb65284f7bcd76", + "1": "0x83da097a19d54213ff54187cf1a99771017dca3c44102a3e6cbb65284f7bcd76", + "2": "0x83da097a19d54213ff54187cf1a99771017dca3c44102a3e6cbb65284f7bcd76" + } + }, + "8": { + "root": "0x234a1f9127c9c03b39eff20fde58363f5dab5e2e3214c6b43b87aeea95d11103", + "records": 17, + "block": "2f7944518dd2ad3bb207ee3157a70e27ebcd8b87cbb9be45c81ca930dcb4b88f", + "roots_per_node": { + "0": "0x234a1f9127c9c03b39eff20fde58363f5dab5e2e3214c6b43b87aeea95d11103", + "1": "0x234a1f9127c9c03b39eff20fde58363f5dab5e2e3214c6b43b87aeea95d11103" + } + }, + "9": { + "root": "0x97edd42aa6892428f62ee89a5fb95e6b65ff85d115c4d241151385e2572242d0", + "records": 17, + "block": "1161f6e6a0b99b13c9f63efdd3f45cb8f09df7556374a75192dfffe4a9ac442f", + "roots_per_node": { + "0": "0x97edd42aa6892428f62ee89a5fb95e6b65ff85d115c4d241151385e2572242d0", + "1": "0x97edd42aa6892428f62ee89a5fb95e6b65ff85d115c4d241151385e2572242d0" + } + }, + "10": { + "root": "0x04fcc1dc625f7d0a2aa898db864ffe796255c377a8fc5e1ac844a813293bab5c", + "records": 17, + "block": "1588ab6d08450df2a90c0657e9ca2d3aacce8e5082a74d821e7c122be7875a61", + "roots_per_node": { + "0": "0x04fcc1dc625f7d0a2aa898db864ffe796255c377a8fc5e1ac844a813293bab5c", + "1": "0x04fcc1dc625f7d0a2aa898db864ffe796255c377a8fc5e1ac844a813293bab5c" + } + }, + "11": { + "root": "0x254ee9192c821ec756f3e8cb1b8fdbf50707c542a8dd2f1e7e2ea6ff07c83df6", + "records": 17, + "block": "7fda1c7f1e3c69adacbb5cd0038dff64cf8c0d4b0ed68b538377973dcfccf4e8", + "roots_per_node": { + "0": "0x254ee9192c821ec756f3e8cb1b8fdbf50707c542a8dd2f1e7e2ea6ff07c83df6", + "1": "0x254ee9192c821ec756f3e8cb1b8fdbf50707c542a8dd2f1e7e2ea6ff07c83df6" + } + } + }, + "blocks": { + "total": 661, + "before_boundary": 483, + "after_boundary": 178, + "object_bytes": { + "0": 1, + "6": 660 + }, + "byte_6_share_bps": 9985, + "ladder_bits": { + "none": 1, + "up": 660 + }, + "up_share_bps": 9985 + }, + "program_id_rows": [ + { + "epoch": 0, + "class": "v4", + "rung": 0, + "reps": 27, + "seed": "234e082d653dc69d", + "fork": false, + "miners_id": "83dab9f31f2e2dba", + "miners": 4, + "disagree": false, + "state_root": null, + "state_records": null, + "roots_per_node": {}, + "cli": "83dab9f31f2e2dba", + "cli_other": "343287b6df5996ed" + }, + { + "epoch": 1, + "class": "v4", + "rung": 0, + "reps": 27, + "seed": "625a96ec783479e4", + "fork": false, + "miners_id": "749276ac1f80b56c", + "miners": 4, + "disagree": false, + "state_root": "0xa955444f8e5d0dccbf636c9d2af27418a34ce31c0f9edb5bb6c0f582b835f1a4", + "state_records": 16, + "roots_per_node": { + "0": "0xa955444f8e5d0dccbf636c9d2af27418a34ce31c0f9edb5bb6c0f582b835f1a4", + "1": "0xa955444f8e5d0dccbf636c9d2af27418a34ce31c0f9edb5bb6c0f582b835f1a4", + "2": "0xa955444f8e5d0dccbf636c9d2af27418a34ce31c0f9edb5bb6c0f582b835f1a4" + }, + "cli": "749276ac1f80b56c", + "cli_other": "2678a4201322a433" + }, + { + "epoch": 2, + "class": "v4", + "rung": 0, + "reps": 27, + "seed": "10d331863788ace9", + "fork": false, + "miners_id": "9d8446f3db777c4e", + "miners": 4, + "disagree": false, + "state_root": "0xd00cb0e4afc1772034f2a003f6ecb40a2995d8d596066fb550425f4db9c729be", + "state_records": 17, + "roots_per_node": { + "0": "0xd00cb0e4afc1772034f2a003f6ecb40a2995d8d596066fb550425f4db9c729be", + "1": "0xd00cb0e4afc1772034f2a003f6ecb40a2995d8d596066fb550425f4db9c729be", + "2": "0xd00cb0e4afc1772034f2a003f6ecb40a2995d8d596066fb550425f4db9c729be" + }, + "cli": "9d8446f3db777c4e", + "cli_other": "9cb656d981c4463d" + }, + { + "epoch": 3, + "class": "v4", + "rung": 0, + "reps": 27, + "seed": "a75213ceb811abad", + "fork": false, + "miners_id": "eaf4807764312238", + "miners": 4, + "disagree": false, + "state_root": "0x6888bdeb6d14cad64ed838d2f54a06cbeabaee161cb551bc3ccc240e2e67dfc7", + "state_records": 17, + "roots_per_node": { + "0": "0x6888bdeb6d14cad64ed838d2f54a06cbeabaee161cb551bc3ccc240e2e67dfc7", + "1": "0x6888bdeb6d14cad64ed838d2f54a06cbeabaee161cb551bc3ccc240e2e67dfc7", + "2": "0x6888bdeb6d14cad64ed838d2f54a06cbeabaee161cb551bc3ccc240e2e67dfc7" + }, + "cli": "eaf4807764312238", + "cli_other": "7631d160beabddc3" + }, + { + "epoch": 4, + "class": "v4", + "rung": 0, + "reps": 27, + "seed": "6bc39c0fed38c1c7", + "fork": false, + "miners_id": "2512871226631fdc", + "miners": 4, + "disagree": false, + "state_root": "0xae27f1438d314ff3091c1681bae48c1b26243a3d20aa13274671acbee0581601", + "state_records": 17, + "roots_per_node": { + "0": "0xae27f1438d314ff3091c1681bae48c1b26243a3d20aa13274671acbee0581601", + "1": "0xae27f1438d314ff3091c1681bae48c1b26243a3d20aa13274671acbee0581601", + "2": "0xae27f1438d314ff3091c1681bae48c1b26243a3d20aa13274671acbee0581601" + }, + "cli": "2512871226631fdc", + "cli_other": "5f0adc0d4bf6142b" + }, + { + "epoch": 5, + "class": "v4", + "rung": 0, + "reps": 27, + "seed": "0a07dca05d53beb1", + "fork": false, + "miners_id": "2a9b4ac909e477c0", + "miners": 4, + "disagree": false, + "state_root": "0xe2164c5c9665c4b7818412e2f157aa3a6df160789ec941cd0d9f2ba673decb02", + "state_records": 17, + "roots_per_node": { + "0": "0xe2164c5c9665c4b7818412e2f157aa3a6df160789ec941cd0d9f2ba673decb02", + "1": "0xe2164c5c9665c4b7818412e2f157aa3a6df160789ec941cd0d9f2ba673decb02", + "2": "0xe2164c5c9665c4b7818412e2f157aa3a6df160789ec941cd0d9f2ba673decb02" + }, + "cli": "2a9b4ac909e477c0", + "cli_other": "0316aefe8106dccb" + }, + { + "epoch": 6, + "class": "v4", + "rung": 1, + "reps": 35, + "seed": "2f47a9742c88e289", + "fork": false, + "miners_id": "a1585cedf2b5ed51", + "miners": 4, + "disagree": false, + "state_root": "0xd1aa568c26ac7b3bc9edc729ffc23e248471d30eed88f1400872385331a32339", + "state_records": 17, + "roots_per_node": { + "0": "0xd1aa568c26ac7b3bc9edc729ffc23e248471d30eed88f1400872385331a32339", + "1": "0xd1aa568c26ac7b3bc9edc729ffc23e248471d30eed88f1400872385331a32339", + "2": "0xd1aa568c26ac7b3bc9edc729ffc23e248471d30eed88f1400872385331a32339" + }, + "cli": "a1585cedf2b5ed51", + "cli_other": "593e4af6b6c9b106" + }, + { + "epoch": 7, + "class": "v4", + "rung": 1, + "reps": 35, + "seed": "6b977f4d0016495d", + "fork": false, + "miners_id": "b5b948c26001debc", + "miners": 4, + "disagree": false, + "state_root": "0x83da097a19d54213ff54187cf1a99771017dca3c44102a3e6cbb65284f7bcd76", + "state_records": 17, + "roots_per_node": { + "0": "0x83da097a19d54213ff54187cf1a99771017dca3c44102a3e6cbb65284f7bcd76", + "1": "0x83da097a19d54213ff54187cf1a99771017dca3c44102a3e6cbb65284f7bcd76", + "2": "0x83da097a19d54213ff54187cf1a99771017dca3c44102a3e6cbb65284f7bcd76" + }, + "cli": "b5b948c26001debc", + "cli_other": "cf3d6e0e9b4e02c1" + }, + { + "epoch": 8, + "class": "v5", + "rung": 1, + "reps": 35, + "seed": "2f7944518dd2ad3b", + "fork": false, + "miners_id": "46e976c9d74abaae", + "miners": 3, + "disagree": false, + "state_root": "0x234a1f9127c9c03b39eff20fde58363f5dab5e2e3214c6b43b87aeea95d11103", + "state_records": 17, + "roots_per_node": { + "0": "0x234a1f9127c9c03b39eff20fde58363f5dab5e2e3214c6b43b87aeea95d11103", + "1": "0x234a1f9127c9c03b39eff20fde58363f5dab5e2e3214c6b43b87aeea95d11103" + }, + "cli": "46e976c9d74abaae", + "cli_other": "0c113d6179ad63bb", + "cli_rung0": "799ecc6cad703841" + }, + { + "epoch": 8, + "class": "v5", + "rung": 1, + "reps": 35, + "seed": "31f43d19d7a7b9ba", + "fork": true, + "miners_id": "7b53d4c975269d6c", + "miners": 1, + "disagree": false, + "state_root": null, + "state_records": null, + "roots_per_node": {}, + "cli": null, + "cli_other": "233af331f8f8b63d", + "cli_rung0": "7a6769fd8ce91e3b" + }, + { + "epoch": 9, + "class": "v5", + "rung": 1, + "reps": 35, + "seed": "1161f6e6a0b99b13", + "fork": false, + "miners_id": "4ffc98b46cc939b6", + "miners": 3, + "disagree": false, + "state_root": "0x97edd42aa6892428f62ee89a5fb95e6b65ff85d115c4d241151385e2572242d0", + "state_records": 17, + "roots_per_node": { + "0": "0x97edd42aa6892428f62ee89a5fb95e6b65ff85d115c4d241151385e2572242d0", + "1": "0x97edd42aa6892428f62ee89a5fb95e6b65ff85d115c4d241151385e2572242d0" + }, + "cli": "4ffc98b46cc939b6", + "cli_other": "86a2636289c7a56b", + "cli_rung0": "3077727680243f35" + }, + { + "epoch": 9, + "class": "v5", + "rung": 1, + "reps": 35, + "seed": "fd530b1bb0145eae", + "fork": true, + "miners_id": "a840102915b7bfa3", + "miners": 1, + "disagree": false, + "state_root": null, + "state_records": null, + "roots_per_node": {}, + "cli": null, + "cli_other": "a3024b5cba1c5076", + "cli_rung0": "a3997b2070aee97a" + }, + { + "epoch": 10, + "class": "v5", + "rung": 1, + "reps": 35, + "seed": "1588ab6d08450df2", + "fork": false, + "miners_id": "814782883265643a", + "miners": 3, + "disagree": false, + "state_root": "0x04fcc1dc625f7d0a2aa898db864ffe796255c377a8fc5e1ac844a813293bab5c", + "state_records": 17, + "roots_per_node": { + "0": "0x04fcc1dc625f7d0a2aa898db864ffe796255c377a8fc5e1ac844a813293bab5c", + "1": "0x04fcc1dc625f7d0a2aa898db864ffe796255c377a8fc5e1ac844a813293bab5c" + }, + "cli": "814782883265643a", + "cli_other": "72a4a39971470ea3", + "cli_rung0": "fd2e3da4f9dff9d9" + } + ], + "fork_rows": 2, + "miners_expected_on_a_row": 2, + "accepted_per_miner": [ + 263, + 262, + 390, + 129 + ], + "accepted_after_flip_per_miner": [ + 142, + 144, + 259, + 20 + ], + "rejected_by_miners": [ + 0, + 0, + 0, + 132 + ], + "submit_timeouts_per_miner": [ + 1, + 1, + 1, + 0 + ], + "rejected_by_nodes": [ + 0, + 0, + 0, + 132 + ], + "stale": { + "node": 3, + "accepted_total": 129, + "accepted_after_first_refresh": 0, + "old_template_blocks_after_refresh": 1, + "rejected_by_its_node": 132, + "rejected_lines": 132, + "first_refresh_epoch": 9 + }, + "restart": { + "node": 2, + "stopped": { + "daa": 456, + "at": 506.5, + "wall": 1791404909847 + }, + "started": { + "daa": 500, + "at": 557.1, + "wall": 1791404960478 + }, + "resynced": null, + "lock_fault_lines": [], + "ibd_refusal_lines": 1, + "ibd_refusal_example": "IBD: the last class v5 header chunk waits for this node's execution state (Igneum: proof-of-work check refused, class v5 needs the execution state after the epoch's seed block 2f7944518dd2ad3bb207ee3157a70e27ebcd8b87cbb9be45c81ca930dcb4b88f (day 1244031): no published state stream after chain block ", + "accepted_after_restart": 259, + "rejected_by_its_node": 0 + }, + "sinks": [ + "f7551068d959220d", + "f7551068d959220d", + "57b763ae4b44eca7", + "f7551068d959220d" + ], + "block_counts": [ + 660, + 660, + 594, + 660 + ], + "step_lines": [ + [ + "Latency ladder step by miner signal: epoch 6 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 45 DAA ending at seed block 2f47a9742c88e28992d903cdf4831195e090bc139edf1bcc7b838ae3e7abfe72, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 b", + "Latency ladder step by miner signal: epoch 12 moves to rung 2 (53 shadow passes, from rung 1): up in each of 7 consecutive windows of 45 DAA ending at seed block b3d8c73a717628377a0f994466f6e566c9c6b3d9c5d21ad91af046f4e419fd3d, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 " + ], + [ + "Latency ladder step by miner signal: epoch 6 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 45 DAA ending at seed block 2f47a9742c88e28992d903cdf4831195e090bc139edf1bcc7b838ae3e7abfe72, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 b", + "Latency ladder step by miner signal: epoch 12 moves to rung 2 (53 shadow passes, from rung 1): up in each of 7 consecutive windows of 45 DAA ending at seed block b3d8c73a717628377a0f994466f6e566c9c6b3d9c5d21ad91af046f4e419fd3d, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 " + ], + [ + "Latency ladder step by miner signal: epoch 6 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 45 DAA ending at seed block 2f47a9742c88e28992d903cdf4831195e090bc139edf1bcc7b838ae3e7abfe72, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 b", + "Latency ladder step by miner signal: epoch 6 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 45 DAA ending at seed block 2f47a9742c88e28992d903cdf4831195e090bc139edf1bcc7b838ae3e7abfe72, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 b", + "Latency ladder step by miner signal: epoch 12 moves to rung 2 (53 shadow passes, from rung 1): up in each of 7 consecutive windows of 45 DAA ending at seed block 2595bde8845b809c6aa857d62575bdefdc6127462002b5746d84107bd71d7403, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 " + ], + [ + "Latency ladder step by miner signal: epoch 6 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 45 DAA ending at seed block 2f47a9742c88e28992d903cdf4831195e090bc139edf1bcc7b838ae3e7abfe72, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 b", + "Latency ladder step by miner signal: epoch 12 moves to rung 2 (53 shadow passes, from rung 1): up in each of 7 consecutive windows of 45 DAA ending at seed block b3d8c73a717628377a0f994466f6e566c9c6b3d9c5d21ad91af046f4e419fd3d, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 " + ] + ], + "signal_lines": [ + [ + "Program class v5 by miner signal: epoch 8 (share 10000 bps at byte 6 over 60 DAA ending at seed block 2f7944518dd2ad3bb207ee3157a70e27ebcd8b87cbb9be45c81ca930dcb4b88f, threshold 9500 bps in each of 7 consecutive windows, weakest 10000 bps, shares oldest first [10000, 10000, 10000, 10000, 10000, 1000" + ], + [ + "Program class v5 by miner signal: epoch 8 (share 10000 bps at byte 6 over 60 DAA ending at seed block 2f7944518dd2ad3bb207ee3157a70e27ebcd8b87cbb9be45c81ca930dcb4b88f, threshold 9500 bps in each of 7 consecutive windows, weakest 10000 bps, shares oldest first [10000, 10000, 10000, 10000, 10000, 1000" + ], + [ + "Program class v5 by miner signal: epoch 8 (share 10000 bps at byte 6 over 60 DAA ending at seed block 2f7944518dd2ad3bb207ee3157a70e27ebcd8b87cbb9be45c81ca930dcb4b88f, threshold 9500 bps in each of 7 consecutive windows, weakest 10000 bps, shares oldest first [10000, 10000, 10000, 10000, 10000, 1000", + "Program class v5 by miner signal: epoch 8 (share 10000 bps at byte 6 over 60 DAA ending at seed block 2f7944518dd2ad3bb207ee3157a70e27ebcd8b87cbb9be45c81ca930dcb4b88f, threshold 9500 bps in each of 7 consecutive windows, weakest 10000 bps, shares oldest first [10000, 10000, 10000, 10000, 10000, 1000", + "Program class v5 by miner signal: epoch 8 (share 10000 bps at byte 6 over 60 DAA ending at seed block 2f7944518dd2ad3bb207ee3157a70e27ebcd8b87cbb9be45c81ca930dcb4b88f, threshold 9500 bps in each of 7 consecutive windows, weakest 10000 bps, shares oldest first [10000, 10000, 10000, 10000, 10000, 1000", + "Program class v5 by miner signal: epoch 8 (share 10000 bps at byte 6 over 60 DAA ending at seed block 31f43d19d7a7b9bae6dcaaffd249eb5f264582decb6be9c4f9087e503d66bb50, threshold 9500 bps in each of 7 consecutive windows, weakest 10000 bps, shares oldest first [10000, 10000, 10000, 10000, 10000, 1000" + ], + [ + "Program class v5 by miner signal: epoch 8 (share 10000 bps at byte 6 over 60 DAA ending at seed block 2f7944518dd2ad3bb207ee3157a70e27ebcd8b87cbb9be45c81ca930dcb4b88f, threshold 9500 bps in each of 7 consecutive windows, weakest 10000 bps, shares oldest first [10000, 10000, 10000, 10000, 10000, 1000" + ] + ], + "floor_lines": [ + "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 v5 signal (byte 6, 9500 bps in each of 7 consecutive windows) can flip v4 to v5 before it; every item of the dataset is keyed by the execution state after the epoch's seed block", + "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 v5 signal (byte 6, 9500 bps in each of 7 consecutive windows) can flip v4 to v5 before it; every item of the dataset is keyed by the execution state after the epoch's seed block", + "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 v5 signal (byte 6, 9500 bps in each of 7 consecutive windows) can flip v4 to v5 before it; every item of the dataset is keyed by the execution state after the epoch's seed block", + "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 v5 signal (byte 6, 9500 bps in each of 7 consecutive windows) can flip v4 to v5 before it; every item of the dataset is keyed by the execution state after the epoch's seed block" + ], + "samples": [ + { + "t": 7.1, + "daa": 0, + "epoch": 0, + "class": 4, + "rung": 0, + "v5_bps": 0, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "0/234e082d", + "0/234e082d", + "0/234e082d", + "0/234e082d" + ] + }, + { + "t": 22.2, + "daa": 0, + "epoch": 0, + "class": 4, + "rung": 0, + "v5_bps": 0, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "0/234e082d", + "0/234e082d", + "0/234e082d", + "0/234e082d" + ] + }, + { + "t": 37.2, + "daa": 6, + "epoch": 0, + "class": 4, + "rung": 0, + "v5_bps": 0, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "6/bf9d3893", + "6/bf9d3893", + "6/bf9d3893", + "6/bf9d3893" + ] + }, + { + "t": 52.2, + "daa": 8, + "epoch": 0, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "8/b3ebb4f3", + "8/b3ebb4f3", + "8/b3ebb4f3", + "8/b3ebb4f3" + ] + }, + { + "t": 67.3, + "daa": 11, + "epoch": 0, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "11/5f433a9d", + "11/5f433a9d", + "11/5f433a9d", + "11/5f433a9d" + ] + }, + { + "t": 82.3, + "daa": 13, + "epoch": 0, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "13/9fee3e7e", + "13/9fee3e7e", + "13/9fee3e7e", + "13/9fee3e7e" + ] + }, + { + "t": 97.4, + "daa": 19, + "epoch": 0, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "19/40be078d", + "19/40be078d", + "19/40be078d", + "19/40be078d" + ] + }, + { + "t": 112.4, + "daa": 37, + "epoch": 0, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "37/eea0659c", + "37/eea0659c", + "37/eea0659c", + "37/eea0659c" + ] + }, + { + "t": 127.4, + "daa": 60, + "epoch": 1, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "60/dbccaf52", + "60/dbccaf52", + "60/dbccaf52", + "60/dbccaf52" + ] + }, + { + "t": 142.5, + "daa": 74, + "epoch": 1, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "74/3ec27fce", + "73/3ec27fce", + "73/3ec27fce", + "65/a31d5de7" + ] + }, + { + "t": 157.5, + "daa": 87, + "epoch": 1, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "87/774f9e3b", + "87/774f9e3b", + "87/774f9e3b", + "87/774f9e3b" + ] + }, + { + "t": 172.5, + "daa": 106, + "epoch": 1, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "106/18947ed6", + "106/18947ed6", + "106/18947ed6", + "106/18947ed6" + ] + }, + { + "t": 187.6, + "daa": 122, + "epoch": 2, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "122/f1087793", + "122/f1087793", + "122/f1087793", + "122/f1087793" + ] + }, + { + "t": 202.6, + "daa": 141, + "epoch": 2, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "141/28b3e442", + "141/28b3e442", + "141/28b3e442", + "141/28b3e442" + ] + }, + { + "t": 217.7, + "daa": 162, + "epoch": 2, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "162/ad45a3c3", + "162/ad45a3c3", + "162/ad45a3c3", + "162/ad45a3c3" + ] + }, + { + "t": 232.7, + "daa": 175, + "epoch": 2, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "175/9d02d409", + "175/9d02d409", + "175/9d02d409", + "175/9d02d409" + ] + }, + { + "t": 247.7, + "daa": 180, + "epoch": 3, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "180/a8887618", + "180/a8887618", + "180/a8887618", + "180/a8887618" + ] + }, + { + "t": 262.8, + "daa": 186, + "epoch": 3, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "186/ba589261", + "186/ba589261", + "186/ba589261", + "182/f071a047" + ] + }, + { + "t": 277.8, + "daa": 206, + "epoch": 3, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "206/c78bd601", + "206/c78bd601", + "206/c78bd601", + "206/c78bd601" + ] + }, + { + "t": 292.9, + "daa": 222, + "epoch": 3, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "222/c81c5f01", + "222/c81c5f01", + "222/c81c5f01", + "222/c81c5f01" + ] + }, + { + "t": 307.9, + "daa": 240, + "epoch": 4, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "240/b1c24a5c", + "240/b1c24a5c", + "240/b1c24a5c", + "240/b1c24a5c" + ] + }, + { + "t": 323, + "daa": 254, + "epoch": 4, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "254/f15bd440", + "254/f15bd440", + "254/f15bd440", + "254/f15bd440" + ] + }, + { + "t": 338, + "daa": 274, + "epoch": 4, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 10000, + "nodes": [ + "274/ac0b69be", + "274/ac0b69be", + "274/ac0b69be", + "274/ac0b69be" + ] + }, + { + "t": 353, + "daa": 292, + "epoch": 4, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 10000, + "nodes": [ + "292/27b33be6", + "292/27b33be6", + "292/27b33be6", + "292/27b33be6" + ] + }, + { + "t": 368.1, + "daa": 302, + "epoch": 5, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 10000, + "nodes": [ + "302/cc2d11a2", + "302/cc2d11a2", + "302/cc2d11a2", + "302/cc2d11a2" + ] + }, + { + "t": 383.1, + "daa": 315, + "epoch": 5, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 10000, + "nodes": [ + "315/781e3dbd", + "315/781e3dbd", + "315/781e3dbd", + "315/781e3dbd" + ] + }, + { + "t": 398.2, + "daa": 332, + "epoch": 5, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 10000, + "nodes": [ + "332/5c6a9a53", + "332/5c6a9a53", + "332/5c6a9a53", + "332/5c6a9a53" + ] + }, + { + "t": 413.2, + "daa": 349, + "epoch": 5, + "class": 4, + "rung": 0, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 10000, + "nodes": [ + "349/e8dd041d", + "350/2f47a974", + "349/e8dd041d", + "349/e8dd041d" + ] + }, + { + "t": 428.3, + "daa": 363, + "epoch": 6, + "class": 4, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 0, + "up_weakest_bps": 10000, + "nodes": [ + "363/d72a73bb", + "363/d72a73bb", + "363/d72a73bb", + "363/d72a73bb" + ] + }, + { + "t": 443.3, + "daa": 381, + "epoch": 6, + "class": 4, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "381/b27f7832", + "381/b27f7832", + "381/b27f7832", + "381/b27f7832" + ] + }, + { + "t": 458.3, + "daa": 404, + "epoch": 6, + "class": 4, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "404/3e9c16ab", + "404/3e9c16ab", + "404/3e9c16ab", + "404/3e9c16ab" + ] + }, + { + "t": 473.4, + "daa": 421, + "epoch": 7, + "class": 4, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "421/cbbb1809", + "421/cbbb1809", + "421/cbbb1809", + "421/cbbb1809" + ] + }, + { + "t": 488.4, + "daa": 427, + "epoch": 7, + "class": 4, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "427/f9cd53e0", + "427/f9cd53e0", + "427/f9cd53e0", + "427/f9cd53e0" + ] + }, + { + "t": 503.5, + "daa": 452, + "epoch": 7, + "class": 4, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "452/633bb74b", + "452/633bb74b", + "452/633bb74b", + "452/633bb74b" + ] + }, + { + "t": 518.5, + "daa": 468, + "epoch": 7, + "class": 4, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "468/4ce9e243", + "468/4ce9e243", + "down", + "468/4ce9e243" + ] + }, + { + "t": 533.5, + "daa": 480, + "epoch": 8, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "480/eef725c5", + "480/eef725c5", + "down", + "480/eef725c5" + ] + }, + { + "t": 548.6, + "daa": 487, + "epoch": 8, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "487/7cc69b2b", + "487/7cc69b2b", + "down", + "487/7cc69b2b" + ] + }, + { + "t": 564.1, + "daa": 510, + "epoch": 8, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "510/235198aa", + "510/235198aa", + "456/31cb84da", + "510/235198aa" + ] + }, + { + "t": 579.2, + "daa": 528, + "epoch": 8, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "528/ea673569", + "528/ea673569", + "459/d67fa17e", + "528/ea673569" + ] + }, + { + "t": 594.3, + "daa": 540, + "epoch": 9, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "540/506de4de", + "540/506de4de", + "467/2c0a4d36", + "540/506de4de" + ] + }, + { + "t": 609.3, + "daa": 544, + "epoch": 9, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "544/591f9b61", + "544/591f9b61", + "480/5c6c258f", + "544/591f9b61" + ] + }, + { + "t": 624.4, + "daa": 561, + "epoch": 9, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "561/84216ce0", + "561/84216ce0", + "484/63497de0", + "561/84216ce0" + ] + }, + { + "t": 639.5, + "daa": 576, + "epoch": 9, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "576/03baf326", + "576/03baf326", + "506/aa98decc", + "576/03baf326" + ] + }, + { + "t": 654.5, + "daa": 591, + "epoch": 9, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "592/f8bc65b0", + "592/f8bc65b0", + "518/55ab116d", + "591/f1518b75" + ] + }, + { + "t": 669.6, + "daa": 603, + "epoch": 10, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "603/94b5b4f2", + "601/f761ab9c", + "536/d1da20d5", + "603/94b5b4f2" + ] + }, + { + "t": 684.6, + "daa": 619, + "epoch": 10, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "619/200fcc10", + "619/200fcc10", + "543/0b801fc8", + "619/200fcc10" + ] + }, + { + "t": 699.7, + "daa": 639, + "epoch": 10, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "639/ba88533f", + "639/ba88533f", + "563/49843199", + "639/ba88533f" + ] + }, + { + "t": 714.8, + "daa": 655, + "epoch": 10, + "class": 5, + "rung": 1, + "v5_bps": 10000, + "v5_weakest_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "655/c3cff9ec", + "655/c3cff9ec", + "586/dc829f77", + "655/c3cff9ec" + ] + } + ] +} \ No newline at end of file diff --git a/docs/design/class-v5-harness/fasttime/cross-63524e28.log b/docs/design/class-v5-harness/fasttime/cross-63524e28.log new file mode 100644 index 000000000..337122961 --- /dev/null +++ b/docs/design/class-v5-harness/fasttime/cross-63524e28.log @@ -0,0 +1,108 @@ +20:19:59.037 override: every key known to the binary +20:19:59.039 case cross-63524e28: 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/v5-pair-63524e28/igneumd +20:20:03.371 CPU verifier on the Devnet 3 genesis pack: cli e5a4ac5978462156 pack e5a4ac5978462156 expected e5a4ac5978462156: OK +20:20:04.927 n0 up pid 1819608 json 29862 p2p 29861 exec 29863, byte 6, ladder up +20:20:06.438 n1 up pid 1820581 json 29872 p2p 29871 exec 29873, byte 6, ladder up +20:20:07.944 n2 up pid 1820976 json 29882 p2p 29881 exec 29883, byte 6, ladder up +20:20:09.449 n3 up pid 1821375 json 29892 p2p 29891 exec 29893, byte 6, ladder up +20:20:09.450 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 +20:20:09.450 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 +20:20:09.450 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 +20:20:09.450 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 +20:20:09.450 n0 digest: 6fa8e71d7fb9aa0d +20:20:10.462 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 +20:20:10.488 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 +20:20:25.537 t=22.2 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 +20:20:40.581 t=37.2 s daa 6 epoch 0 class 4 rung 0 v5 0 bps (weakest 0) up weakest 0 blocks/sink per node 6/bf9d3893 6/bf9d3893 6/bf9d3893 6/bf9d3893 +20:20:55.619 t=52.2 s daa 8 epoch 0 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 8/b3ebb4f3 8/b3ebb4f3 8/b3ebb4f3 8/b3ebb4f3 +20:21:10.655 t=67.3 s daa 11 epoch 0 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 11/5f433a9d 11/5f433a9d 11/5f433a9d 11/5f433a9d +20:21:25.688 t=82.3 s daa 13 epoch 0 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 13/9fee3e7e 13/9fee3e7e 13/9fee3e7e 13/9fee3e7e +20:21:40.724 t=97.4 s daa 19 epoch 0 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 19/40be078d 19/40be078d 19/40be078d 19/40be078d +20:21:55.761 t=112.4 s daa 37 epoch 0 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 37/eea0659c 37/eea0659c 37/eea0659c 37/eea0659c +20:22:09.784 epoch 0 -> 1 at daa 60, 126.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 +20:22:10.792 stream for epoch 1 (seed 625a96ec783479e4): root 0xa955444f8e5d0dcc 16 records, from n0 +20:22:10.797 t=127.4 s daa 60 epoch 1 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 60/dbccaf52 60/dbccaf52 60/dbccaf52 60/dbccaf52 +20:22:25.835 t=142.5 s daa 74 epoch 1 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 74/3ec27fce 73/3ec27fce 73/3ec27fce 65/a31d5de7 +20:22:40.869 t=157.5 s daa 87 epoch 1 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 87/774f9e3b 87/774f9e3b 87/774f9e3b 87/774f9e3b +20:22:55.907 t=172.5 s daa 106 epoch 1 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 106/18947ed6 106/18947ed6 106/18947ed6 106/18947ed6 +20:23:06.925 epoch 1 -> 2 at daa 120, 183.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 +20:23:06.930 stream for epoch 2 (seed 10d331863788ace9): root 0xd00cb0e4afc17720 17 records, from n0 +20:23:10.947 t=187.6 s daa 122 epoch 2 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 122/f1087793 122/f1087793 122/f1087793 122/f1087793 +20:23:25.989 t=202.6 s daa 141 epoch 2 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 141/28b3e442 141/28b3e442 141/28b3e442 141/28b3e442 +20:23:41.031 t=217.7 s daa 162 epoch 2 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 162/ad45a3c3 162/ad45a3c3 162/ad45a3c3 162/ad45a3c3 +20:23:56.074 t=232.7 s daa 175 epoch 2 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 175/9d02d409 175/9d02d409 175/9d02d409 175/9d02d409 +20:24:07.095 epoch 2 -> 3 at daa 180, 243.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 +20:24:07.102 stream for epoch 3 (seed a75213ceb811abad): root 0x6888bdeb6d14cad6 17 records, from n0 +20:24:11.120 t=247.7 s daa 180 epoch 3 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 180/a8887618 180/a8887618 180/a8887618 180/a8887618 +20:24:26.153 t=262.8 s daa 186 epoch 3 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 186/ba589261 186/ba589261 186/ba589261 182/f071a047 +20:24:41.193 t=277.8 s daa 206 epoch 3 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 206/c78bd601 206/c78bd601 206/c78bd601 206/c78bd601 +20:24:56.238 t=292.9 s daa 222 epoch 3 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 222/c81c5f01 222/c81c5f01 222/c81c5f01 222/c81c5f01 +20:25:09.278 epoch 3 -> 4 at daa 240, 305.9 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 +20:25:11.285 stream for epoch 4 (seed 6bc39c0fed38c1c7): root 0xae27f1438d314ff3 17 records, from n0 +20:25:11.287 t=307.9 s daa 240 epoch 4 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 240/b1c24a5c 240/b1c24a5c 240/b1c24a5c 240/b1c24a5c +20:25:26.324 t=323.0 s daa 254 epoch 4 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 0 blocks/sink per node 254/f15bd440 254/f15bd440 254/f15bd440 254/f15bd440 +20:25:41.369 t=338.0 s daa 274 epoch 4 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 274/ac0b69be 274/ac0b69be 274/ac0b69be 274/ac0b69be +20:25:56.408 t=353.0 s daa 292 epoch 4 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 292/27b33be6 292/27b33be6 292/27b33be6 292/27b33be6 +20:26:06.426 epoch 4 -> 5 at daa 300, 363.1 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 +20:26:07.435 stream for epoch 5 (seed 0a07dca05d53beb1): root 0xe2164c5c9665c4b7 17 records, from n0 +20:26:11.448 t=368.1 s daa 302 epoch 5 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 302/cc2d11a2 302/cc2d11a2 302/cc2d11a2 302/cc2d11a2 +20:26:26.499 t=383.1 s daa 315 epoch 5 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 315/781e3dbd 315/781e3dbd 315/781e3dbd 315/781e3dbd +20:26:41.536 t=398.2 s daa 332 epoch 5 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 332/5c6a9a53 332/5c6a9a53 332/5c6a9a53 332/5c6a9a53 +20:26:56.578 t=413.2 s daa 349 epoch 5 class 4 rung 0 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 349/e8dd041d 350/2f47a974 349/e8dd041d 349/e8dd041d +20:27:04.598 epoch 5 -> 6 at daa 360, 421.2 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 +20:27:04.599 LADDER STEP: the template is rung 1 (35 shadow passes) from epoch 6 (daa 360) at 421.2 s wall +20:27:07.609 stream for epoch 6 (seed 2f47a9742c88e289): root 0xd1aa568c26ac7b3b 17 records, from n0 +20:27:11.623 t=428.3 s daa 363 epoch 6 class 4 rung 1 v5 10000 bps (weakest 0) up weakest 10000 blocks/sink per node 363/d72a73bb 363/d72a73bb 363/d72a73bb 363/d72a73bb +20:27:26.658 t=443.3 s daa 381 epoch 6 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 381/b27f7832 381/b27f7832 381/b27f7832 381/b27f7832 +20:27:41.689 t=458.3 s daa 404 epoch 6 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 404/3e9c16ab 404/3e9c16ab 404/3e9c16ab 404/3e9c16ab +20:27:56.751 epoch 6 -> 7 at daa 421, 473.4 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 +20:27:56.753 t=473.4 s daa 421 epoch 7 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 421/cbbb1809 421/cbbb1809 421/cbbb1809 421/cbbb1809 +20:27:59.767 stream for epoch 7 (seed 6b977f4d0016495d): root 0x83da097a19d54213 17 records, from n0 +20:28:11.805 t=488.4 s daa 427 epoch 7 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 427/f9cd53e0 427/f9cd53e0 427/f9cd53e0 427/f9cd53e0 +20:28:26.833 t=503.5 s daa 452 epoch 7 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 452/633bb74b 452/633bb74b 452/633bb74b 452/633bb74b +20:28:29.847 RESTART STEP: n2 and its miner stopped at daa 456 (506.5 s), 24 DAA before the expected v5 boundary 480 +20:28:41.878 t=518.5 s daa 468 epoch 7 class 4 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 468/4ce9e243 468/4ce9e243 down 468/4ce9e243 +20:28:53.898 epoch 7 -> 8 at daa 480, 530.5 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 +20:28:53.898 CLASS SWITCH: the template is class v5 from epoch 8 (daa 480) at rung 1 (35 passes), 530.5 s wall +20:28:55.905 stream for epoch 8 (seed 2f7944518dd2ad3b): root 0x234a1f9127c9c03b 17 records, from n0 +20:28:56.906 t=533.5 s daa 480 epoch 8 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 480/eef725c5 480/eef725c5 down 480/eef725c5 +20:29:11.938 t=548.6 s daa 487 epoch 8 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 487/7cc69b2b 487/7cc69b2b down 487/7cc69b2b +20:29:20.473 n2 RESTARTED pid 1935290 json 29882 p2p 29881 exec 29883, byte 6, ladder up (own datadir kept) +20:29:20.478 RESTART STEP: n2 started on its own datadir at daa 500 (557.1 s), 20 DAA after the boundary; its miner restarted with its key +20:29:27.512 t=564.1 s daa 510 epoch 8 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 510/235198aa 510/235198aa 456/31cb84da 510/235198aa +20:29:42.568 t=579.2 s daa 528 epoch 8 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 528/ea673569 528/ea673569 459/d67fa17e 528/ea673569 +20:29:57.620 epoch 8 -> 9 at daa 540, 594.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 +20:29:57.628 stream for epoch 9 (seed 1161f6e6a0b99b13): root 0x97edd42aa6892428 17 records, from n0 +20:29:57.631 t=594.3 s daa 540 epoch 9 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 540/506de4de 540/506de4de 467/2c0a4d36 540/506de4de +20:30:12.705 t=609.3 s daa 544 epoch 9 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 544/591f9b61 544/591f9b61 480/5c6c258f 544/591f9b61 +20:30:27.761 t=624.4 s daa 561 epoch 9 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 561/84216ce0 561/84216ce0 484/63497de0 561/84216ce0 +20:30:42.831 t=639.5 s daa 576 epoch 9 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 576/03baf326 576/03baf326 506/aa98decc 576/03baf326 +20:30:57.876 t=654.5 s daa 591 epoch 9 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 592/f8bc65b0 592/f8bc65b0 518/55ab116d 591/f1518b75 +20:31:00.879 epoch 9 -> 10 at daa 600, 657.5 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 +20:31:01.889 stream for epoch 10 (seed 1588ab6d08450df2): root 0x04fcc1dc625f7d0a 17 records, from n0 +20:31:12.931 t=669.6 s daa 603 epoch 10 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 603/94b5b4f2 601/f761ab9c 536/d1da20d5 603/94b5b4f2 +20:31:28.003 t=684.6 s daa 619 epoch 10 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 619/200fcc10 619/200fcc10 543/0b801fc8 619/200fcc10 +20:31:43.069 t=699.7 s daa 639 epoch 10 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 639/ba88533f 639/ba88533f 563/49843199 639/ba88533f +20:31:58.130 t=714.8 s daa 655 epoch 10 class 5 rung 1 v5 10000 bps (weakest 10000) up weakest 10000 blocks/sink per node 655/c3cff9ec 655/c3cff9ec 586/dc829f77 655/c3cff9ec +20:32:03.144 epoch 10 -> 11 at daa 660, 719.8 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 +20:32:06.153 stream for epoch 11 (seed 7fda1c7f1e3c69ad): root 0x254ee9192c821ec7 17 records, from n0 +20:34:12.804 SUMMARY FAIL (cross-63524e28) 2026-10-07T20:34:12.803Z: 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":660} (9985 bps at byte 6), ladder bits {"none":1,"up":660}; blocks 483 / 178 across DAA 480; rejected miners 0/0/0/132 nodes 0/0/0/132 (submit timeouts 1/1/1/0); accepted after the flip 142/144/259/20; sinks f7551068d959220d f7551068d959220d 57b763ae4b44eca7 f7551068d959220d (DIFFER) at 660/660/594/660; step lines 4/4 (epochs 6/6/6/6), v5 signal lines 4/4 (epochs 8/8/8/8, weakest 10000/10000/10000/10000); stale n3 accepted after the first refresh 0 rejected 132; restart n2 stopped at DAA 456, started at DAA 500, lock faults 0, IBD refusals 1, accepted after 259; dn3 id OK +20:34:12.804 PROGRAM ID epoch 0 v4 rung 0 (27 passes) seed 234e082d653dc69d: miners 83dab9f31f2e2dba (4 of 4) cli 83dab9f31f2e2dba other-class 343287b6df5996ed OK +20:34:12.804 PROGRAM ID epoch 1 v4 rung 0 (27 passes) seed 625a96ec783479e4: miners 749276ac1f80b56c (4 of 4) cli 749276ac1f80b56c other-class 2678a4201322a433 state 0xa955444f8e5d0dcc (16 records) OK +20:34:12.804 PROGRAM ID epoch 2 v4 rung 0 (27 passes) seed 10d331863788ace9: miners 9d8446f3db777c4e (4 of 4) cli 9d8446f3db777c4e other-class 9cb656d981c4463d state 0xd00cb0e4afc17720 (17 records) OK +20:34:12.804 PROGRAM ID epoch 3 v4 rung 0 (27 passes) seed a75213ceb811abad: miners eaf4807764312238 (4 of 4) cli eaf4807764312238 other-class 7631d160beabddc3 state 0x6888bdeb6d14cad6 (17 records) OK +20:34:12.804 PROGRAM ID epoch 4 v4 rung 0 (27 passes) seed 6bc39c0fed38c1c7: miners 2512871226631fdc (4 of 4) cli 2512871226631fdc other-class 5f0adc0d4bf6142b state 0xae27f1438d314ff3 (17 records) OK +20:34:12.804 PROGRAM ID epoch 5 v4 rung 0 (27 passes) seed 0a07dca05d53beb1: miners 2a9b4ac909e477c0 (4 of 4) cli 2a9b4ac909e477c0 other-class 0316aefe8106dccb state 0xe2164c5c9665c4b7 (17 records) OK +20:34:12.804 PROGRAM ID epoch 6 v4 rung 1 (35 passes) seed 2f47a9742c88e289: miners a1585cedf2b5ed51 (4 of 4) cli a1585cedf2b5ed51 other-class 593e4af6b6c9b106 state 0xd1aa568c26ac7b3b (17 records) OK +20:34:12.804 PROGRAM ID epoch 7 v4 rung 1 (35 passes) seed 6b977f4d0016495d: miners b5b948c26001debc (4 of 4) cli b5b948c26001debc other-class cf3d6e0e9b4e02c1 state 0x83da097a19d54213 (17 records) OK +20:34:12.804 PROGRAM ID epoch 8 v5 rung 1 (35 passes) seed 2f7944518dd2ad3b: miners 46e976c9d74abaae (3 of 4) cli 46e976c9d74abaae other-class 0c113d6179ad63bb rung0 799ecc6cad703841 state 0x234a1f9127c9c03b (17 records) OK +20:34:12.805 PROGRAM ID epoch 8 FORK v5 rung 1 (35 passes) seed 31f43d19d7a7b9ba: miners 7b53d4c975269d6c (1 of 4) cli null other-class 233af331f8f8b63d rung0 7a6769fd8ce91e3b MISMATCH +20:34:12.805 PROGRAM ID epoch 9 v5 rung 1 (35 passes) seed 1161f6e6a0b99b13: miners 4ffc98b46cc939b6 (3 of 4) cli 4ffc98b46cc939b6 other-class 86a2636289c7a56b rung0 3077727680243f35 state 0x97edd42aa6892428 (17 records) OK +20:34:12.805 PROGRAM ID epoch 9 FORK v5 rung 1 (35 passes) seed fd530b1bb0145eae: miners a840102915b7bfa3 (1 of 4) cli null other-class a3024b5cba1c5076 rung0 a3997b2070aee97a MISMATCH +20:34:12.805 PROGRAM ID epoch 10 v5 rung 1 (35 passes) seed 1588ab6d08450df2: miners 814782883265643a (3 of 4) cli 814782883265643a other-class 72a4a39971470ea3 rung0 fd2e3da4f9dff9d9 state 0x04fcc1dc625f7d0a (17 records) OK +20:34:12.805 FAILED CHECK no_second_step +20:34:12.805 FAILED CHECK sinks_agree +20:34:12.805 FAILED CHECK block_counts_agree +20:34:12.805 FAILED CHECK restarted_node_resynced +20:34:12.805 FAILED CHECK restarted_node_ibd_not_refused +20:34:12.805 summary: /tmp/igneum-fast-time-v5x-cross-63524e28/summary.json and /srv/builds/igneum-wt-v5-fasttime/docs/design/class-v5-harness/fasttime/cross-63524e28.json diff --git a/infra/fast-time/class-v5-crossing.mjs b/infra/fast-time/class-v5-crossing.mjs index ed788375d..e8b17cdac 100644 --- a/infra/fast-time/class-v5-crossing.mjs +++ b/infra/fast-time/class-v5-crossing.mjs @@ -27,7 +27,7 @@ // the checks. // // node infra/fast-time/class-v5-crossing.mjs [--case cross] [--signal 6,6,6,6] [--ladder up,up,up,up] [--class-window 60] -// [--ladder-window 45] [--floor 900|never] [--stale 3|none] [--restart 2|none] [--restart-before 25] [--restart-after 20] +// [--ladder-window 45] [--floor 900|never] [--stale 3|none] [--restart 2|none] [--restart-before 25] [--restart-after 20] [--restart-miner-hold-s 300] // [--epochs 11] [--secs 960] [--out ] [--genesis-bits 0x1f010000] // IGNEUMD, IGNEUM_MINER, IGNEUM_POW name the binaries (defaults: vendor/igneum-node-v5-fasttime/target/release and // igneum-pow/target/release/igneum-pow, the layout on igneum-build-1 under /srv/builds/igneum-wt-v5-fasttime). @@ -66,7 +66,7 @@ const LADDER_WINDOW = flag('ladder-window', 45); const FLOOR = actflag('floor', 900); const STALE = optidx('stale', 3); const RESTART = optidx('restart', 2); -const RESTART_BEFORE = flag('restart-before', 25), RESTART_AFTER = flag('restart-after', 20); +const RESTART_BEFORE = flag('restart-before', 25), RESTART_AFTER = flag('restart-after', 20), MINER_HOLD = flag('restart-miner-hold-s', 300); const SIGNAL = (sflag('signal') || '6,6,6,6').split(',').map(Number); const LADDER = (sflag('ladder') || 'up,up,up,up').split(',').map(s => s.trim().toLowerCase()); const N = SIGNAL.length; @@ -261,7 +261,15 @@ while (Date.now() - t0 < SECS * 1000) { } if (restartNode && restart.stopped && !restart.started && daa != null && daa >= BOUNDARY + RESTART_AFTER) { try { await restartNode.start(); } catch (e) { log(`RESTART STEP FAILED: ${e.message}`); restart.started = { daa, at: +since(), wall: Date.now(), failed: e.message }; } - if (!restart.started) { miner(RESTART, restartNode, Math.max(60, SECS - Math.floor((Date.now() - t0) / 1000))); restart.started = { daa, at: +since(), wall: Date.now() }; log(`RESTART STEP: n${RESTART} started on its own datadir at daa ${daa} (${since()} s), ${daa - BOUNDARY} DAA after the boundary; its miner restarted with its key`); } + // the miner waits for the resync (--restart-miner-hold-s cap): on the 63524e28 run a miner restarted at once, with + // unsynced mining on, extended the node's own branch from the split, which outweighed the 24 honest blocks the node could + // validate (the v5 headers past the boundary deferred), so the executor followed the fork and the IBD catch-up waited forever + if (!restart.started) { restart.started = { daa, at: +since(), wall: Date.now() }; log(`RESTART STEP: n${RESTART} started on its own datadir at daa ${daa} (${since()} s), ${daa - BOUNDARY} DAA after the boundary; its miner waits for the resync (at most ${MINER_HOLD} s)`); } + } + if (restartNode && restart.started && !restart.started.failed && !restart.minerStarted && (restart.resynced || Date.now() - restart.started.wall > MINER_HOLD * 1000)) { + miner(RESTART, restartNode, Math.max(60, SECS - Math.floor((Date.now() - t0) / 1000))); + restart.minerStarted = { daa, at: +since(), wall: Date.now(), after_resync: !!restart.resynced }; + log(`RESTART STEP: n${RESTART}'s miner restarted with its key at daa ${daa} (${since()} s), ${restart.resynced ? 'after the resync' : `without a resync inside ${MINER_HOLD} s`}`); } if (restartNode && restart.started && !restart.started.failed && !restart.resynced && restartNode.rpc) { const [a, b] = await Promise.all([n0.dag(), restartNode.dag()]); @@ -387,7 +395,9 @@ const restartFaults = restartNode && restart.started && !restart.started.failed // before its executor has passed the seed block it stopped short of), and with unsynced mining on it mined its own fork const IBD_REFUSED = /IBD with peer .* completed with error|proof-of-work check refused|class v5 needs the execution state/; const restartIbdRefusals = restartNode && restart.started && !restart.started.failed ? restartNode.grepLog(IBD_REFUSED, restartNode.restartLine) : []; -const restartAcceptedAfter = restartNode && restart.started ? acceptedAfter(RESTART, restart.started.wall) : null; +const restartAcceptedAfter = restartNode && restart.minerStarted ? acceptedAfter(RESTART, restart.minerStarted.wall) : null; +const CATCHUP_DONE = /IBD: class v5 catch-up done/; +const restartCatchupDone = restartNode && restart.started && !restart.started.failed ? restartNode.grepLog(CATCHUP_DONE, restartNode.restartLine) : []; // the stream roots agree across the executing honest nodes wherever two or more answered const rootRows = [...streams.entries()].map(([e, st]) => ({ epoch: +e, roots: Object.values(st.roots) })).filter(r => r.roots.length >= 2); @@ -439,7 +449,8 @@ const checks = { no_lock_fault_after_the_restart: restartNode == null ? null : (!!restart.started && !restart.started.failed && restartFaults.length === 0), restarted_node_resynced: restartNode == null ? null : (!!restart.resynced && sinks[RESTART] === sinks[0]), restarted_node_ibd_not_refused: restartNode == null ? null : (!!restart.started && !restart.started.failed && restartIbdRefusals.length === 0), - restarted_node_mines_v5_after_the_restart: restartNode == null ? null : (restartAcceptedAfter > 0 && rejectedNode[RESTART] === 0), + restarted_node_mines_v5_after_the_restart: restartNode == null ? null : (restartAcceptedAfter > 0 && rejectedNode[RESTART] === 0 && !!restart.minerStarted?.after_resync), + restarted_node_catch_up_done_line: restartNode == null ? null : (restartCatchupDone.length > 0), }; const pass = Object.values(checks).every(v => v === true || v === null); const summary = { @@ -450,7 +461,7 @@ const summary = { blocks: { total: blocks.length, before_boundary: before.length, after_boundary: after.length, object_bytes: objectBytes, byte_6_share_bps: byte6Share, ladder_bits: ladderBits, up_share_bps: upShare }, program_id_rows: idRows, fork_rows: forkRows.length, miners_expected_on_a_row: MINERS_EXPECTED, accepted_per_miner: accepted, accepted_after_flip_per_miner: acceptedAfterFlip, rejected_by_miners: rejectedMiner, submit_timeouts_per_miner: submitTimeouts, rejected_by_nodes: rejectedNode, stale: stale ? { node: STALE, accepted_total: accepted[STALE], accepted_after_first_refresh: staleAcceptedAfterRefresh, old_template_blocks_after_refresh: staleOldTemplateAfterRefresh, rejected_by_its_node: rejectedNode[STALE], rejected_lines: rejectedMiner[STALE], first_refresh_epoch: flip ? flip.epoch + 1 : null } : null, - restart: restartNode ? { node: RESTART, ...restart, lock_fault_lines: restartFaults.slice(0, 5), ibd_refusal_lines: restartIbdRefusals.length, ibd_refusal_example: restartIbdRefusals[0]?.replace(/^.*?\] /, '').slice(0, 300) ?? null, accepted_after_restart: restartAcceptedAfter, rejected_by_its_node: rejectedNode[RESTART] } : null, + restart: restartNode ? { node: RESTART, ...restart, lock_fault_lines: restartFaults.slice(0, 5), ibd_refusal_lines: restartIbdRefusals.length, catch_up_done_lines: restartCatchupDone.map(l => l.replace(/^.*?\] /, '').slice(0, 200)), ibd_refusal_example: restartIbdRefusals[0]?.replace(/^.*?\] /, '').slice(0, 300) ?? null, accepted_after_restart: restartAcceptedAfter, rejected_by_its_node: rejectedNode[RESTART] } : null, sinks, block_counts: counts, step_lines: stepLines.map(ls => ls.map(l => l.slice(0, 300))), signal_lines: signalLines.map(ls => ls.map(l => l.slice(0, 300))), floor_lines: floorLines, samples, }; writeFileSync(`${TMP}/summary.json`, JSON.stringify(summary, null, 2));