From e39d966840bb2e920b7d703c0fec311f75d1bdc9 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Tue, 6 Oct 2026 22:58:39 +0000 Subject: [PATCH] latency ladder: the step2 harness case passes on all 18 checks; the four runs' summaries and logs under docs/design/latency-ladder-harness Co-Authored-By: Claude Fable 5.1 --- .../latency-ladder-harness/failed-case.json | 1028 +++++++++++++++++ .../latency-ladder-harness/failed-case.log | 86 ++ .../latency-ladder-harness/no-step.json | 969 ++++++++++++++++ .../design/latency-ladder-harness/no-step.log | 73 ++ docs/design/latency-ladder-harness/step.json | 1012 ++++++++++++++++ docs/design/latency-ladder-harness/step.log | 78 ++ docs/design/latency-ladder-harness/step2.json | 1012 ++++++++++++++++ docs/design/latency-ladder-harness/step2.log | 76 ++ docs/design/latency-ladder.md | 4 +- 9 files changed, 4336 insertions(+), 2 deletions(-) create mode 100644 docs/design/latency-ladder-harness/failed-case.json create mode 100644 docs/design/latency-ladder-harness/failed-case.log create mode 100644 docs/design/latency-ladder-harness/no-step.json create mode 100644 docs/design/latency-ladder-harness/no-step.log create mode 100644 docs/design/latency-ladder-harness/step.json create mode 100644 docs/design/latency-ladder-harness/step.log create mode 100644 docs/design/latency-ladder-harness/step2.json create mode 100644 docs/design/latency-ladder-harness/step2.log diff --git a/docs/design/latency-ladder-harness/failed-case.json b/docs/design/latency-ladder-harness/failed-case.json new file mode 100644 index 000000000..6bff7dfc4 --- /dev/null +++ b/docs/design/latency-ladder-harness/failed-case.json @@ -0,0 +1,1028 @@ +{ + "pass": false, + "expect": "step", + "signals": [ + "up", + "up", + "none" + ], + "checks": { + "zero_rejected_by_miners": true, + "zero_rejected_by_nodes": true, + "sinks_agree": true, + "block_counts_agree": true, + "miners_agree_on_every_program": true, + "ladder_line_on_every_node": true, + "every_node_signals_its_bits": true, + "every_epoch_class_v4": true, + "rung0_ids_equal_the_cli_rung0_id": true, + "chain_carries_the_bits": false, + "template_stepped_to_rung_1": false, + "stepped_at_the_first_full_window_epoch": false, + "step_line_on_every_node_same_epoch": false, + "weakest_up_at_or_above_threshold": false, + "no_second_step_inside_seven_windows": false, + "blocks_on_both_sides": false, + "rung1_ids_equal_the_cli_rung1_id": false, + "rung1_ids_differ_from_the_same_seed_rung0_id": false + }, + "window": 60, + "windows": 7, + "threshold_bps": 9000, + "epoch_blocks": 60, + "lead": 10, + "first_step_epoch": 8, + "node": "/srv/builds/igneum-wt-ladder/vendor/igneum-node-ladder/target/release/igneumd", + "miner": "/srv/builds/igneum-wt-ladder/vendor/igneum-node-ladder/target/release/igneum-miner", + "pow": "/srv/builds/igneum-wt-ladder/igneum-pow/target/release/igneum-pow", + "template_step": null, + "run_ended_at_s": 655.5, + "final_daa": 600, + "max_epoch_seen": 10, + "epochs": { + "0": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 0, + "at": 4.7, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 0, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "1": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 60, + "at": 90.8, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 7627, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "2": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 121, + "at": 155.9, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6166, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "3": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 181, + "at": 218.9, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6500, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "4": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 240, + "at": 278, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 7000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "5": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 300, + "at": 339.1, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 7833, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "6": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 360, + "at": 403.2, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6333, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "7": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 421, + "at": 465.2, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6333, + "up_weakest_bps": 6166, + "down_bps": 0, + "step_epoch": 0 + }, + "8": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 480, + "at": 530.3, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6500, + "up_weakest_bps": 6333, + "down_bps": 0, + "step_epoch": 0 + }, + "9": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 543, + "at": 594.4, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6666, + "up_weakest_bps": 6333, + "down_bps": 0, + "step_epoch": 0 + }, + "10": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 600, + "at": 655.5, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6166, + "up_weakest_bps": 6166, + "down_bps": 0, + "step_epoch": 0 + } + }, + "blocks": { + "total": 604, + "before_boundary": 604, + "after_boundary": 0, + "ladder_bits": { + "none": 198, + "up": 406 + }, + "object_bytes": { + "0": 604 + }, + "up_share_bps_on_chain": 6722 + }, + "programs": [ + { + "epoch": 0, + "class": "v4", + "program_id": "26fc8f3decca98ed", + "seed": "234e082d653dc69d", + "miners": 3, + "disagree": false + }, + { + "epoch": 1, + "class": "v4", + "program_id": "4eca8ebd9601cb06", + "seed": "47cc74777f2067e9", + "miners": 3, + "disagree": false + }, + { + "epoch": 2, + "class": "v4", + "program_id": "d8692bc62ac8b7c1", + "seed": "885cd519d10a63af", + "miners": 3, + "disagree": false + }, + { + "epoch": 3, + "class": "v4", + "program_id": "379b63489b302ff1", + "seed": "422f6e379baea2d0", + "miners": 3, + "disagree": false + }, + { + "epoch": 4, + "class": "v4", + "program_id": "5297fd1c191bef91", + "seed": "9a339c3a0da7a629", + "miners": 3, + "disagree": false + }, + { + "epoch": 5, + "class": "v4", + "program_id": "188721c15b83df97", + "seed": "630d437238ecfbd0", + "miners": 3, + "disagree": false + }, + { + "epoch": 6, + "class": "v4", + "program_id": "962b4d74afdf7f3a", + "seed": "46d593aedc1dfd37", + "miners": 3, + "disagree": false + }, + { + "epoch": 7, + "class": "v4", + "program_id": "3fc4c1e7704bb8a5", + "seed": "842561a101da3cc8", + "miners": 3, + "disagree": false + }, + { + "epoch": 8, + "class": "v4", + "program_id": "0fa5001f8bc6ffc0", + "seed": "c0cb56ba970dd961", + "miners": 3, + "disagree": false + }, + { + "epoch": 9, + "class": "v4", + "program_id": "b0a067d5bf44497e", + "seed": "3a647e8feb58ab1b", + "miners": 3, + "disagree": false + }, + { + "epoch": 10, + "class": "v4", + "program_id": "84e6cfe07a3316f4", + "seed": "5d7277e6f83f9e4d", + "miners": 3, + "disagree": false + } + ], + "program_id_rows": [ + { + "epoch": 0, + "seed": "234e082d653dc69d", + "reps": 27, + "miners_id": "26fc8f3decca98ed", + "miners": 3, + "cli_rung0": "26fc8f3decca98ed", + "cli_at_reps": "26fc8f3decca98ed" + }, + { + "epoch": 1, + "seed": "47cc74777f2067e9", + "reps": 27, + "miners_id": "4eca8ebd9601cb06", + "miners": 3, + "cli_rung0": "4eca8ebd9601cb06", + "cli_at_reps": "4eca8ebd9601cb06" + }, + { + "epoch": 2, + "seed": "885cd519d10a63af", + "reps": 27, + "miners_id": "d8692bc62ac8b7c1", + "miners": 3, + "cli_rung0": "d8692bc62ac8b7c1", + "cli_at_reps": "d8692bc62ac8b7c1" + }, + { + "epoch": 3, + "seed": "422f6e379baea2d0", + "reps": 27, + "miners_id": "379b63489b302ff1", + "miners": 3, + "cli_rung0": "379b63489b302ff1", + "cli_at_reps": "379b63489b302ff1" + }, + { + "epoch": 4, + "seed": "9a339c3a0da7a629", + "reps": 27, + "miners_id": "5297fd1c191bef91", + "miners": 3, + "cli_rung0": "5297fd1c191bef91", + "cli_at_reps": "5297fd1c191bef91" + }, + { + "epoch": 5, + "seed": "630d437238ecfbd0", + "reps": 27, + "miners_id": "188721c15b83df97", + "miners": 3, + "cli_rung0": "188721c15b83df97", + "cli_at_reps": "188721c15b83df97" + }, + { + "epoch": 6, + "seed": "46d593aedc1dfd37", + "reps": 27, + "miners_id": "962b4d74afdf7f3a", + "miners": 3, + "cli_rung0": "962b4d74afdf7f3a", + "cli_at_reps": "962b4d74afdf7f3a" + }, + { + "epoch": 7, + "seed": "842561a101da3cc8", + "reps": 27, + "miners_id": "3fc4c1e7704bb8a5", + "miners": 3, + "cli_rung0": "3fc4c1e7704bb8a5", + "cli_at_reps": "3fc4c1e7704bb8a5" + }, + { + "epoch": 8, + "seed": "c0cb56ba970dd961", + "reps": 27, + "miners_id": "0fa5001f8bc6ffc0", + "miners": 3, + "cli_rung0": "0fa5001f8bc6ffc0", + "cli_at_reps": "0fa5001f8bc6ffc0" + }, + { + "epoch": 9, + "seed": "3a647e8feb58ab1b", + "reps": 27, + "miners_id": "b0a067d5bf44497e", + "miners": 3, + "cli_rung0": "b0a067d5bf44497e", + "cli_at_reps": "b0a067d5bf44497e" + }, + { + "epoch": 10, + "seed": "5d7277e6f83f9e4d", + "reps": 27, + "miners_id": "84e6cfe07a3316f4", + "miners": 3, + "cli_rung0": "84e6cfe07a3316f4", + "cli_at_reps": "84e6cfe07a3316f4" + } + ], + "accepted_per_miner": [ + 193, + 213, + 197 + ], + "rejected_by_miners": [ + 0, + 0, + 0 + ], + "rejected_by_nodes": [ + 0, + 0, + 0 + ], + "sinks": [ + "783087038f7096b1", + "783087038f7096b1", + "783087038f7096b1" + ], + "block_counts": [ + 603, + 603, + 603 + ], + "step_lines": [ + [], + [], + [] + ], + "samples": [ + { + "t": 4.7, + "daa": 0, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "0/234e082d", + "0/234e082d", + "0/234e082d" + ] + }, + { + "t": 19.7, + "daa": 5, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "5/40fa3a38", + "5/40fa3a38", + "5/40fa3a38" + ] + }, + { + "t": 34.7, + "daa": 10, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "10/6c4045c3", + "10/6c4045c3", + "10/6c4045c3" + ] + }, + { + "t": 49.8, + "daa": 18, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 8235, + "up_weakest_bps": 0, + "nodes": [ + "18/c1c333f0", + "18/c1c333f0", + "18/c1c333f0" + ] + }, + { + "t": 64.8, + "daa": 35, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 8529, + "up_weakest_bps": 0, + "nodes": [ + "35/7b225e5b", + "35/7b225e5b", + "35/7b225e5b" + ] + }, + { + "t": 79.8, + "daa": 50, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 7755, + "up_weakest_bps": 0, + "nodes": [ + "50/47cc7477", + "50/47cc7477", + "50/47cc7477" + ] + }, + { + "t": 94.8, + "daa": 66, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 7333, + "up_weakest_bps": 0, + "nodes": [ + "66/3e771191", + "66/3e771191", + "66/3e771191" + ] + }, + { + "t": 109.8, + "daa": 83, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 0, + "nodes": [ + "83/6c5cdee4", + "83/6c5cdee4", + "83/6c5cdee4" + ] + }, + { + "t": 124.8, + "daa": 95, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 6500, + "up_weakest_bps": 0, + "nodes": [ + "95/7764cba7", + "95/7764cba7", + "95/7764cba7" + ] + }, + { + "t": 139.9, + "daa": 107, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 6500, + "up_weakest_bps": 0, + "nodes": [ + "107/2cb36d19", + "107/2cb36d19", + "107/2cb36d19" + ] + }, + { + "t": 154.9, + "daa": 119, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 6166, + "up_weakest_bps": 0, + "nodes": [ + "119/352afb28", + "119/352afb28", + "119/352afb28" + ] + }, + { + "t": 169.9, + "daa": 136, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 0, + "nodes": [ + "136/e0952e01", + "136/e0952e01", + "136/e0952e01" + ] + }, + { + "t": 184.9, + "daa": 152, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 6166, + "up_weakest_bps": 0, + "nodes": [ + "152/ed8e34c7", + "152/ed8e34c7", + "152/ed8e34c7" + ] + }, + { + "t": 199.9, + "daa": 162, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 6500, + "up_weakest_bps": 0, + "nodes": [ + "162/6065aef4", + "162/6065aef4", + "162/6065aef4" + ] + }, + { + "t": 214.9, + "daa": 176, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 6333, + "up_weakest_bps": 0, + "nodes": [ + "176/317cae30", + "176/317cae30", + "176/317cae30" + ] + }, + { + "t": 230, + "daa": 189, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 0, + "nodes": [ + "189/21d90cfa", + "189/21d90cfa", + "189/21d90cfa" + ] + }, + { + "t": 245, + "daa": 202, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 6333, + "up_weakest_bps": 0, + "nodes": [ + "202/f1e7ec5c", + "202/f1e7ec5c", + "202/f1e7ec5c" + ] + }, + { + "t": 260, + "daa": 218, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 6333, + "up_weakest_bps": 0, + "nodes": [ + "218/e274c4f7", + "218/e274c4f7", + "218/e274c4f7" + ] + }, + { + "t": 275, + "daa": 235, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 0, + "nodes": [ + "235/8e665e8d", + "235/8e665e8d", + "235/8e665e8d" + ] + }, + { + "t": 290, + "daa": 254, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 7500, + "up_weakest_bps": 0, + "nodes": [ + "254/ce04cd38", + "254/ce04cd38", + "254/ce04cd38" + ] + }, + { + "t": 305, + "daa": 267, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 7500, + "up_weakest_bps": 0, + "nodes": [ + "267/bf108545", + "267/bf108545", + "267/bf108545" + ] + }, + { + "t": 320.1, + "daa": 283, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 7500, + "up_weakest_bps": 0, + "nodes": [ + "283/5a897c6f", + "283/5a897c6f", + "283/5a897c6f" + ] + }, + { + "t": 335.1, + "daa": 294, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 8000, + "up_weakest_bps": 0, + "nodes": [ + "294/2b000b87", + "294/2b000b87", + "294/2b000b87" + ] + }, + { + "t": 350.1, + "daa": 319, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 7333, + "up_weakest_bps": 0, + "nodes": [ + "319/ecef2a5f", + "319/ecef2a5f", + "319/ecef2a5f" + ] + }, + { + "t": 365.1, + "daa": 335, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 7166, + "up_weakest_bps": 0, + "nodes": [ + "335/a8fbe817", + "335/a8fbe817", + "335/a8fbe817" + ] + }, + { + "t": 380.1, + "daa": 343, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 7333, + "up_weakest_bps": 0, + "nodes": [ + "343/b1967aab", + "343/b1967aab", + "343/b1967aab" + ] + }, + { + "t": 395.1, + "daa": 354, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 0, + "nodes": [ + "354/2a4ccf8a", + "354/2a4ccf8a", + "354/2a4ccf8a" + ] + }, + { + "t": 410.2, + "daa": 366, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 6166, + "up_weakest_bps": 6166, + "nodes": [ + "366/a16b8185", + "366/a16b8185", + "366/a16b8185" + ] + }, + { + "t": 425.2, + "daa": 377, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 6000, + "up_weakest_bps": 6000, + "nodes": [ + "377/50316214", + "377/50316214", + "377/50316214" + ] + }, + { + "t": 440.2, + "daa": 395, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 6166, + "nodes": [ + "395/5be9e979", + "395/5be9e979", + "395/5be9e979" + ] + }, + { + "t": 455.2, + "daa": 404, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 6000, + "up_weakest_bps": 6000, + "nodes": [ + "404/3a965599", + "404/3a965599", + "404/3a965599" + ] + }, + { + "t": 470.2, + "daa": 424, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 6333, + "up_weakest_bps": 6065, + "nodes": [ + "424/097eaa14", + "424/097eaa14", + "424/097eaa14" + ] + }, + { + "t": 485.3, + "daa": 439, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 6166, + "up_weakest_bps": 6000, + "nodes": [ + "439/7d27db8c", + "439/7d27db8c", + "439/7d27db8c" + ] + }, + { + "t": 500.3, + "daa": 456, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 5833, + "up_weakest_bps": 5833, + "nodes": [ + "456/f4675851", + "456/f4675851", + "456/f4675851" + ] + }, + { + "t": 515.3, + "daa": 467, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 6333, + "up_weakest_bps": 6333, + "nodes": [ + "467/a7575707", + "467/a7575707", + "467/a7575707" + ] + }, + { + "t": 530.3, + "daa": 480, + "epoch": 8, + "step": 0, + "reps": 27, + "up_bps": 6500, + "up_weakest_bps": 6333, + "nodes": [ + "480/f8f68e4b", + "480/f8f68e4b", + "480/f8f68e4b" + ] + }, + { + "t": 545.4, + "daa": 499, + "epoch": 8, + "step": 0, + "reps": 27, + "up_bps": 7000, + "up_weakest_bps": 6000, + "nodes": [ + "499/dba81f65", + "499/dba81f65", + "499/dba81f65" + ] + }, + { + "t": 560.4, + "daa": 508, + "epoch": 8, + "step": 0, + "reps": 27, + "up_bps": 7000, + "up_weakest_bps": 5833, + "nodes": [ + "508/e6208807", + "508/e6208807", + "508/e6208807" + ] + }, + { + "t": 575.4, + "daa": 521, + "epoch": 8, + "step": 0, + "reps": 27, + "up_bps": 6833, + "up_weakest_bps": 6166, + "nodes": [ + "521/faf3f2b3", + "521/faf3f2b3", + "521/faf3f2b3" + ] + }, + { + "t": 590.4, + "daa": 537, + "epoch": 8, + "step": 0, + "reps": 27, + "up_bps": 7166, + "up_weakest_bps": 6166, + "nodes": [ + "537/0cec2d26", + "537/0cec2d26", + "537/0cec2d26" + ] + }, + { + "t": 605.4, + "daa": 546, + "epoch": 9, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 6166, + "nodes": [ + "546/75a259c6", + "546/75a259c6", + "546/75a259c6" + ] + }, + { + "t": 620.5, + "daa": 573, + "epoch": 9, + "step": 0, + "reps": 27, + "up_bps": 6166, + "up_weakest_bps": 6000, + "nodes": [ + "573/31d72980", + "573/31d72980", + "573/31d72980" + ] + }, + { + "t": 635.5, + "daa": 581, + "epoch": 9, + "step": 0, + "reps": 27, + "up_bps": 6333, + "up_weakest_bps": 6166, + "nodes": [ + "581/3cfe5b93", + "581/3cfe5b93", + "581/3cfe5b93" + ] + }, + { + "t": 650.5, + "daa": 595, + "epoch": 9, + "step": 0, + "reps": 27, + "up_bps": 6333, + "up_weakest_bps": 6333, + "nodes": [ + "595/84601051", + "595/84601051", + "595/84601051" + ] + } + ] +} \ No newline at end of file diff --git a/docs/design/latency-ladder-harness/failed-case.log b/docs/design/latency-ladder-harness/failed-case.log new file mode 100644 index 000000000..32dc4e79b --- /dev/null +++ b/docs/design/latency-ladder-harness/failed-case.log @@ -0,0 +1,86 @@ +22:15:30.265 signals up/up/none, expect step; class v4 from genesis, the ladder active from DAA 0, window 60 DAA x 7 (the first epoch that can step is 8, DAA 480); 60 DAA per epoch, lead 10; run 900 s or 10 epochs +22:15:31.502 n0 up pid 1524201 json 29722 p2p 29721, signals up +22:15:32.712 n1 up pid 1524767 json 29732 p2p 29731, signals up +22:15:33.921 n2 up pid 1525234 json 29742 p2p 29741, signals none +22:15:33.922 n0: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:15:33.922 n1: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:15:33.923 n2: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals none +22:15:33.923 n0 digest: b1f606bede788b70 +22:15:34.935 epoch -1 -> 0 at daa 0, 4.7 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 0 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:15:34.936 t=4.7 s daa 0 epoch 0 rung 0 (27) up 0 bps weakest 0 blocks/sink per node 0/234e082d 0/234e082d 0/234e082d +22:15:49.976 t=19.7 s daa 5 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 5/40fa3a38 5/40fa3a38 5/40fa3a38 +22:16:04.996 t=34.7 s daa 10 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 10/6c4045c3 10/6c4045c3 10/6c4045c3 +22:16:20.016 t=49.8 s daa 18 epoch 0 rung 0 (27) up 8235 bps weakest 0 blocks/sink per node 18/c1c333f0 18/c1c333f0 18/c1c333f0 +22:16:35.038 t=64.8 s daa 35 epoch 0 rung 0 (27) up 8529 bps weakest 0 blocks/sink per node 35/7b225e5b 35/7b225e5b 35/7b225e5b +22:16:50.055 t=79.8 s daa 50 epoch 0 rung 0 (27) up 7755 bps weakest 0 blocks/sink per node 50/47cc7477 50/47cc7477 50/47cc7477 +22:17:01.070 epoch 0 -> 1 at daa 60, 90.8 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 7627 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:17:05.076 t=94.8 s daa 66 epoch 1 rung 0 (27) up 7333 bps weakest 0 blocks/sink per node 66/3e771191 66/3e771191 66/3e771191 +22:17:20.093 t=109.8 s daa 83 epoch 1 rung 0 (27) up 6666 bps weakest 0 blocks/sink per node 83/6c5cdee4 83/6c5cdee4 83/6c5cdee4 +22:17:35.109 t=124.8 s daa 95 epoch 1 rung 0 (27) up 6500 bps weakest 0 blocks/sink per node 95/7764cba7 95/7764cba7 95/7764cba7 +22:17:50.123 t=139.9 s daa 107 epoch 1 rung 0 (27) up 6500 bps weakest 0 blocks/sink per node 107/2cb36d19 107/2cb36d19 107/2cb36d19 +22:18:05.138 t=154.9 s daa 119 epoch 1 rung 0 (27) up 6166 bps weakest 0 blocks/sink per node 119/352afb28 119/352afb28 119/352afb28 +22:18:06.139 epoch 1 -> 2 at daa 121, 155.9 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6166 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:18:20.155 t=169.9 s daa 136 epoch 2 rung 0 (27) up 6666 bps weakest 0 blocks/sink per node 136/e0952e01 136/e0952e01 136/e0952e01 +22:18:35.174 t=184.9 s daa 152 epoch 2 rung 0 (27) up 6166 bps weakest 0 blocks/sink per node 152/ed8e34c7 152/ed8e34c7 152/ed8e34c7 +22:18:50.193 t=199.9 s daa 162 epoch 2 rung 0 (27) up 6500 bps weakest 0 blocks/sink per node 162/6065aef4 162/6065aef4 162/6065aef4 +22:19:05.211 t=214.9 s daa 176 epoch 2 rung 0 (27) up 6333 bps weakest 0 blocks/sink per node 176/317cae30 176/317cae30 176/317cae30 +22:19:09.216 epoch 2 -> 3 at daa 181, 218.9 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6500 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:19:20.231 t=230.0 s daa 189 epoch 3 rung 0 (27) up 6666 bps weakest 0 blocks/sink per node 189/21d90cfa 189/21d90cfa 189/21d90cfa +22:19:35.249 t=245.0 s daa 202 epoch 3 rung 0 (27) up 6333 bps weakest 0 blocks/sink per node 202/f1e7ec5c 202/f1e7ec5c 202/f1e7ec5c +22:19:50.265 t=260.0 s daa 218 epoch 3 rung 0 (27) up 6333 bps weakest 0 blocks/sink per node 218/e274c4f7 218/e274c4f7 218/e274c4f7 +22:20:05.285 t=275.0 s daa 235 epoch 3 rung 0 (27) up 6666 bps weakest 0 blocks/sink per node 235/8e665e8d 235/8e665e8d 235/8e665e8d +22:20:08.289 epoch 3 -> 4 at daa 240, 278.0 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 7000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:20:20.303 t=290.0 s daa 254 epoch 4 rung 0 (27) up 7500 bps weakest 0 blocks/sink per node 254/ce04cd38 254/ce04cd38 254/ce04cd38 +22:20:35.315 t=305.0 s daa 267 epoch 4 rung 0 (27) up 7500 bps weakest 0 blocks/sink per node 267/bf108545 267/bf108545 267/bf108545 +22:20:50.328 t=320.1 s daa 283 epoch 4 rung 0 (27) up 7500 bps weakest 0 blocks/sink per node 283/5a897c6f 283/5a897c6f 283/5a897c6f +22:21:05.344 t=335.1 s daa 294 epoch 4 rung 0 (27) up 8000 bps weakest 0 blocks/sink per node 294/2b000b87 294/2b000b87 294/2b000b87 +22:21:09.348 epoch 4 -> 5 at daa 300, 339.1 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 7833 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:21:20.359 t=350.1 s daa 319 epoch 5 rung 0 (27) up 7333 bps weakest 0 blocks/sink per node 319/ecef2a5f 319/ecef2a5f 319/ecef2a5f +22:21:35.378 t=365.1 s daa 335 epoch 5 rung 0 (27) up 7166 bps weakest 0 blocks/sink per node 335/a8fbe817 335/a8fbe817 335/a8fbe817 +22:21:50.399 t=380.1 s daa 343 epoch 5 rung 0 (27) up 7333 bps weakest 0 blocks/sink per node 343/b1967aab 343/b1967aab 343/b1967aab +22:22:05.416 t=395.1 s daa 354 epoch 5 rung 0 (27) up 6666 bps weakest 0 blocks/sink per node 354/2a4ccf8a 354/2a4ccf8a 354/2a4ccf8a +22:22:13.424 epoch 5 -> 6 at daa 360, 403.2 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6333 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:22:20.432 t=410.2 s daa 366 epoch 6 rung 0 (27) up 6166 bps weakest 6166 blocks/sink per node 366/a16b8185 366/a16b8185 366/a16b8185 +22:22:35.449 t=425.2 s daa 377 epoch 6 rung 0 (27) up 6000 bps weakest 6000 blocks/sink per node 377/50316214 377/50316214 377/50316214 +22:22:50.468 t=440.2 s daa 395 epoch 6 rung 0 (27) up 6666 bps weakest 6166 blocks/sink per node 395/5be9e979 395/5be9e979 395/5be9e979 +22:23:05.487 t=455.2 s daa 404 epoch 6 rung 0 (27) up 6000 bps weakest 6000 blocks/sink per node 404/3a965599 404/3a965599 404/3a965599 +22:23:15.500 epoch 6 -> 7 at daa 421, 465.2 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6333 bps (weakest of 7: 6166), down 0 bps, this node signals 1, step took effect at epoch 0 +22:23:20.507 t=470.2 s daa 424 epoch 7 rung 0 (27) up 6333 bps weakest 6065 blocks/sink per node 424/097eaa14 424/097eaa14 424/097eaa14 +22:23:35.529 t=485.3 s daa 439 epoch 7 rung 0 (27) up 6166 bps weakest 6000 blocks/sink per node 439/7d27db8c 439/7d27db8c 439/7d27db8c +22:23:50.550 t=500.3 s daa 456 epoch 7 rung 0 (27) up 5833 bps weakest 5833 blocks/sink per node 456/f4675851 456/f4675851 456/f4675851 +22:24:05.570 t=515.3 s daa 467 epoch 7 rung 0 (27) up 6333 bps weakest 6333 blocks/sink per node 467/a7575707 467/a7575707 467/a7575707 +22:24:20.593 epoch 7 -> 8 at daa 480, 530.3 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6500 bps (weakest of 7: 6333), down 0 bps, this node signals 1, step took effect at epoch 0 +22:24:20.593 t=530.3 s daa 480 epoch 8 rung 0 (27) up 6500 bps weakest 6333 blocks/sink per node 480/f8f68e4b 480/f8f68e4b 480/f8f68e4b +22:24:35.616 t=545.4 s daa 499 epoch 8 rung 0 (27) up 7000 bps weakest 6000 blocks/sink per node 499/dba81f65 499/dba81f65 499/dba81f65 +22:24:50.638 t=560.4 s daa 508 epoch 8 rung 0 (27) up 7000 bps weakest 5833 blocks/sink per node 508/e6208807 508/e6208807 508/e6208807 +22:25:05.661 t=575.4 s daa 521 epoch 8 rung 0 (27) up 6833 bps weakest 6166 blocks/sink per node 521/faf3f2b3 521/faf3f2b3 521/faf3f2b3 +22:25:20.684 t=590.4 s daa 537 epoch 8 rung 0 (27) up 7166 bps weakest 6166 blocks/sink per node 537/0cec2d26 537/0cec2d26 537/0cec2d26 +22:25:24.690 epoch 8 -> 9 at daa 543, 594.4 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6666 bps (weakest of 7: 6333), down 0 bps, this node signals 1, step took effect at epoch 0 +22:25:35.706 t=605.4 s daa 546 epoch 9 rung 0 (27) up 6666 bps weakest 6166 blocks/sink per node 546/75a259c6 546/75a259c6 546/75a259c6 +22:25:50.729 t=620.5 s daa 573 epoch 9 rung 0 (27) up 6166 bps weakest 6000 blocks/sink per node 573/31d72980 573/31d72980 573/31d72980 +22:26:05.750 t=635.5 s daa 581 epoch 9 rung 0 (27) up 6333 bps weakest 6166 blocks/sink per node 581/3cfe5b93 581/3cfe5b93 581/3cfe5b93 +22:26:20.771 t=650.5 s daa 595 epoch 9 rung 0 (27) up 6333 bps weakest 6333 blocks/sink per node 595/84601051 595/84601051 595/84601051 +22:26:25.777 epoch 9 -> 10 at daa 600, 655.5 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6166 bps (weakest of 7: 6166), down 0 bps, this node signals 1, step took effect at epoch 0 +22:26:29.069 SUMMARY FAIL (expect step, signals up/up/none): no step; epochs seen e0:r0:0bps e1:r0:0bps e2:r0:0bps e3:r0:0bps e4:r0:0bps e5:r0:0bps e6:r0:0bps e7:r0:6166bps e8:r0:6333bps e9:r0:6333bps e10:r0:6166bps; chain bits {"none":198,"up":406} (6722 bps up); blocks 604 / 0; rejected miners 0/0/0 nodes 0/0/0; sinks 783087038f7096b1 783087038f7096b1 783087038f7096b1 at 603/603/603 +22:26:29.069 PROGRAM ID epoch 0 seed 234e082d653dc69d reps 27: miners 26fc8f3decca98ed (3 of 3) cli at reps 26fc8f3decca98ed cli rung 0 26fc8f3decca98ed +22:26:29.069 PROGRAM ID epoch 1 seed 47cc74777f2067e9 reps 27: miners 4eca8ebd9601cb06 (3 of 3) cli at reps 4eca8ebd9601cb06 cli rung 0 4eca8ebd9601cb06 +22:26:29.069 PROGRAM ID epoch 2 seed 885cd519d10a63af reps 27: miners d8692bc62ac8b7c1 (3 of 3) cli at reps d8692bc62ac8b7c1 cli rung 0 d8692bc62ac8b7c1 +22:26:29.069 PROGRAM ID epoch 3 seed 422f6e379baea2d0 reps 27: miners 379b63489b302ff1 (3 of 3) cli at reps 379b63489b302ff1 cli rung 0 379b63489b302ff1 +22:26:29.069 PROGRAM ID epoch 4 seed 9a339c3a0da7a629 reps 27: miners 5297fd1c191bef91 (3 of 3) cli at reps 5297fd1c191bef91 cli rung 0 5297fd1c191bef91 +22:26:29.069 PROGRAM ID epoch 5 seed 630d437238ecfbd0 reps 27: miners 188721c15b83df97 (3 of 3) cli at reps 188721c15b83df97 cli rung 0 188721c15b83df97 +22:26:29.069 PROGRAM ID epoch 6 seed 46d593aedc1dfd37 reps 27: miners 962b4d74afdf7f3a (3 of 3) cli at reps 962b4d74afdf7f3a cli rung 0 962b4d74afdf7f3a +22:26:29.069 PROGRAM ID epoch 7 seed 842561a101da3cc8 reps 27: miners 3fc4c1e7704bb8a5 (3 of 3) cli at reps 3fc4c1e7704bb8a5 cli rung 0 3fc4c1e7704bb8a5 +22:26:29.069 PROGRAM ID epoch 8 seed c0cb56ba970dd961 reps 27: miners 0fa5001f8bc6ffc0 (3 of 3) cli at reps 0fa5001f8bc6ffc0 cli rung 0 0fa5001f8bc6ffc0 +22:26:29.069 PROGRAM ID epoch 9 seed 3a647e8feb58ab1b reps 27: miners b0a067d5bf44497e (3 of 3) cli at reps b0a067d5bf44497e cli rung 0 b0a067d5bf44497e +22:26:29.069 PROGRAM ID epoch 10 seed 5d7277e6f83f9e4d reps 27: miners 84e6cfe07a3316f4 (3 of 3) cli at reps 84e6cfe07a3316f4 cli rung 0 84e6cfe07a3316f4 +22:26:29.069 FAILED CHECK chain_carries_the_bits +22:26:29.069 FAILED CHECK template_stepped_to_rung_1 +22:26:29.069 FAILED CHECK stepped_at_the_first_full_window_epoch +22:26:29.069 FAILED CHECK step_line_on_every_node_same_epoch +22:26:29.069 FAILED CHECK weakest_up_at_or_above_threshold +22:26:29.069 FAILED CHECK no_second_step_inside_seven_windows +22:26:29.069 FAILED CHECK blocks_on_both_sides +22:26:29.069 FAILED CHECK rung1_ids_equal_the_cli_rung1_id +22:26:29.069 FAILED CHECK rung1_ids_differ_from_the_same_seed_rung0_id +22:26:29.069 summary: /tmp/igneum-fast-time-ladder-failed-case/summary.json +CASE failed-case rc=1 diff --git a/docs/design/latency-ladder-harness/no-step.json b/docs/design/latency-ladder-harness/no-step.json new file mode 100644 index 000000000..b4f22c5ed --- /dev/null +++ b/docs/design/latency-ladder-harness/no-step.json @@ -0,0 +1,969 @@ +{ + "pass": true, + "expect": "no-step", + "signals": [ + "up", + "up", + "none" + ], + "checks": { + "zero_rejected_by_miners": true, + "zero_rejected_by_nodes": true, + "sinks_agree": true, + "block_counts_agree": true, + "miners_agree_on_every_program": true, + "ladder_line_on_every_node": true, + "every_node_signals_its_bits": true, + "every_epoch_class_v4": true, + "rung0_ids_equal_the_cli_rung0_id": true, + "chain_carries_the_bits": true, + "template_never_above_rung_0": true, + "no_step_line_on_any_node": true, + "ran_the_epochs": true, + "passed_the_first_full_window_epoch": true, + "up_share_under_threshold_on_chain": true + }, + "window": 60, + "windows": 7, + "threshold_bps": 9000, + "epoch_blocks": 60, + "lead": 10, + "first_step_epoch": 8, + "node": "/srv/builds/igneum-wt-ladder/vendor/igneum-node-ladder/target/release/igneumd", + "miner": "/srv/builds/igneum-wt-ladder/vendor/igneum-node-ladder/target/release/igneum-miner", + "pow": "/srv/builds/igneum-wt-ladder/igneum-pow/target/release/igneum-pow", + "template_step": null, + "run_ended_at_s": 592.5, + "final_daa": 600, + "max_epoch_seen": 10, + "epochs": { + "0": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 0, + "at": 4.7, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 0, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "1": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 62, + "at": 96.8, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 7000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "2": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 120, + "at": 156.9, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 7166, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "3": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 180, + "at": 213.9, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 7166, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "4": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 240, + "at": 273, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6833, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "5": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 300, + "at": 322.1, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6666, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "6": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 360, + "at": 378.2, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6333, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "7": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 420, + "at": 436.2, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 5833, + "up_weakest_bps": 5833, + "down_bps": 0, + "step_epoch": 0 + }, + "8": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 480, + "at": 490.3, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6166, + "up_weakest_bps": 5833, + "down_bps": 0, + "step_epoch": 0 + }, + "9": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 540, + "at": 541.4, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6666, + "up_weakest_bps": 5833, + "down_bps": 0, + "step_epoch": 0 + }, + "10": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 600, + "at": 592.5, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 6833, + "up_weakest_bps": 5833, + "down_bps": 0, + "step_epoch": 0 + } + }, + "blocks": { + "total": 602, + "before_boundary": 602, + "after_boundary": 0, + "ladder_bits": { + "none": 200, + "up": 402 + }, + "object_bytes": { + "0": 602 + }, + "up_share_bps_on_chain": 6678 + }, + "programs": [ + { + "epoch": 0, + "class": "v4", + "program_id": "26fc8f3decca98ed", + "seed": "234e082d653dc69d", + "miners": 3, + "disagree": false + }, + { + "epoch": 1, + "class": "v4", + "program_id": "e0910c8d87135035", + "seed": "894676c6f3ebb385", + "miners": 3, + "disagree": false + }, + { + "epoch": 2, + "class": "v4", + "program_id": "2eb05375a9d9077d", + "seed": "405d6592622d1af9", + "miners": 3, + "disagree": false + }, + { + "epoch": 3, + "class": "v4", + "program_id": "0acdab9caca48471", + "seed": "9598288f0a520b69", + "miners": 3, + "disagree": false + }, + { + "epoch": 4, + "class": "v4", + "program_id": "1df476827c33e263", + "seed": "9b6e5a23005f0998", + "miners": 3, + "disagree": false + }, + { + "epoch": 5, + "class": "v4", + "program_id": "20003329ca5050d9", + "seed": "a0a54f6a687f94f4", + "miners": 3, + "disagree": false + }, + { + "epoch": 6, + "class": "v4", + "program_id": "2e5cee148e6b82b1", + "seed": "1b20ae99061e034f", + "miners": 3, + "disagree": false + }, + { + "epoch": 7, + "class": "v4", + "program_id": "d9babb74721f6cd0", + "seed": "5545b276021f1ad9", + "miners": 3, + "disagree": false + }, + { + "epoch": 8, + "class": "v4", + "program_id": "94b5809680b13285", + "seed": "f959d016b2d47167", + "miners": 3, + "disagree": false + }, + { + "epoch": 9, + "class": "v4", + "program_id": "e1cae64a2a12de45", + "seed": "24b28bef5cba00a9", + "miners": 3, + "disagree": false + }, + { + "epoch": 10, + "class": "v4", + "program_id": "c7ce4aa0e96ba6b9", + "seed": "ccfc16e9107ae720", + "miners": 3, + "disagree": false + } + ], + "program_id_rows": [ + { + "epoch": 0, + "seed": "234e082d653dc69d", + "reps": 27, + "miners_id": "26fc8f3decca98ed", + "miners": 3, + "cli_rung0": "26fc8f3decca98ed", + "cli_at_reps": "26fc8f3decca98ed" + }, + { + "epoch": 1, + "seed": "894676c6f3ebb385", + "reps": 27, + "miners_id": "e0910c8d87135035", + "miners": 3, + "cli_rung0": "e0910c8d87135035", + "cli_at_reps": "e0910c8d87135035" + }, + { + "epoch": 2, + "seed": "405d6592622d1af9", + "reps": 27, + "miners_id": "2eb05375a9d9077d", + "miners": 3, + "cli_rung0": "2eb05375a9d9077d", + "cli_at_reps": "2eb05375a9d9077d" + }, + { + "epoch": 3, + "seed": "9598288f0a520b69", + "reps": 27, + "miners_id": "0acdab9caca48471", + "miners": 3, + "cli_rung0": "0acdab9caca48471", + "cli_at_reps": "0acdab9caca48471" + }, + { + "epoch": 4, + "seed": "9b6e5a23005f0998", + "reps": 27, + "miners_id": "1df476827c33e263", + "miners": 3, + "cli_rung0": "1df476827c33e263", + "cli_at_reps": "1df476827c33e263" + }, + { + "epoch": 5, + "seed": "a0a54f6a687f94f4", + "reps": 27, + "miners_id": "20003329ca5050d9", + "miners": 3, + "cli_rung0": "20003329ca5050d9", + "cli_at_reps": "20003329ca5050d9" + }, + { + "epoch": 6, + "seed": "1b20ae99061e034f", + "reps": 27, + "miners_id": "2e5cee148e6b82b1", + "miners": 3, + "cli_rung0": "2e5cee148e6b82b1", + "cli_at_reps": "2e5cee148e6b82b1" + }, + { + "epoch": 7, + "seed": "5545b276021f1ad9", + "reps": 27, + "miners_id": "d9babb74721f6cd0", + "miners": 3, + "cli_rung0": "d9babb74721f6cd0", + "cli_at_reps": "d9babb74721f6cd0" + }, + { + "epoch": 8, + "seed": "f959d016b2d47167", + "reps": 27, + "miners_id": "94b5809680b13285", + "miners": 3, + "cli_rung0": "94b5809680b13285", + "cli_at_reps": "94b5809680b13285" + }, + { + "epoch": 9, + "seed": "24b28bef5cba00a9", + "reps": 27, + "miners_id": "e1cae64a2a12de45", + "miners": 3, + "cli_rung0": "e1cae64a2a12de45", + "cli_at_reps": "e1cae64a2a12de45" + }, + { + "epoch": 10, + "seed": "ccfc16e9107ae720", + "reps": 27, + "miners_id": "c7ce4aa0e96ba6b9", + "miners": 3, + "cli_rung0": "c7ce4aa0e96ba6b9", + "cli_at_reps": "c7ce4aa0e96ba6b9" + } + ], + "accepted_per_miner": [ + 202, + 200, + 199 + ], + "rejected_by_miners": [ + 0, + 0, + 0 + ], + "rejected_by_nodes": [ + 0, + 0, + 0 + ], + "sinks": [ + "bfc435d62d7c659c", + "bfc435d62d7c659c", + "bfc435d62d7c659c" + ], + "block_counts": [ + 601, + 601, + 601 + ], + "step_lines": [ + [], + [], + [] + ], + "samples": [ + { + "t": 4.7, + "daa": 0, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "0/234e082d", + "0/234e082d", + "0/234e082d" + ] + }, + { + "t": 19.7, + "daa": 1, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "1/350fed25", + "1/350fed25", + "1/350fed25" + ] + }, + { + "t": 34.7, + "daa": 7, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 0, + "nodes": [ + "7/33ca6cd0", + "7/33ca6cd0", + "7/33ca6cd0" + ] + }, + { + "t": 49.8, + "daa": 12, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 6363, + "up_weakest_bps": 0, + "nodes": [ + "12/70a47fc6", + "12/70a47fc6", + "12/70a47fc6" + ] + }, + { + "t": 64.8, + "daa": 28, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 6296, + "up_weakest_bps": 0, + "nodes": [ + "28/1c7719a6", + "28/1c7719a6", + "28/1c7719a6" + ] + }, + { + "t": 79.8, + "daa": 36, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 6571, + "up_weakest_bps": 0, + "nodes": [ + "36/72330841", + "36/72330841", + "36/72330841" + ] + }, + { + "t": 94.8, + "daa": 59, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 7068, + "up_weakest_bps": 0, + "nodes": [ + "59/cf02d592", + "59/cf02d592", + "59/cf02d592" + ] + }, + { + "t": 109.8, + "daa": 74, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 6833, + "up_weakest_bps": 0, + "nodes": [ + "74/c65d7a59", + "74/c65d7a59", + "74/c65d7a59" + ] + }, + { + "t": 124.8, + "daa": 85, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 7333, + "up_weakest_bps": 0, + "nodes": [ + "85/e53510f4", + "85/e53510f4", + "85/e53510f4" + ] + }, + { + "t": 139.9, + "daa": 105, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 7166, + "up_weakest_bps": 0, + "nodes": [ + "105/37769ced", + "105/37769ced", + "105/37769ced" + ] + }, + { + "t": 154.9, + "daa": 119, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 7166, + "up_weakest_bps": 0, + "nodes": [ + "119/aa8e5664", + "119/aa8e5664", + "119/aa8e5664" + ] + }, + { + "t": 169.9, + "daa": 131, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 7500, + "up_weakest_bps": 0, + "nodes": [ + "131/bf6ed8b2", + "131/bf6ed8b2", + "131/bf6ed8b2" + ] + }, + { + "t": 184.9, + "daa": 150, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 8166, + "up_weakest_bps": 0, + "nodes": [ + "150/6a31bf2e", + "150/6a31bf2e", + "150/6a31bf2e" + ] + }, + { + "t": 199.9, + "daa": 165, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 7500, + "up_weakest_bps": 0, + "nodes": [ + "165/83f8d3f6", + "165/83f8d3f6", + "165/83f8d3f6" + ] + }, + { + "t": 215, + "daa": 181, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 7000, + "up_weakest_bps": 0, + "nodes": [ + "181/5be6a01e", + "181/5be6a01e", + "181/5be6a01e" + ] + }, + { + "t": 230, + "daa": 202, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 0, + "nodes": [ + "202/5663af4a", + "202/5663af4a", + "202/5663af4a" + ] + }, + { + "t": 245, + "daa": 216, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 5833, + "up_weakest_bps": 0, + "nodes": [ + "216/3d231639", + "216/3d231639", + "216/3d231639" + ] + }, + { + "t": 260, + "daa": 228, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 6500, + "up_weakest_bps": 0, + "nodes": [ + "228/88370ed6", + "228/88370ed6", + "228/88370ed6" + ] + }, + { + "t": 275, + "daa": 241, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 6833, + "up_weakest_bps": 0, + "nodes": [ + "241/a2dbefc3", + "241/a2dbefc3", + "241/a2dbefc3" + ] + }, + { + "t": 290, + "daa": 248, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 6500, + "up_weakest_bps": 0, + "nodes": [ + "248/0815d37e", + "248/0815d37e", + "248/0815d37e" + ] + }, + { + "t": 305.1, + "daa": 267, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 6833, + "up_weakest_bps": 0, + "nodes": [ + "267/09bb3297", + "267/09bb3297", + "267/09bb3297" + ] + }, + { + "t": 320.1, + "daa": 297, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 6833, + "up_weakest_bps": 0, + "nodes": [ + "297/af91ef29", + "297/af91ef29", + "297/af91ef29" + ] + }, + { + "t": 335.1, + "daa": 312, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 0, + "nodes": [ + "312/a015f07f", + "312/a015f07f", + "312/a015f07f" + ] + }, + { + "t": 350.1, + "daa": 330, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 6833, + "up_weakest_bps": 0, + "nodes": [ + "330/c9f57620", + "330/c9f57620", + "330/c9f57620" + ] + }, + { + "t": 365.1, + "daa": 345, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 6949, + "up_weakest_bps": 0, + "nodes": [ + "345/fe4111b9", + "345/fe4111b9", + "345/fe4111b9" + ] + }, + { + "t": 380.2, + "daa": 360, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 6333, + "up_weakest_bps": 0, + "nodes": [ + "360/2acb1c9a", + "360/2acb1c9a", + "360/2acb1c9a" + ] + }, + { + "t": 395.2, + "daa": 368, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 6779, + "up_weakest_bps": 5714, + "nodes": [ + "368/853bece4", + "368/853bece4", + "368/853bece4" + ] + }, + { + "t": 410.2, + "daa": 390, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 5666, + "up_weakest_bps": 5666, + "nodes": [ + "390/9101251e", + "389/6d70c5a8", + "390/9101251e" + ] + }, + { + "t": 425.2, + "daa": 404, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 5500, + "up_weakest_bps": 5500, + "nodes": [ + "404/89a08ca7", + "404/89a08ca7", + "404/89a08ca7" + ] + }, + { + "t": 440.2, + "daa": 421, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 6000, + "up_weakest_bps": 6000, + "nodes": [ + "421/a39e260b", + "421/a39e260b", + "421/a39e260b" + ] + }, + { + "t": 455.3, + "daa": 437, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 5666, + "up_weakest_bps": 5666, + "nodes": [ + "437/9782bb5e", + "437/9782bb5e", + "437/9782bb5e" + ] + }, + { + "t": 470.3, + "daa": 456, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 5932, + "up_weakest_bps": 5833, + "nodes": [ + "456/2a6dea3c", + "456/2a6dea3c", + "456/2a6dea3c" + ] + }, + { + "t": 485.3, + "daa": 473, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 6500, + "up_weakest_bps": 5500, + "nodes": [ + "473/ab842458", + "473/ab842458", + "473/ab842458" + ] + }, + { + "t": 500.3, + "daa": 488, + "epoch": 8, + "step": 0, + "reps": 27, + "up_bps": 6000, + "up_weakest_bps": 5666, + "nodes": [ + "488/a16f988f", + "488/a16f988f", + "488/a16f988f" + ] + }, + { + "t": 515.4, + "daa": 505, + "epoch": 8, + "step": 0, + "reps": 27, + "up_bps": 6333, + "up_weakest_bps": 5737, + "nodes": [ + "505/915b20b6", + "505/915b20b6", + "505/915b20b6" + ] + }, + { + "t": 530.4, + "daa": 527, + "epoch": 8, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 5333, + "nodes": [ + "527/7161dfa6", + "527/7161dfa6", + "527/7161dfa6" + ] + }, + { + "t": 545.4, + "daa": 541, + "epoch": 9, + "step": 0, + "reps": 27, + "up_bps": 6666, + "up_weakest_bps": 6000, + "nodes": [ + "541/5fcc65e3", + "541/5fcc65e3", + "541/5fcc65e3" + ] + }, + { + "t": 560.4, + "daa": 562, + "epoch": 9, + "step": 0, + "reps": 27, + "up_bps": 6833, + "up_weakest_bps": 5666, + "nodes": [ + "562/673f1e20", + "562/673f1e20", + "562/673f1e20" + ] + }, + { + "t": 575.4, + "daa": 577, + "epoch": 9, + "step": 0, + "reps": 27, + "up_bps": 7166, + "up_weakest_bps": 5833, + "nodes": [ + "577/67af1166", + "577/67af1166", + "577/67af1166" + ] + }, + { + "t": 590.5, + "daa": 596, + "epoch": 9, + "step": 0, + "reps": 27, + "up_bps": 7000, + "up_weakest_bps": 5666, + "nodes": [ + "596/2dd560ca", + "596/2dd560ca", + "596/2dd560ca" + ] + } + ] +} \ No newline at end of file diff --git a/docs/design/latency-ladder-harness/no-step.log b/docs/design/latency-ladder-harness/no-step.log new file mode 100644 index 000000000..6578df54a --- /dev/null +++ b/docs/design/latency-ladder-harness/no-step.log @@ -0,0 +1,73 @@ +22:37:08.927 signals up/up/none, expect no-step; class v4 from genesis, the ladder active from DAA 0, window 60 DAA x 7 (the first epoch that can step is 8, DAA 480); 60 DAA per epoch, lead 10; run 900 s or 10 epochs +22:37:10.165 n0 up pid 1658675 json 29722 p2p 29721, signals up +22:37:11.374 n1 up pid 1659188 json 29732 p2p 29731, signals up +22:37:12.584 n2 up pid 1659706 json 29742 p2p 29741, signals none +22:37:12.584 n0: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:37:12.585 n1: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:37:12.585 n2: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals none +22:37:12.585 n0 digest: b1f606bede788b70 +22:37:13.597 epoch -1 -> 0 at daa 0, 4.7 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 0 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:37:13.598 t=4.7 s daa 0 epoch 0 rung 0 (27) up 0 bps weakest 0 blocks/sink per node 0/234e082d 0/234e082d 0/234e082d +22:37:28.640 t=19.7 s daa 1 epoch 0 rung 0 (27) up 0 bps weakest 0 blocks/sink per node 1/350fed25 1/350fed25 1/350fed25 +22:37:43.659 t=34.7 s daa 7 epoch 0 rung 0 (27) up 6666 bps weakest 0 blocks/sink per node 7/33ca6cd0 7/33ca6cd0 7/33ca6cd0 +22:37:58.679 t=49.8 s daa 12 epoch 0 rung 0 (27) up 6363 bps weakest 0 blocks/sink per node 12/70a47fc6 12/70a47fc6 12/70a47fc6 +22:38:13.696 t=64.8 s daa 28 epoch 0 rung 0 (27) up 6296 bps weakest 0 blocks/sink per node 28/1c7719a6 28/1c7719a6 28/1c7719a6 +22:38:28.714 t=79.8 s daa 36 epoch 0 rung 0 (27) up 6571 bps weakest 0 blocks/sink per node 36/72330841 36/72330841 36/72330841 +22:38:43.731 t=94.8 s daa 59 epoch 0 rung 0 (27) up 7068 bps weakest 0 blocks/sink per node 59/cf02d592 59/cf02d592 59/cf02d592 +22:38:45.733 epoch 0 -> 1 at daa 62, 96.8 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 7000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:38:58.747 t=109.8 s daa 74 epoch 1 rung 0 (27) up 6833 bps weakest 0 blocks/sink per node 74/c65d7a59 74/c65d7a59 74/c65d7a59 +22:39:13.765 t=124.8 s daa 85 epoch 1 rung 0 (27) up 7333 bps weakest 0 blocks/sink per node 85/e53510f4 85/e53510f4 85/e53510f4 +22:39:28.785 t=139.9 s daa 105 epoch 1 rung 0 (27) up 7166 bps weakest 0 blocks/sink per node 105/37769ced 105/37769ced 105/37769ced +22:39:43.805 t=154.9 s daa 119 epoch 1 rung 0 (27) up 7166 bps weakest 0 blocks/sink per node 119/aa8e5664 119/aa8e5664 119/aa8e5664 +22:39:45.808 epoch 1 -> 2 at daa 120, 156.9 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 7166 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:39:58.824 t=169.9 s daa 131 epoch 2 rung 0 (27) up 7500 bps weakest 0 blocks/sink per node 131/bf6ed8b2 131/bf6ed8b2 131/bf6ed8b2 +22:40:13.843 t=184.9 s daa 150 epoch 2 rung 0 (27) up 8166 bps weakest 0 blocks/sink per node 150/6a31bf2e 150/6a31bf2e 150/6a31bf2e +22:40:28.862 t=199.9 s daa 165 epoch 2 rung 0 (27) up 7500 bps weakest 0 blocks/sink per node 165/83f8d3f6 165/83f8d3f6 165/83f8d3f6 +22:40:42.878 epoch 2 -> 3 at daa 180, 213.9 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 7166 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:40:43.880 t=215.0 s daa 181 epoch 3 rung 0 (27) up 7000 bps weakest 0 blocks/sink per node 181/5be6a01e 181/5be6a01e 181/5be6a01e +22:40:58.901 t=230.0 s daa 202 epoch 3 rung 0 (27) up 6666 bps weakest 0 blocks/sink per node 202/5663af4a 202/5663af4a 202/5663af4a +22:41:13.919 t=245.0 s daa 216 epoch 3 rung 0 (27) up 5833 bps weakest 0 blocks/sink per node 216/3d231639 216/3d231639 216/3d231639 +22:41:28.939 t=260.0 s daa 228 epoch 3 rung 0 (27) up 6500 bps weakest 0 blocks/sink per node 228/88370ed6 228/88370ed6 228/88370ed6 +22:41:41.955 epoch 3 -> 4 at daa 240, 273.0 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6833 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:41:43.958 t=275.0 s daa 241 epoch 4 rung 0 (27) up 6833 bps weakest 0 blocks/sink per node 241/a2dbefc3 241/a2dbefc3 241/a2dbefc3 +22:41:58.976 t=290.0 s daa 248 epoch 4 rung 0 (27) up 6500 bps weakest 0 blocks/sink per node 248/0815d37e 248/0815d37e 248/0815d37e +22:42:13.998 t=305.1 s daa 267 epoch 4 rung 0 (27) up 6833 bps weakest 0 blocks/sink per node 267/09bb3297 267/09bb3297 267/09bb3297 +22:42:29.017 t=320.1 s daa 297 epoch 4 rung 0 (27) up 6833 bps weakest 0 blocks/sink per node 297/af91ef29 297/af91ef29 297/af91ef29 +22:42:31.020 epoch 4 -> 5 at daa 300, 322.1 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6666 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:42:44.036 t=335.1 s daa 312 epoch 5 rung 0 (27) up 6666 bps weakest 0 blocks/sink per node 312/a015f07f 312/a015f07f 312/a015f07f +22:42:59.055 t=350.1 s daa 330 epoch 5 rung 0 (27) up 6833 bps weakest 0 blocks/sink per node 330/c9f57620 330/c9f57620 330/c9f57620 +22:43:14.072 t=365.1 s daa 345 epoch 5 rung 0 (27) up 6949 bps weakest 0 blocks/sink per node 345/fe4111b9 345/fe4111b9 345/fe4111b9 +22:43:27.092 epoch 5 -> 6 at daa 360, 378.2 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6333 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:43:29.095 t=380.2 s daa 360 epoch 6 rung 0 (27) up 6333 bps weakest 0 blocks/sink per node 360/2acb1c9a 360/2acb1c9a 360/2acb1c9a +22:43:44.112 t=395.2 s daa 368 epoch 6 rung 0 (27) up 6779 bps weakest 5714 blocks/sink per node 368/853bece4 368/853bece4 368/853bece4 +22:43:59.132 t=410.2 s daa 390 epoch 6 rung 0 (27) up 5666 bps weakest 5666 blocks/sink per node 390/9101251e 389/6d70c5a8 390/9101251e +22:44:14.153 t=425.2 s daa 404 epoch 6 rung 0 (27) up 5500 bps weakest 5500 blocks/sink per node 404/89a08ca7 404/89a08ca7 404/89a08ca7 +22:44:25.167 epoch 6 -> 7 at daa 420, 436.2 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 5833 bps (weakest of 7: 5833), down 0 bps, this node signals 1, step took effect at epoch 0 +22:44:29.172 t=440.2 s daa 421 epoch 7 rung 0 (27) up 6000 bps weakest 6000 blocks/sink per node 421/a39e260b 421/a39e260b 421/a39e260b +22:44:44.192 t=455.3 s daa 437 epoch 7 rung 0 (27) up 5666 bps weakest 5666 blocks/sink per node 437/9782bb5e 437/9782bb5e 437/9782bb5e +22:44:59.214 t=470.3 s daa 456 epoch 7 rung 0 (27) up 5932 bps weakest 5833 blocks/sink per node 456/2a6dea3c 456/2a6dea3c 456/2a6dea3c +22:45:14.235 t=485.3 s daa 473 epoch 7 rung 0 (27) up 6500 bps weakest 5500 blocks/sink per node 473/ab842458 473/ab842458 473/ab842458 +22:45:19.242 epoch 7 -> 8 at daa 480, 490.3 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6166 bps (weakest of 7: 5833), down 0 bps, this node signals 1, step took effect at epoch 0 +22:45:29.257 t=500.3 s daa 488 epoch 8 rung 0 (27) up 6000 bps weakest 5666 blocks/sink per node 488/a16f988f 488/a16f988f 488/a16f988f +22:45:44.278 t=515.4 s daa 505 epoch 8 rung 0 (27) up 6333 bps weakest 5737 blocks/sink per node 505/915b20b6 505/915b20b6 505/915b20b6 +22:45:59.304 t=530.4 s daa 527 epoch 8 rung 0 (27) up 6666 bps weakest 5333 blocks/sink per node 527/7161dfa6 527/7161dfa6 527/7161dfa6 +22:46:10.317 epoch 8 -> 9 at daa 540, 541.4 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6666 bps (weakest of 7: 5833), down 0 bps, this node signals 1, step took effect at epoch 0 +22:46:14.324 t=545.4 s daa 541 epoch 9 rung 0 (27) up 6666 bps weakest 6000 blocks/sink per node 541/5fcc65e3 541/5fcc65e3 541/5fcc65e3 +22:46:29.343 t=560.4 s daa 562 epoch 9 rung 0 (27) up 6833 bps weakest 5666 blocks/sink per node 562/673f1e20 562/673f1e20 562/673f1e20 +22:46:44.364 t=575.4 s daa 577 epoch 9 rung 0 (27) up 7166 bps weakest 5833 blocks/sink per node 577/67af1166 577/67af1166 577/67af1166 +22:46:59.385 t=590.5 s daa 596 epoch 9 rung 0 (27) up 7000 bps weakest 5666 blocks/sink per node 596/2dd560ca 596/2dd560ca 596/2dd560ca +22:47:01.388 epoch 9 -> 10 at daa 600, 592.5 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 6833 bps (weakest of 7: 5833), down 0 bps, this node signals 1, step took effect at epoch 0 +22:47:04.711 SUMMARY PASS (expect no-step, signals up/up/none): no step; epochs seen e0:r0:0bps e1:r0:0bps e2:r0:0bps e3:r0:0bps e4:r0:0bps e5:r0:0bps e6:r0:0bps e7:r0:5833bps e8:r0:5833bps e9:r0:5833bps e10:r0:5833bps; chain bits {"none":200,"up":402} (6678 bps up); blocks 602 / 0; rejected miners 0/0/0 nodes 0/0/0; sinks bfc435d62d7c659c bfc435d62d7c659c bfc435d62d7c659c at 601/601/601 +22:47:04.711 PROGRAM ID epoch 0 seed 234e082d653dc69d reps 27: miners 26fc8f3decca98ed (3 of 3) cli at reps 26fc8f3decca98ed cli rung 0 26fc8f3decca98ed +22:47:04.711 PROGRAM ID epoch 1 seed 894676c6f3ebb385 reps 27: miners e0910c8d87135035 (3 of 3) cli at reps e0910c8d87135035 cli rung 0 e0910c8d87135035 +22:47:04.711 PROGRAM ID epoch 2 seed 405d6592622d1af9 reps 27: miners 2eb05375a9d9077d (3 of 3) cli at reps 2eb05375a9d9077d cli rung 0 2eb05375a9d9077d +22:47:04.711 PROGRAM ID epoch 3 seed 9598288f0a520b69 reps 27: miners 0acdab9caca48471 (3 of 3) cli at reps 0acdab9caca48471 cli rung 0 0acdab9caca48471 +22:47:04.711 PROGRAM ID epoch 4 seed 9b6e5a23005f0998 reps 27: miners 1df476827c33e263 (3 of 3) cli at reps 1df476827c33e263 cli rung 0 1df476827c33e263 +22:47:04.711 PROGRAM ID epoch 5 seed a0a54f6a687f94f4 reps 27: miners 20003329ca5050d9 (3 of 3) cli at reps 20003329ca5050d9 cli rung 0 20003329ca5050d9 +22:47:04.711 PROGRAM ID epoch 6 seed 1b20ae99061e034f reps 27: miners 2e5cee148e6b82b1 (3 of 3) cli at reps 2e5cee148e6b82b1 cli rung 0 2e5cee148e6b82b1 +22:47:04.711 PROGRAM ID epoch 7 seed 5545b276021f1ad9 reps 27: miners d9babb74721f6cd0 (3 of 3) cli at reps d9babb74721f6cd0 cli rung 0 d9babb74721f6cd0 +22:47:04.711 PROGRAM ID epoch 8 seed f959d016b2d47167 reps 27: miners 94b5809680b13285 (3 of 3) cli at reps 94b5809680b13285 cli rung 0 94b5809680b13285 +22:47:04.711 PROGRAM ID epoch 9 seed 24b28bef5cba00a9 reps 27: miners e1cae64a2a12de45 (3 of 3) cli at reps e1cae64a2a12de45 cli rung 0 e1cae64a2a12de45 +22:47:04.711 PROGRAM ID epoch 10 seed ccfc16e9107ae720 reps 27: miners c7ce4aa0e96ba6b9 (3 of 3) cli at reps c7ce4aa0e96ba6b9 cli rung 0 c7ce4aa0e96ba6b9 +22:47:04.711 summary: /tmp/igneum-fast-time-ladder-no-step/summary.json +CASE no-step rc=0 diff --git a/docs/design/latency-ladder-harness/step.json b/docs/design/latency-ladder-harness/step.json new file mode 100644 index 000000000..def8c136d --- /dev/null +++ b/docs/design/latency-ladder-harness/step.json @@ -0,0 +1,1012 @@ +{ + "pass": false, + "expect": "step", + "signals": [ + "up", + "up", + "up" + ], + "checks": { + "zero_rejected_by_miners": true, + "zero_rejected_by_nodes": true, + "sinks_agree": true, + "block_counts_agree": true, + "miners_agree_on_every_program": true, + "ladder_line_on_every_node": true, + "every_node_signals_its_bits": true, + "every_epoch_class_v4": true, + "rung0_ids_equal_the_cli_rung0_id": true, + "chain_carries_the_bits": false, + "template_stepped_to_rung_1": true, + "stepped_at_the_first_full_window_epoch": true, + "step_line_on_every_node_same_epoch": true, + "weakest_up_at_or_above_threshold": true, + "no_second_step_inside_seven_windows": true, + "blocks_on_both_sides": true, + "rung1_ids_equal_the_cli_rung1_id": false, + "rung1_ids_differ_from_the_same_seed_rung0_id": true + }, + "window": 60, + "windows": 7, + "threshold_bps": 9000, + "epoch_blocks": 60, + "lead": 10, + "first_step_epoch": 8, + "node": "/srv/builds/igneum-wt-ladder/vendor/igneum-node-ladder/target/release/igneumd", + "miner": "/srv/builds/igneum-wt-ladder/vendor/igneum-node-ladder/target/release/igneum-miner", + "pow": "/srv/builds/igneum-wt-ladder/igneum-pow/target/release/igneum-pow", + "template_step": { + "epoch": 8, + "daa": 480, + "step": 1, + "reps": 35, + "at": 500.3 + }, + "run_ended_at_s": 633.5, + "final_daa": 611, + "max_epoch_seen": 10, + "epochs": { + "0": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 0, + "at": 4.7, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 0, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "1": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 60, + "at": 95.8, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "2": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 120, + "at": 148.9, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "3": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 180, + "at": 210.9, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "4": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 240, + "at": 265, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "5": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 300, + "at": 324.1, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "6": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 360, + "at": 378.1, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "7": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 420, + "at": 438.2, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 10000, + "down_bps": 0, + "step_epoch": 0 + }, + "8": { + "class": 4, + "reps": 35, + "step": 1, + "firstSeenDaa": 480, + "at": 500.3, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 10000, + "down_bps": 0, + "step_epoch": 8 + }, + "9": { + "class": 4, + "reps": 35, + "step": 1, + "firstSeenDaa": 540, + "at": 561.4, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 10000, + "down_bps": 0, + "step_epoch": 8 + }, + "10": { + "class": 4, + "reps": 35, + "step": 1, + "firstSeenDaa": 601, + "at": 626.5, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 10000, + "down_bps": 0, + "step_epoch": 8 + } + }, + "blocks": { + "total": 613, + "before_boundary": 481, + "after_boundary": 132, + "ladder_bits": { + "none": 1, + "up": 612 + }, + "object_bytes": { + "0": 613 + }, + "up_share_bps_on_chain": 9984 + }, + "programs": [ + { + "epoch": 0, + "class": "v4", + "program_id": "26fc8f3decca98ed", + "seed": "234e082d653dc69d", + "miners": 3, + "disagree": false + }, + { + "epoch": 1, + "class": "v4", + "program_id": "8a3027b727010ebb", + "seed": "f3f15962195b3ed5", + "miners": 3, + "disagree": false + }, + { + "epoch": 2, + "class": "v4", + "program_id": "5ce393c9689621a3", + "seed": "08861cd8892dd5bf", + "miners": 3, + "disagree": false + }, + { + "epoch": 3, + "class": "v4", + "program_id": "1e113fa683988a88", + "seed": "1ea70b68ae751655", + "miners": 3, + "disagree": false + }, + { + "epoch": 4, + "class": "v4", + "program_id": "f78fdc10877a6a53", + "seed": "6e0fe9f3461ed4b7", + "miners": 3, + "disagree": false + }, + { + "epoch": 5, + "class": "v4", + "program_id": "c54ce8f09a0197fd", + "seed": "756db10abdc2caa1", + "miners": 3, + "disagree": false + }, + { + "epoch": 6, + "class": "v4", + "program_id": "4ee83f583fd0d3a6", + "seed": "71066f551557cca4", + "miners": 3, + "disagree": false + }, + { + "epoch": 7, + "class": "v4", + "program_id": "32c35a3b0dfb22e8", + "seed": "f2f76ce991184adb", + "miners": 3, + "disagree": false + }, + { + "epoch": 8, + "class": "v4", + "program_id": "d4cfc28a1c525077", + "seed": "beb8b40fec4bf2c8", + "miners": 3, + "disagree": false + }, + { + "epoch": 9, + "class": "v4", + "program_id": "35c3a81b81cc2b02", + "seed": "04d782fc0d5def41", + "miners": 3, + "disagree": false + }, + { + "epoch": 10, + "class": "v4", + "program_id": "804c18c3a462f05c", + "seed": "3a51ee194be8d47b", + "miners": 3, + "disagree": false + } + ], + "program_id_rows": [ + { + "epoch": 0, + "seed": "234e082d653dc69d", + "reps": 27, + "miners_id": "26fc8f3decca98ed", + "miners": 3, + "cli_rung0": "26fc8f3decca98ed", + "cli_at_reps": "26fc8f3decca98ed" + }, + { + "epoch": 1, + "seed": "f3f15962195b3ed5", + "reps": 27, + "miners_id": "8a3027b727010ebb", + "miners": 3, + "cli_rung0": "8a3027b727010ebb", + "cli_at_reps": "8a3027b727010ebb" + }, + { + "epoch": 2, + "seed": "08861cd8892dd5bf", + "reps": 27, + "miners_id": "5ce393c9689621a3", + "miners": 3, + "cli_rung0": "5ce393c9689621a3", + "cli_at_reps": "5ce393c9689621a3" + }, + { + "epoch": 3, + "seed": "1ea70b68ae751655", + "reps": 27, + "miners_id": "1e113fa683988a88", + "miners": 3, + "cli_rung0": "1e113fa683988a88", + "cli_at_reps": "1e113fa683988a88" + }, + { + "epoch": 4, + "seed": "6e0fe9f3461ed4b7", + "reps": 27, + "miners_id": "f78fdc10877a6a53", + "miners": 3, + "cli_rung0": "f78fdc10877a6a53", + "cli_at_reps": "f78fdc10877a6a53" + }, + { + "epoch": 5, + "seed": "756db10abdc2caa1", + "reps": 27, + "miners_id": "c54ce8f09a0197fd", + "miners": 3, + "cli_rung0": "c54ce8f09a0197fd", + "cli_at_reps": "c54ce8f09a0197fd" + }, + { + "epoch": 6, + "seed": "71066f551557cca4", + "reps": 27, + "miners_id": "4ee83f583fd0d3a6", + "miners": 3, + "cli_rung0": "4ee83f583fd0d3a6", + "cli_at_reps": "4ee83f583fd0d3a6" + }, + { + "epoch": 7, + "seed": "f2f76ce991184adb", + "reps": 27, + "miners_id": "32c35a3b0dfb22e8", + "miners": 3, + "cli_rung0": "32c35a3b0dfb22e8", + "cli_at_reps": "32c35a3b0dfb22e8" + }, + { + "epoch": 8, + "seed": "beb8b40fec4bf2c8", + "reps": 35, + "miners_id": "d4cfc28a1c525077", + "miners": 3, + "cli_rung0": "ea49bc6e870eb34c", + "cli_at_reps": "ea49bc6e870eb34c" + }, + { + "epoch": 9, + "seed": "04d782fc0d5def41", + "reps": 35, + "miners_id": "35c3a81b81cc2b02", + "miners": 3, + "cli_rung0": "1fe5e84ead8e71e3", + "cli_at_reps": "1fe5e84ead8e71e3" + }, + { + "epoch": 10, + "seed": "3a51ee194be8d47b", + "reps": 35, + "miners_id": "804c18c3a462f05c", + "miners": 3, + "cli_rung0": "4e6c5bbf6463131d", + "cli_at_reps": "4e6c5bbf6463131d" + } + ], + "accepted_per_miner": [ + 210, + 193, + 210 + ], + "rejected_by_miners": [ + 0, + 0, + 0 + ], + "rejected_by_nodes": [ + 0, + 0, + 0 + ], + "sinks": [ + "c4fb461282cf9321", + "c4fb461282cf9321", + "c4fb461282cf9321" + ], + "block_counts": [ + 612, + 612, + 612 + ], + "step_lines": [ + [ + "Latency ladder step by miner signal: epoch 8 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 60 DAA ending at seed block beb8b40fec4bf2c8ab571ec2a6739a16c355b18db02ad382030274f0eaab3a1e, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 bps, shares up oldest first [10000, 10000, 10000, 10000, 10000, 10000, 10000], down [0, 0, 0, 0, 0, 0, 0], 420 of 420 blue blocks up, 0 down" + ], + [ + "Latency ladder step by miner signal: epoch 8 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 60 DAA ending at seed block beb8b40fec4bf2c8ab571ec2a6739a16c355b18db02ad382030274f0eaab3a1e, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 bps, shares up oldest first [10000, 10000, 10000, 10000, 10000, 10000, 10000], down [0, 0, 0, 0, 0, 0, 0], 420 of 420 blue blocks up, 0 down" + ], + [ + "Latency ladder step by miner signal: epoch 8 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 60 DAA ending at seed block beb8b40fec4bf2c8ab571ec2a6739a16c355b18db02ad382030274f0eaab3a1e, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 bps, shares up oldest first [10000, 10000, 10000, 10000, 10000, 10000, 10000], down [0, 0, 0, 0, 0, 0, 0], 420 of 420 blue blocks up, 0 down" + ] + ], + "samples": [ + { + "t": 4.7, + "daa": 0, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "0/234e082d", + "0/234e082d", + "0/234e082d" + ] + }, + { + "t": 19.7, + "daa": 3, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "3/249577e0", + "3/249577e0", + "3/249577e0" + ] + }, + { + "t": 34.7, + "daa": 9, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "9/f5f30338", + "9/f5f30338", + "9/f5f30338" + ] + }, + { + "t": 49.7, + "daa": 13, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "13/9a570e80", + "13/9a570e80", + "13/9a570e80" + ] + }, + { + "t": 64.8, + "daa": 21, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "21/e9eb6357", + "21/e9eb6357", + "21/e9eb6357" + ] + }, + { + "t": 79.8, + "daa": 43, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "43/231339b1", + "43/231339b1", + "43/231339b1" + ] + }, + { + "t": 94.8, + "daa": 59, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "59/b7fc02c8", + "59/b7fc02c8", + "59/b7fc02c8" + ] + }, + { + "t": 109.8, + "daa": 72, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "72/b2806522", + "72/b2806522", + "72/b2806522" + ] + }, + { + "t": 124.8, + "daa": 94, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "94/79f760e8", + "94/79f760e8", + "94/79f760e8" + ] + }, + { + "t": 139.9, + "daa": 113, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "113/5561b157", + "113/5561b157", + "113/5561b157" + ] + }, + { + "t": 154.9, + "daa": 126, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "126/2349621f", + "126/2349621f", + "126/2349621f" + ] + }, + { + "t": 169.9, + "daa": 140, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "140/bc35ba71", + "140/bc35ba71", + "140/bc35ba71" + ] + }, + { + "t": 184.9, + "daa": 156, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "156/63d8089e", + "156/63d8089e", + "156/63d8089e" + ] + }, + { + "t": 199.9, + "daa": 171, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "171/18cedc1e", + "171/18cedc1e", + "171/18cedc1e" + ] + }, + { + "t": 214.9, + "daa": 183, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "183/72878aa2", + "183/72878aa2", + "183/72878aa2" + ] + }, + { + "t": 230, + "daa": 194, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "194/d912a5a6", + "194/d912a5a6", + "194/d912a5a6" + ] + }, + { + "t": 245, + "daa": 213, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "213/c32e5855", + "213/c32e5855", + "213/c32e5855" + ] + }, + { + "t": 260, + "daa": 230, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "230/6e0fe9f3", + "230/6e0fe9f3", + "230/6e0fe9f3" + ] + }, + { + "t": 275, + "daa": 254, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "254/5374343f", + "254/5374343f", + "254/5374343f" + ] + }, + { + "t": 290, + "daa": 270, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "270/2102c92b", + "270/2102c92b", + "270/2102c92b" + ] + }, + { + "t": 305, + "daa": 283, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "283/96ca2f27", + "283/96ca2f27", + "283/96ca2f27" + ] + }, + { + "t": 320.1, + "daa": 295, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "295/d8305233", + "295/d8305233", + "295/d8305233" + ] + }, + { + "t": 335.1, + "daa": 308, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "308/a6a3dd91", + "308/a6a3dd91", + "308/a6a3dd91" + ] + }, + { + "t": 350.1, + "daa": 322, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "322/6819393b", + "322/6819393b", + "322/6819393b" + ] + }, + { + "t": 365.1, + "daa": 346, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "346/354f160d", + "346/354f160d", + "346/354f160d" + ] + }, + { + "t": 380.1, + "daa": 361, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "361/af58d2f8", + "361/af58d2f8", + "361/af58d2f8" + ] + }, + { + "t": 395.2, + "daa": 382, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "382/71d14149", + "382/71d14149", + "382/71d14149" + ] + }, + { + "t": 410.2, + "daa": 399, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "399/9fb39463", + "399/9fb39463", + "399/9fb39463" + ] + }, + { + "t": 425.2, + "daa": 407, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "407/c60fa280", + "407/c60fa280", + "407/c60fa280" + ] + }, + { + "t": 440.2, + "daa": 421, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "421/237fb92b", + "421/237fb92b", + "421/237fb92b" + ] + }, + { + "t": 455.2, + "daa": 435, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "435/4b441312", + "435/4b441312", + "435/4b441312" + ] + }, + { + "t": 470.3, + "daa": 453, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "453/cd6b10e3", + "453/cd6b10e3", + "453/cd6b10e3" + ] + }, + { + "t": 485.3, + "daa": 468, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "468/07607c5a", + "468/07607c5a", + "468/07607c5a" + ] + }, + { + "t": 500.3, + "daa": 480, + "epoch": 8, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "480/446f5cad", + "480/446f5cad", + "480/446f5cad" + ] + }, + { + "t": 515.3, + "daa": 494, + "epoch": 8, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "494/cb995010", + "494/cb995010", + "494/cb995010" + ] + }, + { + "t": 530.4, + "daa": 507, + "epoch": 8, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "507/6fdd3fa6", + "507/6fdd3fa6", + "507/6fdd3fa6" + ] + }, + { + "t": 545.4, + "daa": 523, + "epoch": 8, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "523/9c372f3f", + "523/9c372f3f", + "523/9c372f3f" + ] + }, + { + "t": 560.4, + "daa": 539, + "epoch": 8, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "539/89195e3c", + "539/89195e3c", + "539/89195e3c" + ] + }, + { + "t": 575.4, + "daa": 555, + "epoch": 9, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "555/e9ac1c74", + "555/e9ac1c74", + "555/e9ac1c74" + ] + }, + { + "t": 590.4, + "daa": 568, + "epoch": 9, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "568/f092f0fb", + "568/f092f0fb", + "568/f092f0fb" + ] + }, + { + "t": 605.5, + "daa": 583, + "epoch": 9, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "583/e3ffdab3", + "583/e3ffdab3", + "583/e3ffdab3" + ] + }, + { + "t": 620.5, + "daa": 592, + "epoch": 9, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "592/27682e21", + "592/27682e21", + "592/27682e21" + ] + } + ] +} \ No newline at end of file diff --git a/docs/design/latency-ladder-harness/step.log b/docs/design/latency-ladder-harness/step.log new file mode 100644 index 000000000..29f809837 --- /dev/null +++ b/docs/design/latency-ladder-harness/step.log @@ -0,0 +1,78 @@ +22:26:30.617 signals up/up/up, expect step; class v4 from genesis, the ladder active from DAA 0, window 60 DAA x 7 (the first epoch that can step is 8, DAA 480); 60 DAA per epoch, lead 10; run 900 s or 10 epochs +22:26:31.854 n0 up pid 1601845 json 29722 p2p 29721, signals up +22:26:33.062 n1 up pid 1602372 json 29732 p2p 29731, signals up +22:26:34.272 n2 up pid 1602849 json 29742 p2p 29741, signals up +22:26:34.273 n0: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:26:34.273 n1: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:26:34.273 n2: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:26:34.274 n0 digest: b1f606bede788b70 +22:26:35.285 epoch -1 -> 0 at daa 0, 4.7 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 0 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:26:35.286 t=4.7 s daa 0 epoch 0 rung 0 (27) up 0 bps weakest 0 blocks/sink per node 0/234e082d 0/234e082d 0/234e082d +22:26:50.326 t=19.7 s daa 3 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 3/249577e0 3/249577e0 3/249577e0 +22:27:05.344 t=34.7 s daa 9 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 9/f5f30338 9/f5f30338 9/f5f30338 +22:27:20.362 t=49.7 s daa 13 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 13/9a570e80 13/9a570e80 13/9a570e80 +22:27:35.380 t=64.8 s daa 21 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 21/e9eb6357 21/e9eb6357 21/e9eb6357 +22:27:50.394 t=79.8 s daa 43 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 43/231339b1 43/231339b1 43/231339b1 +22:28:05.413 t=94.8 s daa 59 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 59/b7fc02c8 59/b7fc02c8 59/b7fc02c8 +22:28:06.415 epoch 0 -> 1 at daa 60, 95.8 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:28:20.430 t=109.8 s daa 72 epoch 1 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 72/b2806522 72/b2806522 72/b2806522 +22:28:35.450 t=124.8 s daa 94 epoch 1 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 94/79f760e8 94/79f760e8 94/79f760e8 +22:28:50.469 t=139.9 s daa 113 epoch 1 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 113/5561b157 113/5561b157 113/5561b157 +22:28:59.481 epoch 1 -> 2 at daa 120, 148.9 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:29:05.490 t=154.9 s daa 126 epoch 2 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 126/2349621f 126/2349621f 126/2349621f +22:29:20.507 t=169.9 s daa 140 epoch 2 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 140/bc35ba71 140/bc35ba71 140/bc35ba71 +22:29:35.525 t=184.9 s daa 156 epoch 2 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 156/63d8089e 156/63d8089e 156/63d8089e +22:29:50.544 t=199.9 s daa 171 epoch 2 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 171/18cedc1e 171/18cedc1e 171/18cedc1e +22:30:01.556 epoch 2 -> 3 at daa 180, 210.9 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:30:05.560 t=214.9 s daa 183 epoch 3 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 183/72878aa2 183/72878aa2 183/72878aa2 +22:30:20.580 t=230.0 s daa 194 epoch 3 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 194/d912a5a6 194/d912a5a6 194/d912a5a6 +22:30:35.597 t=245.0 s daa 213 epoch 3 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 213/c32e5855 213/c32e5855 213/c32e5855 +22:30:50.614 t=260.0 s daa 230 epoch 3 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 230/6e0fe9f3 230/6e0fe9f3 230/6e0fe9f3 +22:30:55.619 epoch 3 -> 4 at daa 240, 265.0 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:31:05.626 t=275.0 s daa 254 epoch 4 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 254/5374343f 254/5374343f 254/5374343f +22:31:20.640 t=290.0 s daa 270 epoch 4 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 270/2102c92b 270/2102c92b 270/2102c92b +22:31:35.653 t=305.0 s daa 283 epoch 4 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 283/96ca2f27 283/96ca2f27 283/96ca2f27 +22:31:50.672 t=320.1 s daa 295 epoch 4 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 295/d8305233 295/d8305233 295/d8305233 +22:31:54.677 epoch 4 -> 5 at daa 300, 324.1 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:32:05.692 t=335.1 s daa 308 epoch 5 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 308/a6a3dd91 308/a6a3dd91 308/a6a3dd91 +22:32:20.714 t=350.1 s daa 322 epoch 5 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 322/6819393b 322/6819393b 322/6819393b +22:32:35.737 t=365.1 s daa 346 epoch 5 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 346/354f160d 346/354f160d 346/354f160d +22:32:48.751 epoch 5 -> 6 at daa 360, 378.1 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:32:50.754 t=380.1 s daa 361 epoch 6 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 361/af58d2f8 361/af58d2f8 361/af58d2f8 +22:33:05.772 t=395.2 s daa 382 epoch 6 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 382/71d14149 382/71d14149 382/71d14149 +22:33:20.794 t=410.2 s daa 399 epoch 6 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 399/9fb39463 399/9fb39463 399/9fb39463 +22:33:35.817 t=425.2 s daa 407 epoch 6 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 407/c60fa280 407/c60fa280 407/c60fa280 +22:33:48.836 epoch 6 -> 7 at daa 420, 438.2 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 10000), down 0 bps, this node signals 1, step took effect at epoch 0 +22:33:50.840 t=440.2 s daa 421 epoch 7 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 421/237fb92b 421/237fb92b 421/237fb92b +22:34:05.864 t=455.2 s daa 435 epoch 7 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 435/4b441312 435/4b441312 435/4b441312 +22:34:20.885 t=470.3 s daa 453 epoch 7 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 453/cd6b10e3 453/cd6b10e3 453/cd6b10e3 +22:34:35.908 t=485.3 s daa 468 epoch 7 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 468/07607c5a 468/07607c5a 468/07607c5a +22:34:50.929 epoch 7 -> 8 at daa 480, 500.3 s: template class 4 rung 1 (35 passes), next rung 1 (35), up 10000 bps (weakest of 7: 10000), down 0 bps, this node signals 1, step took effect at epoch 8 +22:34:50.930 LADDER STEP: the template is rung 1 (35 shadow passes) from epoch 8 (daa 480) at 500.3 s wall +22:34:50.930 t=500.3 s daa 480 epoch 8 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 480/446f5cad 480/446f5cad 480/446f5cad +22:35:05.952 t=515.3 s daa 494 epoch 8 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 494/cb995010 494/cb995010 494/cb995010 +22:35:20.972 t=530.4 s daa 507 epoch 8 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 507/6fdd3fa6 507/6fdd3fa6 507/6fdd3fa6 +22:35:35.991 t=545.4 s daa 523 epoch 8 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 523/9c372f3f 523/9c372f3f 523/9c372f3f +22:35:51.015 t=560.4 s daa 539 epoch 8 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 539/89195e3c 539/89195e3c 539/89195e3c +22:35:52.017 epoch 8 -> 9 at daa 540, 561.4 s: template class 4 rung 1 (35 passes), next rung 1 (35), up 10000 bps (weakest of 7: 10000), down 0 bps, this node signals 1, step took effect at epoch 8 +22:36:06.037 t=575.4 s daa 555 epoch 9 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 555/e9ac1c74 555/e9ac1c74 555/e9ac1c74 +22:36:21.059 t=590.4 s daa 568 epoch 9 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 568/f092f0fb 568/f092f0fb 568/f092f0fb +22:36:36.084 t=605.5 s daa 583 epoch 9 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 583/e3ffdab3 583/e3ffdab3 583/e3ffdab3 +22:36:51.107 t=620.5 s daa 592 epoch 9 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 592/27682e21 592/27682e21 592/27682e21 +22:36:57.114 epoch 9 -> 10 at daa 601, 626.5 s: template class 4 rung 1 (35 passes), next rung 1 (35), up 10000 bps (weakest of 7: 10000), down 0 bps, this node signals 1, step took effect at epoch 8 +22:37:07.379 SUMMARY FAIL (expect step, signals up/up/up): rung 1 (35 passes) from epoch 8 at DAA 480; epochs seen e0:r0:0bps e1:r0:0bps e2:r0:0bps e3:r0:0bps e4:r0:0bps e5:r0:0bps e6:r0:0bps e7:r0:10000bps e8:r1:10000bps e9:r1:10000bps e10:r1:10000bps; chain bits {"none":1,"up":612} (9984 bps up); blocks 481 / 132; rejected miners 0/0/0 nodes 0/0/0; sinks c4fb461282cf9321 c4fb461282cf9321 c4fb461282cf9321 at 612/612/612 +22:37:07.379 PROGRAM ID epoch 0 seed 234e082d653dc69d reps 27: miners 26fc8f3decca98ed (3 of 3) cli at reps 26fc8f3decca98ed cli rung 0 26fc8f3decca98ed +22:37:07.379 PROGRAM ID epoch 1 seed f3f15962195b3ed5 reps 27: miners 8a3027b727010ebb (3 of 3) cli at reps 8a3027b727010ebb cli rung 0 8a3027b727010ebb +22:37:07.379 PROGRAM ID epoch 2 seed 08861cd8892dd5bf reps 27: miners 5ce393c9689621a3 (3 of 3) cli at reps 5ce393c9689621a3 cli rung 0 5ce393c9689621a3 +22:37:07.379 PROGRAM ID epoch 3 seed 1ea70b68ae751655 reps 27: miners 1e113fa683988a88 (3 of 3) cli at reps 1e113fa683988a88 cli rung 0 1e113fa683988a88 +22:37:07.379 PROGRAM ID epoch 4 seed 6e0fe9f3461ed4b7 reps 27: miners f78fdc10877a6a53 (3 of 3) cli at reps f78fdc10877a6a53 cli rung 0 f78fdc10877a6a53 +22:37:07.379 PROGRAM ID epoch 5 seed 756db10abdc2caa1 reps 27: miners c54ce8f09a0197fd (3 of 3) cli at reps c54ce8f09a0197fd cli rung 0 c54ce8f09a0197fd +22:37:07.379 PROGRAM ID epoch 6 seed 71066f551557cca4 reps 27: miners 4ee83f583fd0d3a6 (3 of 3) cli at reps 4ee83f583fd0d3a6 cli rung 0 4ee83f583fd0d3a6 +22:37:07.379 PROGRAM ID epoch 7 seed f2f76ce991184adb reps 27: miners 32c35a3b0dfb22e8 (3 of 3) cli at reps 32c35a3b0dfb22e8 cli rung 0 32c35a3b0dfb22e8 +22:37:07.379 PROGRAM ID epoch 8 seed beb8b40fec4bf2c8 reps 35: miners d4cfc28a1c525077 (3 of 3) cli at reps ea49bc6e870eb34c cli rung 0 ea49bc6e870eb34c +22:37:07.379 PROGRAM ID epoch 9 seed 04d782fc0d5def41 reps 35: miners 35c3a81b81cc2b02 (3 of 3) cli at reps 1fe5e84ead8e71e3 cli rung 0 1fe5e84ead8e71e3 +22:37:07.379 PROGRAM ID epoch 10 seed 3a51ee194be8d47b reps 35: miners 804c18c3a462f05c (3 of 3) cli at reps 4e6c5bbf6463131d cli rung 0 4e6c5bbf6463131d +22:37:07.379 FAILED CHECK chain_carries_the_bits +22:37:07.379 FAILED CHECK rung1_ids_equal_the_cli_rung1_id +22:37:07.379 summary: /tmp/igneum-fast-time-ladder-step/summary.json +CASE step rc=1 diff --git a/docs/design/latency-ladder-harness/step2.json b/docs/design/latency-ladder-harness/step2.json new file mode 100644 index 000000000..cc9a9a514 --- /dev/null +++ b/docs/design/latency-ladder-harness/step2.json @@ -0,0 +1,1012 @@ +{ + "pass": true, + "expect": "step", + "signals": [ + "up", + "up", + "up" + ], + "checks": { + "zero_rejected_by_miners": true, + "zero_rejected_by_nodes": true, + "sinks_agree": true, + "block_counts_agree": true, + "miners_agree_on_every_program": true, + "ladder_line_on_every_node": true, + "every_node_signals_its_bits": true, + "every_epoch_class_v4": true, + "rung0_ids_equal_the_cli_rung0_id": true, + "chain_carries_the_bits": true, + "template_stepped_to_rung_1": true, + "stepped_at_the_first_full_window_epoch": true, + "step_line_on_every_node_same_epoch": true, + "weakest_up_at_or_above_threshold": true, + "no_second_step_inside_seven_windows": true, + "blocks_on_both_sides": true, + "rung1_ids_equal_the_cli_rung1_id": true, + "rung1_ids_differ_from_the_same_seed_rung0_id": true + }, + "window": 60, + "windows": 7, + "threshold_bps": 9000, + "epoch_blocks": 60, + "lead": 10, + "first_step_epoch": 8, + "node": "/srv/builds/igneum-wt-ladder/vendor/igneum-node-ladder/target/release/igneumd", + "miner": "/srv/builds/igneum-wt-ladder/vendor/igneum-node-ladder/target/release/igneum-miner", + "pow": "/srv/builds/igneum-wt-ladder/igneum-pow/target/release/igneum-pow", + "template_step": { + "epoch": 8, + "daa": 481, + "step": 1, + "reps": 35, + "at": 505.3 + }, + "run_ended_at_s": 628.5, + "final_daa": 610, + "max_epoch_seen": 10, + "epochs": { + "0": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 0, + "at": 4.7, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 0, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "1": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 60, + "at": 82.8, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "2": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 122, + "at": 142.9, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "3": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 180, + "at": 198.9, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "4": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 240, + "at": 258, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "5": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 301, + "at": 315.1, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "6": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 360, + "at": 383.2, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 0, + "down_bps": 0, + "step_epoch": 0 + }, + "7": { + "class": 4, + "reps": 27, + "step": 0, + "firstSeenDaa": 420, + "at": 442.2, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 10000, + "down_bps": 0, + "step_epoch": 0 + }, + "8": { + "class": 4, + "reps": 35, + "step": 1, + "firstSeenDaa": 481, + "at": 505.3, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 10000, + "down_bps": 0, + "step_epoch": 8 + }, + "9": { + "class": 4, + "reps": 35, + "step": 1, + "firstSeenDaa": 540, + "at": 563.4, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 10000, + "down_bps": 0, + "step_epoch": 8 + }, + "10": { + "class": 4, + "reps": 35, + "step": 1, + "firstSeenDaa": 600, + "at": 615.5, + "eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062", + "up_bps": 10000, + "up_weakest_bps": 10000, + "down_bps": 0, + "step_epoch": 8 + } + }, + "blocks": { + "total": 618, + "before_boundary": 481, + "after_boundary": 137, + "ladder_bits": { + "none": 1, + "up": 617 + }, + "object_bytes": { + "0": 618 + }, + "up_share_bps_on_chain": 9984 + }, + "programs": [ + { + "epoch": 0, + "class": "v4", + "program_id": "26fc8f3decca98ed", + "seed": "234e082d653dc69d", + "miners": 3, + "disagree": false + }, + { + "epoch": 1, + "class": "v4", + "program_id": "22db8cc739098c5f", + "seed": "5fce000863234999", + "miners": 3, + "disagree": false + }, + { + "epoch": 2, + "class": "v4", + "program_id": "0ec4930eb73fccbd", + "seed": "8217681d05165ddb", + "miners": 3, + "disagree": false + }, + { + "epoch": 3, + "class": "v4", + "program_id": "436c842444e67520", + "seed": "4870884b48c88957", + "miners": 3, + "disagree": false + }, + { + "epoch": 4, + "class": "v4", + "program_id": "4dd9f1e921cb066e", + "seed": "2505cecc606d69e8", + "miners": 3, + "disagree": false + }, + { + "epoch": 5, + "class": "v4", + "program_id": "fead43c4c01d42da", + "seed": "e31a3a8e73690d75", + "miners": 3, + "disagree": false + }, + { + "epoch": 6, + "class": "v4", + "program_id": "2c6402c1dcc39dae", + "seed": "2674be5e8dbaba18", + "miners": 3, + "disagree": false + }, + { + "epoch": 7, + "class": "v4", + "program_id": "120eb6f07fdd1e2b", + "seed": "de28d9d30dad45b8", + "miners": 3, + "disagree": false + }, + { + "epoch": 8, + "class": "v4", + "program_id": "65ffdc96f1921062", + "seed": "5fbfb48f6e4c66ba", + "miners": 3, + "disagree": false + }, + { + "epoch": 9, + "class": "v4", + "program_id": "62c19c11cb2909cf", + "seed": "367f8d4b525fd620", + "miners": 3, + "disagree": false + }, + { + "epoch": 10, + "class": "v4", + "program_id": "2f5237323ef1a4bb", + "seed": "518f98485a18e924", + "miners": 3, + "disagree": false + } + ], + "program_id_rows": [ + { + "epoch": 0, + "seed": "234e082d653dc69d", + "reps": 27, + "miners_id": "26fc8f3decca98ed", + "miners": 3, + "cli_rung0": "26fc8f3decca98ed", + "cli_at_reps": "26fc8f3decca98ed" + }, + { + "epoch": 1, + "seed": "5fce000863234999", + "reps": 27, + "miners_id": "22db8cc739098c5f", + "miners": 3, + "cli_rung0": "22db8cc739098c5f", + "cli_at_reps": "22db8cc739098c5f" + }, + { + "epoch": 2, + "seed": "8217681d05165ddb", + "reps": 27, + "miners_id": "0ec4930eb73fccbd", + "miners": 3, + "cli_rung0": "0ec4930eb73fccbd", + "cli_at_reps": "0ec4930eb73fccbd" + }, + { + "epoch": 3, + "seed": "4870884b48c88957", + "reps": 27, + "miners_id": "436c842444e67520", + "miners": 3, + "cli_rung0": "436c842444e67520", + "cli_at_reps": "436c842444e67520" + }, + { + "epoch": 4, + "seed": "2505cecc606d69e8", + "reps": 27, + "miners_id": "4dd9f1e921cb066e", + "miners": 3, + "cli_rung0": "4dd9f1e921cb066e", + "cli_at_reps": "4dd9f1e921cb066e" + }, + { + "epoch": 5, + "seed": "e31a3a8e73690d75", + "reps": 27, + "miners_id": "fead43c4c01d42da", + "miners": 3, + "cli_rung0": "fead43c4c01d42da", + "cli_at_reps": "fead43c4c01d42da" + }, + { + "epoch": 6, + "seed": "2674be5e8dbaba18", + "reps": 27, + "miners_id": "2c6402c1dcc39dae", + "miners": 3, + "cli_rung0": "2c6402c1dcc39dae", + "cli_at_reps": "2c6402c1dcc39dae" + }, + { + "epoch": 7, + "seed": "de28d9d30dad45b8", + "reps": 27, + "miners_id": "120eb6f07fdd1e2b", + "miners": 3, + "cli_rung0": "120eb6f07fdd1e2b", + "cli_at_reps": "120eb6f07fdd1e2b" + }, + { + "epoch": 8, + "seed": "5fbfb48f6e4c66ba", + "reps": 35, + "miners_id": "65ffdc96f1921062", + "miners": 3, + "cli_rung0": "3d40916b72ae9b97", + "cli_at_reps": "65ffdc96f1921062" + }, + { + "epoch": 9, + "seed": "367f8d4b525fd620", + "reps": 35, + "miners_id": "62c19c11cb2909cf", + "miners": 3, + "cli_rung0": "9c6ad9fe883c3330", + "cli_at_reps": "62c19c11cb2909cf" + }, + { + "epoch": 10, + "seed": "518f98485a18e924", + "reps": 35, + "miners_id": "2f5237323ef1a4bb", + "miners": 3, + "cli_rung0": "2a003e3289fe04dc", + "cli_at_reps": "2f5237323ef1a4bb" + } + ], + "accepted_per_miner": [ + 204, + 191, + 222 + ], + "rejected_by_miners": [ + 0, + 0, + 0 + ], + "rejected_by_nodes": [ + 0, + 0, + 0 + ], + "sinks": [ + "f1cbdb99f48e0a19", + "f1cbdb99f48e0a19", + "f1cbdb99f48e0a19" + ], + "block_counts": [ + 617, + 617, + 617 + ], + "step_lines": [ + [ + "Latency ladder step by miner signal: epoch 8 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 60 DAA ending at seed block 5fbfb48f6e4c66ba58738cfcaf38d894c788475d689891321fd976a5ca396bbd, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 bps, shares up oldest first [10000, 10000, 10000, 10000, 10000, 10000, 10000], down [0, 0, 0, 0, 0, 0, 0], 420 of 420 blue blocks up, 0 down" + ], + [ + "Latency ladder step by miner signal: epoch 8 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 60 DAA ending at seed block 5fbfb48f6e4c66ba58738cfcaf38d894c788475d689891321fd976a5ca396bbd, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 bps, shares up oldest first [10000, 10000, 10000, 10000, 10000, 10000, 10000], down [0, 0, 0, 0, 0, 0, 0], 420 of 420 blue blocks up, 0 down" + ], + [ + "Latency ladder step by miner signal: epoch 8 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 60 DAA ending at seed block 5fbfb48f6e4c66ba58738cfcaf38d894c788475d689891321fd976a5ca396bbd, threshold 9000 bps of blue blocks, weakest up 10000 bps, weakest down 0 bps, shares up oldest first [10000, 10000, 10000, 10000, 10000, 10000, 10000], down [0, 0, 0, 0, 0, 0, 0], 420 of 420 blue blocks up, 0 down" + ] + ], + "samples": [ + { + "t": 4.7, + "daa": 0, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 0, + "up_weakest_bps": 0, + "nodes": [ + "0/234e082d", + "0/234e082d", + "0/234e082d" + ] + }, + { + "t": 19.7, + "daa": 2, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "2/93be64d1", + "2/93be64d1", + "2/93be64d1" + ] + }, + { + "t": 34.7, + "daa": 12, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "12/702814dd", + "12/702814dd", + "12/702814dd" + ] + }, + { + "t": 49.7, + "daa": 25, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "25/d0d9d954", + "25/d0d9d954", + "25/d0d9d954" + ] + }, + { + "t": 64.8, + "daa": 44, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "44/59a39e34", + "44/59a39e34", + "43/fbe3301e" + ] + }, + { + "t": 79.8, + "daa": 58, + "epoch": 0, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "58/5d32aa5d", + "58/5d32aa5d", + "58/5d32aa5d" + ] + }, + { + "t": 94.8, + "daa": 72, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "72/d6ae0009", + "72/d6ae0009", + "72/d6ae0009" + ] + }, + { + "t": 109.8, + "daa": 89, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "89/37c27f2c", + "89/37c27f2c", + "89/37c27f2c" + ] + }, + { + "t": 124.8, + "daa": 102, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "102/cca31beb", + "102/cca31beb", + "102/cca31beb" + ] + }, + { + "t": 139.9, + "daa": 115, + "epoch": 1, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "115/22238404", + "115/22238404", + "115/22238404" + ] + }, + { + "t": 154.9, + "daa": 128, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "128/3b025ca2", + "128/3b025ca2", + "128/3b025ca2" + ] + }, + { + "t": 169.9, + "daa": 148, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "148/eb6fd081", + "148/eb6fd081", + "148/eb6fd081" + ] + }, + { + "t": 184.9, + "daa": 162, + "epoch": 2, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "162/f7591e43", + "162/f7591e43", + "162/f7591e43" + ] + }, + { + "t": 199.9, + "daa": 180, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "180/8508ae27", + "180/8508ae27", + "180/8508ae27" + ] + }, + { + "t": 215, + "daa": 192, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "192/d3cae989", + "192/d3cae989", + "192/d3cae989" + ] + }, + { + "t": 230, + "daa": 205, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "205/b7e9b38a", + "205/b7e9b38a", + "205/b7e9b38a" + ] + }, + { + "t": 245, + "daa": 224, + "epoch": 3, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "224/4b576b96", + "224/4b576b96", + "224/4b576b96" + ] + }, + { + "t": 260, + "daa": 242, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "242/21eac0e7", + "242/21eac0e7", + "242/21eac0e7" + ] + }, + { + "t": 275, + "daa": 263, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "263/3a7f5eb1", + "263/3a7f5eb1", + "263/3a7f5eb1" + ] + }, + { + "t": 290.1, + "daa": 276, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "276/9fa09972", + "276/9fa09972", + "276/9fa09972" + ] + }, + { + "t": 305.1, + "daa": 292, + "epoch": 4, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "292/c5cfe43d", + "292/c5cfe43d", + "292/c5cfe43d" + ] + }, + { + "t": 320.1, + "daa": 306, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "306/8a223b88", + "306/8a223b88", + "306/8a223b88" + ] + }, + { + "t": 335.1, + "daa": 319, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "319/3818e422", + "319/3818e422", + "319/3818e422" + ] + }, + { + "t": 350.1, + "daa": 333, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "333/5d9f5abe", + "333/5d9f5abe", + "333/5d9f5abe" + ] + }, + { + "t": 365.1, + "daa": 345, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "345/c186686a", + "345/c186686a", + "345/c186686a" + ] + }, + { + "t": 380.2, + "daa": 358, + "epoch": 5, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 0, + "nodes": [ + "358/71308cca", + "358/71308cca", + "358/71308cca" + ] + }, + { + "t": 395.2, + "daa": 373, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "373/dc7f7051", + "373/dc7f7051", + "373/dc7f7051" + ] + }, + { + "t": 410.2, + "daa": 392, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "392/932e6a12", + "392/932e6a12", + "392/932e6a12" + ] + }, + { + "t": 425.2, + "daa": 401, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "401/c76de149", + "401/c76de149", + "401/c76de149" + ] + }, + { + "t": 440.2, + "daa": 418, + "epoch": 6, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "418/3bfd34a2", + "418/3bfd34a2", + "418/3bfd34a2" + ] + }, + { + "t": 455.3, + "daa": 437, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "437/1eb8bef0", + "437/1eb8bef0", + "437/1eb8bef0" + ] + }, + { + "t": 470.3, + "daa": 450, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "450/8b056200", + "450/8b056200", + "450/8b056200" + ] + }, + { + "t": 485.3, + "daa": 459, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "459/75ec3917", + "459/75ec3917", + "459/75ec3917" + ] + }, + { + "t": 500.3, + "daa": 473, + "epoch": 7, + "step": 0, + "reps": 27, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "473/022ba23c", + "473/022ba23c", + "473/022ba23c" + ] + }, + { + "t": 515.3, + "daa": 486, + "epoch": 8, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "486/3e3ac762", + "486/3e3ac762", + "486/3e3ac762" + ] + }, + { + "t": 530.4, + "daa": 501, + "epoch": 8, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "501/4de14a5f", + "501/4de14a5f", + "501/4de14a5f" + ] + }, + { + "t": 545.4, + "daa": 515, + "epoch": 8, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "515/c64de9c2", + "515/c64de9c2", + "515/c64de9c2" + ] + }, + { + "t": 560.4, + "daa": 538, + "epoch": 8, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "538/d24d285a", + "538/d24d285a", + "538/d24d285a" + ] + }, + { + "t": 575.4, + "daa": 555, + "epoch": 9, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "555/d8617bdb", + "555/d8617bdb", + "555/d8617bdb" + ] + }, + { + "t": 590.4, + "daa": 570, + "epoch": 9, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "570/c16b6327", + "570/c16b6327", + "570/c16b6327" + ] + }, + { + "t": 605.5, + "daa": 586, + "epoch": 9, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "586/f1afc7fb", + "586/f1afc7fb", + "586/f1afc7fb" + ] + }, + { + "t": 620.5, + "daa": 605, + "epoch": 10, + "step": 1, + "reps": 35, + "up_bps": 10000, + "up_weakest_bps": 10000, + "nodes": [ + "605/407dd224", + "605/407dd224", + "605/407dd224" + ] + } + ] +} \ No newline at end of file diff --git a/docs/design/latency-ladder-harness/step2.log b/docs/design/latency-ladder-harness/step2.log new file mode 100644 index 000000000..5c2a455d2 --- /dev/null +++ b/docs/design/latency-ladder-harness/step2.log @@ -0,0 +1,76 @@ +22:47:26.794 signals up/up/up, expect step; class v4 from genesis, the ladder active from DAA 0, window 60 DAA x 7 (the first epoch that can step is 8, DAA 480); 60 DAA per epoch, lead 10; run 900 s or 10 epochs +22:47:28.032 n0 up pid 1734618 json 29722 p2p 29721, signals up +22:47:29.240 n1 up pid 1735138 json 29732 p2p 29731, signals up +22:47:30.451 n2 up pid 1735605 json 29742 p2p 29741, signals up +22:47:30.452 n0: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:47:30.452 n1: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:47:30.453 n2: Latency ladder from the override file: rungs 27, 35, 53, [88], [173], [267] shadow passes (brackets: inadmissible, never entered), active from epoch 0 (DAA score 0 rounded up to the epoch boundary at 0), one rung per decision at 90 percent of blue blocks in each of 7 consecutive windows of 60 DAA ending at an epoch's seed block | this node signals up +22:47:30.453 n0 digest: b1f606bede788b70 +22:47:31.464 epoch -1 -> 0 at daa 0, 4.7 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 0 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:47:31.468 t=4.7 s daa 0 epoch 0 rung 0 (27) up 0 bps weakest 0 blocks/sink per node 0/234e082d 0/234e082d 0/234e082d +22:47:46.507 t=19.7 s daa 2 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 2/93be64d1 2/93be64d1 2/93be64d1 +22:48:01.523 t=34.7 s daa 12 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 12/702814dd 12/702814dd 12/702814dd +22:48:16.542 t=49.7 s daa 25 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 25/d0d9d954 25/d0d9d954 25/d0d9d954 +22:48:31.562 t=64.8 s daa 44 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 44/59a39e34 44/59a39e34 43/fbe3301e +22:48:46.581 t=79.8 s daa 58 epoch 0 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 58/5d32aa5d 58/5d32aa5d 58/5d32aa5d +22:48:49.585 epoch 0 -> 1 at daa 60, 82.8 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:49:01.599 t=94.8 s daa 72 epoch 1 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 72/d6ae0009 72/d6ae0009 72/d6ae0009 +22:49:16.617 t=109.8 s daa 89 epoch 1 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 89/37c27f2c 89/37c27f2c 89/37c27f2c +22:49:31.633 t=124.8 s daa 102 epoch 1 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 102/cca31beb 102/cca31beb 102/cca31beb +22:49:46.650 t=139.9 s daa 115 epoch 1 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 115/22238404 115/22238404 115/22238404 +22:49:49.654 epoch 1 -> 2 at daa 122, 142.9 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:50:01.669 t=154.9 s daa 128 epoch 2 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 128/3b025ca2 128/3b025ca2 128/3b025ca2 +22:50:16.687 t=169.9 s daa 148 epoch 2 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 148/eb6fd081 148/eb6fd081 148/eb6fd081 +22:50:31.708 t=184.9 s daa 162 epoch 2 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 162/f7591e43 162/f7591e43 162/f7591e43 +22:50:45.727 epoch 2 -> 3 at daa 180, 198.9 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:50:46.729 t=199.9 s daa 180 epoch 3 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 180/8508ae27 180/8508ae27 180/8508ae27 +22:51:01.749 t=215.0 s daa 192 epoch 3 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 192/d3cae989 192/d3cae989 192/d3cae989 +22:51:16.769 t=230.0 s daa 205 epoch 3 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 205/b7e9b38a 205/b7e9b38a 205/b7e9b38a +22:51:31.789 t=245.0 s daa 224 epoch 3 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 224/4b576b96 224/4b576b96 224/4b576b96 +22:51:44.803 epoch 3 -> 4 at daa 240, 258.0 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:51:46.806 t=260.0 s daa 242 epoch 4 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 242/21eac0e7 242/21eac0e7 242/21eac0e7 +22:52:01.826 t=275.0 s daa 263 epoch 4 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 263/3a7f5eb1 263/3a7f5eb1 263/3a7f5eb1 +22:52:16.845 t=290.1 s daa 276 epoch 4 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 276/9fa09972 276/9fa09972 276/9fa09972 +22:52:31.861 t=305.1 s daa 292 epoch 4 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 292/c5cfe43d 292/c5cfe43d 292/c5cfe43d +22:52:41.874 epoch 4 -> 5 at daa 301, 315.1 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:52:46.877 t=320.1 s daa 306 epoch 5 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 306/8a223b88 306/8a223b88 306/8a223b88 +22:53:01.894 t=335.1 s daa 319 epoch 5 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 319/3818e422 319/3818e422 319/3818e422 +22:53:16.914 t=350.1 s daa 333 epoch 5 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 333/5d9f5abe 333/5d9f5abe 333/5d9f5abe +22:53:31.934 t=365.1 s daa 345 epoch 5 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 345/c186686a 345/c186686a 345/c186686a +22:53:46.950 t=380.2 s daa 358 epoch 5 rung 0 (27) up 10000 bps weakest 0 blocks/sink per node 358/71308cca 358/71308cca 358/71308cca +22:53:49.955 epoch 5 -> 6 at daa 360, 383.2 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 0), down 0 bps, this node signals 1, step took effect at epoch 0 +22:54:01.971 t=395.2 s daa 373 epoch 6 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 373/dc7f7051 373/dc7f7051 373/dc7f7051 +22:54:16.990 t=410.2 s daa 392 epoch 6 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 392/932e6a12 392/932e6a12 392/932e6a12 +22:54:32.010 t=425.2 s daa 401 epoch 6 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 401/c76de149 401/c76de149 401/c76de149 +22:54:47.031 t=440.2 s daa 418 epoch 6 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 418/3bfd34a2 418/3bfd34a2 418/3bfd34a2 +22:54:49.033 epoch 6 -> 7 at daa 420, 442.2 s: template class 4 rung 0 (27 passes), next rung 0 (27), up 10000 bps (weakest of 7: 10000), down 0 bps, this node signals 1, step took effect at epoch 0 +22:55:02.050 t=455.3 s daa 437 epoch 7 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 437/1eb8bef0 437/1eb8bef0 437/1eb8bef0 +22:55:17.071 t=470.3 s daa 450 epoch 7 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 450/8b056200 450/8b056200 450/8b056200 +22:55:32.093 t=485.3 s daa 459 epoch 7 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 459/75ec3917 459/75ec3917 459/75ec3917 +22:55:47.114 t=500.3 s daa 473 epoch 7 rung 0 (27) up 10000 bps weakest 10000 blocks/sink per node 473/022ba23c 473/022ba23c 473/022ba23c +22:55:52.120 epoch 7 -> 8 at daa 481, 505.3 s: template class 4 rung 1 (35 passes), next rung 1 (35), up 10000 bps (weakest of 7: 10000), down 0 bps, this node signals 1, step took effect at epoch 8 +22:55:52.120 LADDER STEP: the template is rung 1 (35 shadow passes) from epoch 8 (daa 481) at 505.3 s wall +22:56:02.135 t=515.3 s daa 486 epoch 8 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 486/3e3ac762 486/3e3ac762 486/3e3ac762 +22:56:17.156 t=530.4 s daa 501 epoch 8 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 501/4de14a5f 501/4de14a5f 501/4de14a5f +22:56:32.177 t=545.4 s daa 515 epoch 8 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 515/c64de9c2 515/c64de9c2 515/c64de9c2 +22:56:47.198 t=560.4 s daa 538 epoch 8 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 538/d24d285a 538/d24d285a 538/d24d285a +22:56:50.203 epoch 8 -> 9 at daa 540, 563.4 s: template class 4 rung 1 (35 passes), next rung 1 (35), up 10000 bps (weakest of 7: 10000), down 0 bps, this node signals 1, step took effect at epoch 8 +22:57:02.221 t=575.4 s daa 555 epoch 9 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 555/d8617bdb 555/d8617bdb 555/d8617bdb +22:57:17.243 t=590.4 s daa 570 epoch 9 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 570/c16b6327 570/c16b6327 570/c16b6327 +22:57:32.263 t=605.5 s daa 586 epoch 9 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 586/f1afc7fb 586/f1afc7fb 586/f1afc7fb +22:57:42.280 epoch 9 -> 10 at daa 600, 615.5 s: template class 4 rung 1 (35 passes), next rung 1 (35), up 10000 bps (weakest of 7: 10000), down 0 bps, this node signals 1, step took effect at epoch 8 +22:57:47.288 t=620.5 s daa 605 epoch 10 rung 1 (35) up 10000 bps weakest 10000 blocks/sink per node 605/407dd224 605/407dd224 605/407dd224 +22:57:58.524 SUMMARY PASS (expect step, signals up/up/up): rung 1 (35 passes) from epoch 8 at DAA 481; epochs seen e0:r0:0bps e1:r0:0bps e2:r0:0bps e3:r0:0bps e4:r0:0bps e5:r0:0bps e6:r0:0bps e7:r0:10000bps e8:r1:10000bps e9:r1:10000bps e10:r1:10000bps; chain bits {"none":1,"up":617} (9984 bps up); blocks 481 / 137; rejected miners 0/0/0 nodes 0/0/0; sinks f1cbdb99f48e0a19 f1cbdb99f48e0a19 f1cbdb99f48e0a19 at 617/617/617 +22:57:58.524 PROGRAM ID epoch 0 seed 234e082d653dc69d reps 27: miners 26fc8f3decca98ed (3 of 3) cli at reps 26fc8f3decca98ed cli rung 0 26fc8f3decca98ed +22:57:58.524 PROGRAM ID epoch 1 seed 5fce000863234999 reps 27: miners 22db8cc739098c5f (3 of 3) cli at reps 22db8cc739098c5f cli rung 0 22db8cc739098c5f +22:57:58.524 PROGRAM ID epoch 2 seed 8217681d05165ddb reps 27: miners 0ec4930eb73fccbd (3 of 3) cli at reps 0ec4930eb73fccbd cli rung 0 0ec4930eb73fccbd +22:57:58.524 PROGRAM ID epoch 3 seed 4870884b48c88957 reps 27: miners 436c842444e67520 (3 of 3) cli at reps 436c842444e67520 cli rung 0 436c842444e67520 +22:57:58.524 PROGRAM ID epoch 4 seed 2505cecc606d69e8 reps 27: miners 4dd9f1e921cb066e (3 of 3) cli at reps 4dd9f1e921cb066e cli rung 0 4dd9f1e921cb066e +22:57:58.524 PROGRAM ID epoch 5 seed e31a3a8e73690d75 reps 27: miners fead43c4c01d42da (3 of 3) cli at reps fead43c4c01d42da cli rung 0 fead43c4c01d42da +22:57:58.524 PROGRAM ID epoch 6 seed 2674be5e8dbaba18 reps 27: miners 2c6402c1dcc39dae (3 of 3) cli at reps 2c6402c1dcc39dae cli rung 0 2c6402c1dcc39dae +22:57:58.524 PROGRAM ID epoch 7 seed de28d9d30dad45b8 reps 27: miners 120eb6f07fdd1e2b (3 of 3) cli at reps 120eb6f07fdd1e2b cli rung 0 120eb6f07fdd1e2b +22:57:58.524 PROGRAM ID epoch 8 seed 5fbfb48f6e4c66ba reps 35: miners 65ffdc96f1921062 (3 of 3) cli at reps 65ffdc96f1921062 cli rung 0 3d40916b72ae9b97 +22:57:58.524 PROGRAM ID epoch 9 seed 367f8d4b525fd620 reps 35: miners 62c19c11cb2909cf (3 of 3) cli at reps 62c19c11cb2909cf cli rung 0 9c6ad9fe883c3330 +22:57:58.524 PROGRAM ID epoch 10 seed 518f98485a18e924 reps 35: miners 2f5237323ef1a4bb (3 of 3) cli at reps 2f5237323ef1a4bb cli rung 0 2a003e3289fe04dc +22:57:58.524 summary: /tmp/igneum-fast-time-ladder-step2/summary.json +CASE step2 rc=0 diff --git a/docs/design/latency-ladder.md b/docs/design/latency-ladder.md index a45569de5..54aa98eea 100644 --- a/docs/design/latency-ladder.md +++ b/docs/design/latency-ladder.md @@ -117,11 +117,11 @@ The paragraph as placed in the litepaper: "**The work that waits can grow.** Cla The ledger row is M34 in `docs/fud-ledger.md`. -## 11. The fast-time gate (igneum-build-1, 6 October 2026, 22:2x to 23:xxZ; `infra/fast-time/latency-ladder.mjs`, the ladder fork's Linux binaries built on the box, three nodes and three CPU miners on `override-60x.json` with class v4 from genesis, class signalling off, the ladder active from DAA 0, windows of 60 DAA) +## 11. The fast-time gate (igneum-build-1, 6 October 2026, 22:15 to 22:58Z; summaries and logs copied to `docs/design/latency-ladder-harness/`; `infra/fast-time/latency-ladder.mjs`, the ladder fork's Linux binaries built on the box, three nodes and three CPU miners on `override-60x.json` with class v4 from genesis, class signalling off, the ladder active from DAA 0, windows of 60 DAA) | Case | Run | SUMMARY | Summary file | |---|---|---|---| | The known-failed case first (`--signal up,up,none --expect step`) | 22:15 to 22:26Z | FAIL as it must: no step over epochs 0 to 10, the weakest-of-seven up share 6,166 to 6,333 bps at the sink from epoch 7 (two CPU miners of three), on the chain 406 blocks up and 198 none (6,722 bps up), no step line on any node, 0 rejected, one sink at 603/603/603; `FAILED CHECK` on eight step checks plus `chain_carries_the_bits`, which was the harness's own fault (genesis carries header version 0 and the low-byte check read it; fixed in the file and recorded there), exit 1 | `/srv/builds/_log/ladder-harness/failed-case.json` | | All three signal up (`--signal up,up,up --expect step`) | 22:26 to 22:37Z | the chain did what the rule says: `Latency ladder step by miner signal: epoch 8 moves to rung 1 (35 shadow passes, from rung 0): up in each of 7 consecutive windows of 60 DAA ending at seed block beb8b40f..., threshold 9000 bps, weakest up 10000 bps, ... 420 of 420 blue blocks up` on 3 of 3 nodes with the same epoch; the template at rung 1 from epoch 8 (DAA 480, the first epoch whose seed block has seven full windows below it) at 500 s wall; epochs 9 and 10 stayed at rung 1 (no second step inside seven windows); 481 / 132 blocks across the boundary; 0 rejected; one sink at 612/612/612; 612 blocks up and genesis none (9,984 bps up), every object byte 0; the three miners' rung-1 ids equal each other and differ from the same seed's rung-0 id on epochs 8, 9 and 10 (e8 `d4cfc28a1c525077` against `ea49bc6e870eb34c`). The harness reported FAIL on two checks of its own: the genesis low-byte fault above and `rung1_ids_equal_the_cli_rung1_id`, because `igneum-pow show` built its program without `--shadow-reps` (fixed at 6b30e85; the miners' ids were the chain's). Re-run as step2 below with both fixes | `step.json` | | Two of three signal up (`--signal up,up,none --expect no-step --epochs 10`) | 22:37 to 22:47Z | PASS: no step over epochs 0 to 10; the weakest-of-seven up share at the sink 5,833 bps from epoch 7 (the third miner's blocks carry no bits); on the chain 402 blocks up and 200 none (6,678 bps up); no step line on any node; 0 rejected; one sink `bfc435d62d7c659c` at 601/601/601; every rung-0 id equal to the CLI's | `no-step.json` | -| All three signal up, the fixed harness and CLI (step2) | after no-step | QUEUED | `step2.json` | +| All three signal up, the fixed harness and CLI (`--signal up,up,up --expect step`, step2) | 22:47 to 22:58Z | PASS on all 18 checks: the step line on 3 of 3 nodes at epoch 8 (weakest up 10,000 bps, 420 of 420 blue blocks up); the template at rung 1 (35 passes) from epoch 8 at 505 s wall; epochs 9 and 10 at rung 1, one step line per node (no second step inside seven windows); 481 / 137 blocks across the boundary; 0 rejected; one sink `f1cbdb99f48e0a19` at 617/617/617; 617 blocks up and genesis none (9,984 bps), every object byte 0, every mined block's low byte 2; the three miners' rung-1 ids on epochs 8, 9 and 10 equal the CLI's `--shadow-reps 35` id and differ from the same seed's rung-0 id | `step2.json` |