Counter ASIC 3.0 gates (node): the signalling gate GREEN (two of three never flips, all three flips at the first full window, nobody flips at the floor; the failed case fails on eight checks), the four summaries, the preconditions rows

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-06 17:47:31 +00:00
parent 2439d18c03
commit f35cf492bf
6 changed files with 2121 additions and 1 deletions

View file

@ -0,0 +1,533 @@
{
"pass": false,
"expect": "flip",
"signals": [
4,
4,
3
],
"checks": {
"zero_rejected_by_miners": true,
"zero_rejected_by_nodes": true,
"sinks_agree": true,
"block_counts_agree": true,
"miners_agree_on_every_program": true,
"window_line_on_every_node": true,
"every_node_signals_its_byte": true,
"chain_carries_the_bytes": false,
"template_switched_to_v4": false,
"switched_at_the_first_full_window_epoch": false,
"switched_before_the_floor": false,
"signal_line_on_every_node_same_epoch": false,
"signal_share_at_or_above_threshold": false,
"blocks_on_both_sides": false,
"v4_ids_equal_the_cli_v4_id": false,
"v4_ids_differ_from_the_same_seed_v3_id": false
},
"window": 120,
"floor": "never",
"v3_activation": 60,
"epoch_blocks": 60,
"lead": 10,
"first_full_window_epoch": 3,
"floor_epoch": null,
"node": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-ca3v4/target-ca3v4/release/igneumd",
"miner": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-ca3v4/target-ca3v4/release/igneum-miner",
"template_switch": null,
"run_ended_at_s": 391.2,
"final_daa": 420,
"max_epoch_seen": 7,
"epochs": {
"0": {
"class": 2,
"firstSeenDaa": 0,
"at": 4.7,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"1": {
"class": 3,
"firstSeenDaa": 60,
"at": 29.7,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 7288,
"signal_epoch": null
},
"2": {
"class": 3,
"firstSeenDaa": 120,
"at": 107.8,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6890,
"signal_epoch": null
},
"3": {
"class": 3,
"firstSeenDaa": 180,
"at": 162.9,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6833,
"signal_epoch": null
},
"4": {
"class": 3,
"firstSeenDaa": 240,
"at": 222,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6666,
"signal_epoch": null
},
"5": {
"class": 3,
"firstSeenDaa": 300,
"at": 279,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6250,
"signal_epoch": null
},
"6": {
"class": 3,
"firstSeenDaa": 360,
"at": 338.1,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6666,
"signal_epoch": null
},
"7": {
"class": 3,
"firstSeenDaa": 420,
"at": 391.2,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6666,
"signal_epoch": null
}
},
"blocks": {
"total": 423,
"before_boundary": 423,
"after_boundary": 0,
"version_bytes": {
"0": 1,
"3": 139,
"4": 283
},
"signal_share_bps_on_chain": 6690
},
"programs": [
{
"epoch": 0,
"class": "v2",
"program_id": "8f8806638d59850f",
"seed": "234e082d653dc69d",
"miners": 3,
"disagree": false
},
{
"epoch": 1,
"class": "v3",
"program_id": "4b212c0be9e6fe63",
"seed": "135da54d125df437",
"miners": 3,
"disagree": false
},
{
"epoch": 2,
"class": "v3",
"program_id": "ee3ac1e30bf65e70",
"seed": "c59a2e57f4b8d7a5",
"miners": 3,
"disagree": false
},
{
"epoch": 3,
"class": "v3",
"program_id": "9f029268a9045087",
"seed": "da24c710fa33c22f",
"miners": 3,
"disagree": false
},
{
"epoch": 4,
"class": "v3",
"program_id": "3b36a0088571d624",
"seed": "c99ee1f5201c6237",
"miners": 3,
"disagree": false
},
{
"epoch": 5,
"class": "v3",
"program_id": "0045b23258d669cc",
"seed": "6890cf1861d53035",
"miners": 3,
"disagree": false
},
{
"epoch": 6,
"class": "v3",
"program_id": "58f1b31878fa2f07",
"seed": "10d336969f4efd63",
"miners": 3,
"disagree": false
},
{
"epoch": 7,
"class": "v3",
"program_id": "2a0d9087b89d7a9c",
"seed": "7290dc7ee9b9c29a",
"miners": 3,
"disagree": false
}
],
"program_id_rows": [],
"accepted_per_miner": [
138,
145,
139
],
"rejected_by_miners": [
0,
0,
0
],
"rejected_by_nodes": [
0,
0,
0
],
"sinks": [
"ca58bef3d51cfa4a",
"ca58bef3d51cfa4a",
"ca58bef3d51cfa4a"
],
"block_counts": [
422,
422,
422
],
"signal_lines": [
null,
null,
null
],
"floor_lines": [
"Program class v4 from the override file: never",
"Program class v4 from the override file: never",
"Program class v4 from the override file: never"
],
"samples": [
{
"t": 4.7,
"daa": 0,
"epoch": 0,
"class": 2,
"bps": 0,
"nodes": [
"0/234e082d",
"0/234e082d",
"0/234e082d"
]
},
{
"t": 19.7,
"daa": 42,
"epoch": 0,
"class": 2,
"bps": 7317,
"nodes": [
"42/b548603c",
"42/b548603c",
"42/b548603c"
]
},
{
"t": 34.7,
"daa": 65,
"epoch": 1,
"class": 3,
"bps": 7031,
"nodes": [
"65/1b29b2e8",
"65/1b29b2e8",
"65/1b29b2e8"
]
},
{
"t": 49.7,
"daa": 67,
"epoch": 1,
"class": 3,
"bps": 7121,
"nodes": [
"67/36bc6a1c",
"67/36bc6a1c",
"67/36bc6a1c"
]
},
{
"t": 64.7,
"daa": 76,
"epoch": 1,
"class": 3,
"bps": 7066,
"nodes": [
"76/e4a48be8",
"76/e4a48be8",
"76/e4a48be8"
]
},
{
"t": 79.8,
"daa": 91,
"epoch": 1,
"class": 3,
"bps": 7111,
"nodes": [
"91/d77402dd",
"91/d77402dd",
"91/d77402dd"
]
},
{
"t": 94.8,
"daa": 111,
"epoch": 1,
"class": 3,
"bps": 6636,
"nodes": [
"111/f0e19e53",
"111/f0e19e53",
"111/f0e19e53"
]
},
{
"t": 109.8,
"daa": 122,
"epoch": 2,
"class": 3,
"bps": 6890,
"nodes": [
"122/5adb1052",
"122/5adb1052",
"122/5adb1052"
]
},
{
"t": 124.8,
"daa": 135,
"epoch": 2,
"class": 3,
"bps": 6750,
"nodes": [
"135/a49b1340",
"135/a49b1340",
"135/a49b1340"
]
},
{
"t": 139.9,
"daa": 152,
"epoch": 2,
"class": 3,
"bps": 6500,
"nodes": [
"152/e1c73ab2",
"152/e1c73ab2",
"152/e1c73ab2"
]
},
{
"t": 154.9,
"daa": 169,
"epoch": 2,
"class": 3,
"bps": 6583,
"nodes": [
"169/e0fc0185",
"169/e0fc0185",
"169/e0fc0185"
]
},
{
"t": 169.9,
"daa": 186,
"epoch": 3,
"class": 3,
"bps": 6833,
"nodes": [
"186/2cba3315",
"186/2cba3315",
"186/2cba3315"
]
},
{
"t": 184.9,
"daa": 207,
"epoch": 3,
"class": 3,
"bps": 6583,
"nodes": [
"207/a1e09949",
"207/a1e09949",
"207/a1e09949"
]
},
{
"t": 199.9,
"daa": 223,
"epoch": 3,
"class": 3,
"bps": 6750,
"nodes": [
"223/2313964e",
"223/2313964e",
"223/2313964e"
]
},
{
"t": 215,
"daa": 230,
"epoch": 3,
"class": 3,
"bps": 6916,
"nodes": [
"230/c99ee1f5",
"230/c99ee1f5",
"230/c99ee1f5"
]
},
{
"t": 230,
"daa": 246,
"epoch": 4,
"class": 3,
"bps": 6750,
"nodes": [
"246/3500100b",
"246/3500100b",
"246/3500100b"
]
},
{
"t": 245,
"daa": 262,
"epoch": 4,
"class": 3,
"bps": 6500,
"nodes": [
"262/aecdd009",
"262/aecdd009",
"262/aecdd009"
]
},
{
"t": 260,
"daa": 274,
"epoch": 4,
"class": 3,
"bps": 6666,
"nodes": [
"274/c93ff1f0",
"274/c93ff1f0",
"274/c93ff1f0"
]
},
{
"t": 275,
"daa": 293,
"epoch": 4,
"class": 3,
"bps": 6583,
"nodes": [
"293/c1937fd0",
"293/c1937fd0",
"293/c1937fd0"
]
},
{
"t": 290.1,
"daa": 311,
"epoch": 5,
"class": 3,
"bps": 6500,
"nodes": [
"311/47520bf7",
"311/47520bf7",
"311/47520bf7"
]
},
{
"t": 305.1,
"daa": 328,
"epoch": 5,
"class": 3,
"bps": 6916,
"nodes": [
"328/ed9acfc1",
"328/ed9acfc1",
"328/ed9acfc1"
]
},
{
"t": 320.1,
"daa": 343,
"epoch": 5,
"class": 3,
"bps": 6750,
"nodes": [
"343/6553cec0",
"343/6553cec0",
"343/6553cec0"
]
},
{
"t": 335.1,
"daa": 357,
"epoch": 5,
"class": 3,
"bps": 6666,
"nodes": [
"357/f444a87b",
"357/f444a87b",
"357/f444a87b"
]
},
{
"t": 350.1,
"daa": 368,
"epoch": 6,
"class": 3,
"bps": 6583,
"nodes": [
"368/af2319fb",
"368/af2319fb",
"368/af2319fb"
]
},
{
"t": 365.2,
"daa": 381,
"epoch": 6,
"class": 3,
"bps": 6666,
"nodes": [
"381/69556871",
"381/69556871",
"381/69556871"
]
},
{
"t": 380.2,
"daa": 404,
"epoch": 6,
"class": 3,
"bps": 6750,
"nodes": [
"404/7c17470a",
"404/7c17470a",
"404/7c17470a"
]
}
]
}

View file

@ -0,0 +1,433 @@
{
"pass": true,
"expect": "flip",
"signals": [
4,
4,
4
],
"checks": {
"zero_rejected_by_miners": true,
"zero_rejected_by_nodes": true,
"sinks_agree": true,
"block_counts_agree": true,
"miners_agree_on_every_program": true,
"window_line_on_every_node": true,
"every_node_signals_its_byte": true,
"chain_carries_the_bytes": true,
"template_switched_to_v4": true,
"switched_at_the_first_full_window_epoch": true,
"switched_before_the_floor": true,
"signal_line_on_every_node_same_epoch": true,
"signal_share_at_or_above_threshold": true,
"blocks_on_both_sides": true,
"v4_ids_equal_the_cli_v4_id": true,
"v4_ids_differ_from_the_same_seed_v3_id": true
},
"window": 120,
"floor": "never",
"v3_activation": 60,
"epoch_blocks": 60,
"lead": 10,
"first_full_window_epoch": 3,
"floor_epoch": null,
"node": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-ca3v4/target-ca3v4/release/igneumd",
"miner": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-ca3v4/target-ca3v4/release/igneum-miner",
"template_switch": {
"epoch": 3,
"daa": 180,
"at": 156.9
},
"run_ended_at_s": 271,
"final_daa": 301,
"max_epoch_seen": 5,
"epochs": {
"0": {
"class": 2,
"firstSeenDaa": 0,
"at": 4.6,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"1": {
"class": 3,
"firstSeenDaa": 60,
"at": 24.7,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 10000,
"signal_epoch": null
},
"2": {
"class": 3,
"firstSeenDaa": 121,
"at": 98.8,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 10000,
"signal_epoch": null
},
"3": {
"class": 4,
"firstSeenDaa": 180,
"at": 156.9,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 10000,
"signal_epoch": 3
},
"4": {
"class": 4,
"firstSeenDaa": 240,
"at": 213.9,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 10000,
"signal_epoch": null
},
"5": {
"class": 4,
"firstSeenDaa": 301,
"at": 271,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 10000,
"signal_epoch": null
}
},
"blocks": {
"total": 305,
"before_boundary": 181,
"after_boundary": 124,
"version_bytes": {
"0": 1,
"4": 304
},
"signal_share_bps_on_chain": 9967
},
"programs": [
{
"epoch": 0,
"class": "v2",
"program_id": "8f8806638d59850f",
"seed": "234e082d653dc69d",
"miners": 3,
"disagree": false
},
{
"epoch": 1,
"class": "v3",
"program_id": "96c2b5e891a1cec6",
"seed": "dc3460d3c2c7e252",
"miners": 3,
"disagree": false
},
{
"epoch": 2,
"class": "v3",
"program_id": "9210599b352bb3d9",
"seed": "c80aefcfef313159",
"miners": 3,
"disagree": false
},
{
"epoch": 3,
"class": "v4",
"program_id": "e48e6be7c6699824",
"seed": "13629115abf4b06b",
"miners": 3,
"disagree": false
},
{
"epoch": 4,
"class": "v4",
"program_id": "996db27539593c5c",
"seed": "d8820f2c76bb1011",
"miners": 3,
"disagree": false
},
{
"epoch": 5,
"class": "v4",
"program_id": "ebf1b4ee74ef5b04",
"seed": "8b8a1e7ccb10053c",
"miners": 3,
"disagree": false
}
],
"program_id_rows": [
{
"epoch": 3,
"seed": "13629115abf4b06b",
"miners_id": "e48e6be7c6699824",
"miners": 3,
"cli_v3": "6847355c88e8215f",
"cli_v4": "e48e6be7c6699824"
},
{
"epoch": 4,
"seed": "d8820f2c76bb1011",
"miners_id": "996db27539593c5c",
"miners": 3,
"cli_v3": "34725526fbe79603",
"cli_v4": "996db27539593c5c"
},
{
"epoch": 5,
"seed": "8b8a1e7ccb10053c",
"miners_id": "ebf1b4ee74ef5b04",
"miners": 3,
"cli_v3": "ed109252a3333d97",
"cli_v4": "ebf1b4ee74ef5b04"
}
],
"accepted_per_miner": [
105,
102,
97
],
"rejected_by_miners": [
0,
0,
0
],
"rejected_by_nodes": [
0,
0,
0
],
"sinks": [
"322e4a57824ab7fd",
"322e4a57824ab7fd",
"322e4a57824ab7fd"
],
"block_counts": [
304,
304,
304
],
"signal_lines": [
"Program class v4 by miner signal: epoch 3 (share 10000 bps over 120 DAA ending at seed block 13629115abf4b06bd9b07dfee66c7aab817cef268a34c02f8da6884d52f26017, threshold 9500 bps, 120 of 120 blue blocks)",
"Program class v4 by miner signal: epoch 3 (share 10000 bps over 120 DAA ending at seed block 13629115abf4b06bd9b07dfee66c7aab817cef268a34c02f8da6884d52f26017, threshold 9500 bps, 120 of 120 blue blocks)",
"Program class v4 by miner signal: epoch 3 (share 10000 bps over 120 DAA ending at seed block 13629115abf4b06bd9b07dfee66c7aab817cef268a34c02f8da6884d52f26017, threshold 9500 bps, 120 of 120 blue blocks)"
],
"floor_lines": [
"Program class v4 from the override file: never",
"Program class v4 from the override file: never",
"Program class v4 from the override file: never"
],
"samples": [
{
"t": 4.6,
"daa": 0,
"epoch": 0,
"class": 2,
"bps": 0,
"nodes": [
"0/234e082d",
"0/234e082d",
"0/234e082d"
]
},
{
"t": 19.7,
"daa": 45,
"epoch": 0,
"class": 2,
"bps": 10000,
"nodes": [
"45/90a214d6",
"45/90a214d6",
"45/90a214d6"
]
},
{
"t": 34.7,
"daa": 64,
"epoch": 1,
"class": 3,
"bps": 10000,
"nodes": [
"64/ccc78501",
"64/ccc78501",
"64/ccc78501"
]
},
{
"t": 49.7,
"daa": 67,
"epoch": 1,
"class": 3,
"bps": 10000,
"nodes": [
"67/30734219",
"67/30734219",
"67/30734219"
]
},
{
"t": 64.7,
"daa": 77,
"epoch": 1,
"class": 3,
"bps": 10000,
"nodes": [
"77/fb4c94d8",
"77/fb4c94d8",
"77/fb4c94d8"
]
},
{
"t": 79.7,
"daa": 92,
"epoch": 1,
"class": 3,
"bps": 10000,
"nodes": [
"92/fa61d646",
"92/fa61d646",
"92/fa61d646"
]
},
{
"t": 94.8,
"daa": 113,
"epoch": 1,
"class": 3,
"bps": 10000,
"nodes": [
"113/a5072844",
"113/a5072844",
"113/a5072844"
]
},
{
"t": 109.8,
"daa": 131,
"epoch": 2,
"class": 3,
"bps": 10000,
"nodes": [
"131/d88a9f22",
"131/d88a9f22",
"131/d88a9f22"
]
},
{
"t": 124.8,
"daa": 157,
"epoch": 2,
"class": 3,
"bps": 10000,
"nodes": [
"157/65814d6e",
"157/65814d6e",
"157/65814d6e"
]
},
{
"t": 139.8,
"daa": 165,
"epoch": 2,
"class": 3,
"bps": 10000,
"nodes": [
"165/ed5654bb",
"165/ed5654bb",
"165/ed5654bb"
]
},
{
"t": 154.9,
"daa": 177,
"epoch": 2,
"class": 3,
"bps": 10000,
"nodes": [
"177/d0f60a64",
"177/d0f60a64",
"177/d0f60a64"
]
},
{
"t": 169.9,
"daa": 192,
"epoch": 3,
"class": 4,
"bps": 10000,
"nodes": [
"192/dce1a9f6",
"192/dce1a9f6",
"192/dce1a9f6"
]
},
{
"t": 184.9,
"daa": 206,
"epoch": 3,
"class": 4,
"bps": 10000,
"nodes": [
"206/617ab9be",
"206/617ab9be",
"206/617ab9be"
]
},
{
"t": 199.9,
"daa": 222,
"epoch": 3,
"class": 4,
"bps": 10000,
"nodes": [
"222/e04f63eb",
"222/e04f63eb",
"222/e04f63eb"
]
},
{
"t": 214.9,
"daa": 242,
"epoch": 4,
"class": 4,
"bps": 10000,
"nodes": [
"242/a214e080",
"242/a214e080",
"242/a214e080"
]
},
{
"t": 230,
"daa": 253,
"epoch": 4,
"class": 4,
"bps": 10000,
"nodes": [
"253/c5f37595",
"253/c5f37595",
"253/c5f37595"
]
},
{
"t": 245,
"daa": 269,
"epoch": 4,
"class": 4,
"bps": 10000,
"nodes": [
"269/0ac500c5",
"269/0ac500c5",
"269/0ac500c5"
]
},
{
"t": 260,
"daa": 285,
"epoch": 4,
"class": 4,
"bps": 10000,
"nodes": [
"285/f5f748e0",
"285/f5f748e0",
"285/f5f748e0"
]
}
]
}

View file

@ -0,0 +1,583 @@
{
"pass": true,
"expect": "floor",
"signals": [
3,
3,
3
],
"checks": {
"zero_rejected_by_miners": true,
"zero_rejected_by_nodes": true,
"sinks_agree": true,
"block_counts_agree": true,
"miners_agree_on_every_program": true,
"window_line_on_every_node": true,
"every_node_signals_its_byte": true,
"chain_carries_the_bytes": true,
"template_switched_to_v4": true,
"switched_at_the_floor_epoch": true,
"no_signal_line_on_any_node": true,
"floor_line_names_the_floor_epoch": true,
"blocks_on_both_sides": true,
"v4_ids_equal_the_cli_v4_id": true
},
"window": 120,
"floor": 300,
"v3_activation": 60,
"epoch_blocks": 60,
"lead": 10,
"first_full_window_epoch": 3,
"floor_epoch": 5,
"node": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-ca3v4/target-ca3v4/release/igneumd",
"miner": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-ca3v4/target-ca3v4/release/igneum-miner",
"template_switch": {
"epoch": 5,
"daa": 300,
"at": 286
},
"run_ended_at_s": 410.2,
"final_daa": 421,
"max_epoch_seen": 7,
"epochs": {
"0": {
"class": 2,
"firstSeenDaa": 0,
"at": 4.6,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"1": {
"class": 3,
"firstSeenDaa": 60,
"at": 32.7,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"2": {
"class": 3,
"firstSeenDaa": 120,
"at": 106.8,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"3": {
"class": 3,
"firstSeenDaa": 180,
"at": 166.9,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"4": {
"class": 3,
"firstSeenDaa": 242,
"at": 222,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"5": {
"class": 4,
"firstSeenDaa": 300,
"at": 286,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"6": {
"class": 4,
"firstSeenDaa": 360,
"at": 346.1,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"7": {
"class": 4,
"firstSeenDaa": 421,
"at": 410.2,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
}
},
"blocks": {
"total": 425,
"before_boundary": 301,
"after_boundary": 124,
"version_bytes": {
"0": 1,
"3": 424
},
"signal_share_bps_on_chain": 0
},
"programs": [
{
"epoch": 0,
"class": "v2",
"program_id": "8f8806638d59850f",
"seed": "234e082d653dc69d",
"miners": 3,
"disagree": false
},
{
"epoch": 1,
"class": "v3",
"program_id": "ab6cbb1e54ed5cce",
"seed": "64e53c286d8dd9fb",
"miners": 3,
"disagree": false
},
{
"epoch": 2,
"class": "v3",
"program_id": "cf71a8c93f39aba3",
"seed": "bf5fb4c810cbf7b9",
"miners": 3,
"disagree": false
},
{
"epoch": 3,
"class": "v3",
"program_id": "586eb24a6a1e956e",
"seed": "ca912ff9e0ce19eb",
"miners": 3,
"disagree": false
},
{
"epoch": 4,
"class": "v3",
"program_id": "179f30b619d3ae21",
"seed": "fd39032d68eaf42c",
"miners": 3,
"disagree": false
},
{
"epoch": 5,
"class": "v4",
"program_id": "99f8a29e69d425fd",
"seed": "55b4bb2409b9dac0",
"miners": 3,
"disagree": false
},
{
"epoch": 6,
"class": "v4",
"program_id": "13f24ad402624682",
"seed": "f6e6e2710786cb70",
"miners": 3,
"disagree": false
},
{
"epoch": 7,
"class": "v4",
"program_id": "ae4fe8f735e1e5da",
"seed": "f3106b9f844b01c3",
"miners": 3,
"disagree": false
}
],
"program_id_rows": [
{
"epoch": 5,
"seed": "55b4bb2409b9dac0",
"miners_id": "99f8a29e69d425fd",
"miners": 3,
"cli_v3": "48b8b87ff3a7e9ae",
"cli_v4": "99f8a29e69d425fd"
},
{
"epoch": 6,
"seed": "f6e6e2710786cb70",
"miners_id": "13f24ad402624682",
"miners": 3,
"cli_v3": "912bbdb803462a49",
"cli_v4": "13f24ad402624682"
},
{
"epoch": 7,
"seed": "f3106b9f844b01c3",
"miners_id": "ae4fe8f735e1e5da",
"miners": 3,
"cli_v3": "3df23fd83c687af9",
"cli_v4": "ae4fe8f735e1e5da"
}
],
"accepted_per_miner": [
130,
134,
160
],
"rejected_by_miners": [
0,
0,
0
],
"rejected_by_nodes": [
0,
0,
0
],
"sinks": [
"aa8755bf4c1cc9e2",
"aa8755bf4c1cc9e2",
"aa8755bf4c1cc9e2"
],
"block_counts": [
424,
424,
424
],
"signal_lines": [
null,
null,
null
],
"floor_lines": [
"Program class v4 from the override file: active from epoch 5 (DAA score 300 rounded up to the epoch boundary at 300, epochs of 60 DAA)",
"Program class v4 from the override file: active from epoch 5 (DAA score 300 rounded up to the epoch boundary at 300, epochs of 60 DAA)",
"Program class v4 from the override file: active from epoch 5 (DAA score 300 rounded up to the epoch boundary at 300, epochs of 60 DAA)"
],
"samples": [
{
"t": 4.6,
"daa": 0,
"epoch": 0,
"class": 2,
"bps": 0,
"nodes": [
"0/234e082d",
"0/234e082d",
"0/234e082d"
]
},
{
"t": 19.7,
"daa": 40,
"epoch": 0,
"class": 2,
"bps": 0,
"nodes": [
"40/bd7dc09a",
"40/bd7dc09a",
"40/bd7dc09a"
]
},
{
"t": 34.7,
"daa": 60,
"epoch": 1,
"class": 3,
"bps": 0,
"nodes": [
"60/0d0245d7",
"60/0d0245d7",
"60/0d0245d7"
]
},
{
"t": 49.7,
"daa": 66,
"epoch": 1,
"class": 3,
"bps": 0,
"nodes": [
"66/b31ac361",
"66/b31ac361",
"66/b31ac361"
]
},
{
"t": 64.7,
"daa": 75,
"epoch": 1,
"class": 3,
"bps": 0,
"nodes": [
"75/63b041c6",
"75/63b041c6",
"75/63b041c6"
]
},
{
"t": 79.7,
"daa": 94,
"epoch": 1,
"class": 3,
"bps": 0,
"nodes": [
"94/3ba72d05",
"94/3ba72d05",
"94/3ba72d05"
]
},
{
"t": 94.8,
"daa": 109,
"epoch": 1,
"class": 3,
"bps": 0,
"nodes": [
"109/08984ac2",
"109/08984ac2",
"109/08984ac2"
]
},
{
"t": 109.8,
"daa": 123,
"epoch": 2,
"class": 3,
"bps": 0,
"nodes": [
"123/735ce53a",
"123/735ce53a",
"123/735ce53a"
]
},
{
"t": 124.8,
"daa": 134,
"epoch": 2,
"class": 3,
"bps": 0,
"nodes": [
"134/b86e0b6c",
"134/b86e0b6c",
"134/b86e0b6c"
]
},
{
"t": 139.8,
"daa": 154,
"epoch": 2,
"class": 3,
"bps": 0,
"nodes": [
"154/e0278b3f",
"154/e0278b3f",
"154/e0278b3f"
]
},
{
"t": 154.9,
"daa": 167,
"epoch": 2,
"class": 3,
"bps": 0,
"nodes": [
"167/55672ada",
"167/55672ada",
"167/55672ada"
]
},
{
"t": 169.9,
"daa": 180,
"epoch": 3,
"class": 3,
"bps": 0,
"nodes": [
"180/2549aa1c",
"180/2549aa1c",
"180/2549aa1c"
]
},
{
"t": 184.9,
"daa": 199,
"epoch": 3,
"class": 3,
"bps": 0,
"nodes": [
"199/8deada07",
"199/8deada07",
"199/8deada07"
]
},
{
"t": 199.9,
"daa": 210,
"epoch": 3,
"class": 3,
"bps": 0,
"nodes": [
"210/b3c3984d",
"210/b3c3984d",
"210/b3c3984d"
]
},
{
"t": 214.9,
"daa": 228,
"epoch": 3,
"class": 3,
"bps": 0,
"nodes": [
"228/e863e711",
"228/e863e711",
"228/e863e711"
]
},
{
"t": 230,
"daa": 249,
"epoch": 4,
"class": 3,
"bps": 0,
"nodes": [
"249/30016453",
"249/30016453",
"249/30016453"
]
},
{
"t": 245,
"daa": 264,
"epoch": 4,
"class": 3,
"bps": 0,
"nodes": [
"264/7da6fa57",
"264/7da6fa57",
"264/7da6fa57"
]
},
{
"t": 260,
"daa": 285,
"epoch": 4,
"class": 3,
"bps": 0,
"nodes": [
"285/132339cf",
"285/132339cf",
"285/132339cf"
]
},
{
"t": 275,
"daa": 295,
"epoch": 4,
"class": 3,
"bps": 0,
"nodes": [
"295/f284c363",
"295/f284c363",
"295/f284c363"
]
},
{
"t": 290,
"daa": 304,
"epoch": 5,
"class": 4,
"bps": 0,
"nodes": [
"304/f7813a3d",
"304/f7813a3d",
"304/f7813a3d"
]
},
{
"t": 305.1,
"daa": 324,
"epoch": 5,
"class": 4,
"bps": 0,
"nodes": [
"324/2e0050f2",
"324/2e0050f2",
"324/2e0050f2"
]
},
{
"t": 320.1,
"daa": 337,
"epoch": 5,
"class": 4,
"bps": 0,
"nodes": [
"337/de4a3d18",
"337/de4a3d18",
"337/de4a3d18"
]
},
{
"t": 335.1,
"daa": 350,
"epoch": 5,
"class": 4,
"bps": 0,
"nodes": [
"350/f6e6e271",
"350/f6e6e271",
"350/f6e6e271"
]
},
{
"t": 350.1,
"daa": 362,
"epoch": 6,
"class": 4,
"bps": 0,
"nodes": [
"362/78e4df38",
"362/78e4df38",
"362/78e4df38"
]
},
{
"t": 365.1,
"daa": 380,
"epoch": 6,
"class": 4,
"bps": 0,
"nodes": [
"380/ad2ac8c4",
"380/ad2ac8c4",
"380/ad2ac8c4"
]
},
{
"t": 380.2,
"daa": 392,
"epoch": 6,
"class": 4,
"bps": 0,
"nodes": [
"392/fd59c498",
"392/fd59c498",
"392/fd59c498"
]
},
{
"t": 395.2,
"daa": 404,
"epoch": 6,
"class": 4,
"bps": 0,
"nodes": [
"404/179e8135",
"404/179e8135",
"404/179e8135"
]
},
{
"t": 410.2,
"daa": 421,
"epoch": 7,
"class": 4,
"bps": 0,
"nodes": [
"421/cf7d8a0f",
"421/cf7d8a0f",
"421/cf7d8a0f"
]
}
]
}

View file

@ -0,0 +1,554 @@
{
"pass": true,
"expect": "no-flip",
"signals": [
4,
4,
3
],
"checks": {
"zero_rejected_by_miners": true,
"zero_rejected_by_nodes": true,
"sinks_agree": true,
"block_counts_agree": true,
"miners_agree_on_every_program": true,
"window_line_on_every_node": true,
"every_node_signals_its_byte": true,
"chain_carries_the_bytes": true,
"template_never_v4": true,
"no_signal_line_on_any_node": true,
"ran_the_epochs": true,
"v3_programs_seen": true,
"signal_share_under_threshold_on_chain": true
},
"window": 120,
"floor": "never",
"v3_activation": 60,
"epoch_blocks": 60,
"lead": 10,
"first_full_window_epoch": 3,
"floor_epoch": null,
"node": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-ca3v4/target-ca3v4/release/igneumd",
"miner": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-ca3v4/target-ca3v4/release/igneum-miner",
"template_switch": null,
"run_ended_at_s": 417.2,
"final_daa": 421,
"max_epoch_seen": 7,
"epochs": {
"0": {
"class": 2,
"firstSeenDaa": 0,
"at": 4.6,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 0,
"signal_epoch": null
},
"1": {
"class": 3,
"firstSeenDaa": 60,
"at": 23.7,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 7068,
"signal_epoch": null
},
"2": {
"class": 3,
"firstSeenDaa": 121,
"at": 98.8,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6890,
"signal_epoch": null
},
"3": {
"class": 3,
"firstSeenDaa": 180,
"at": 160.9,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6333,
"signal_epoch": null
},
"4": {
"class": 3,
"firstSeenDaa": 241,
"at": 226,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6750,
"signal_epoch": null
},
"5": {
"class": 3,
"firstSeenDaa": 300,
"at": 284,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 7583,
"signal_epoch": null
},
"6": {
"class": 3,
"firstSeenDaa": 361,
"at": 343.1,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6833,
"signal_epoch": null
},
"7": {
"class": 3,
"firstSeenDaa": 421,
"at": 417.2,
"eraSeed": "234e082d653dc69db36d875b256d0f5f4a123b353d6aa069c3c7aa9aa6c46062",
"bps": 6166,
"signal_epoch": null
}
},
"blocks": {
"total": 425,
"before_boundary": 425,
"after_boundary": 0,
"version_bytes": {
"0": 1,
"3": 138,
"4": 286
},
"signal_share_bps_on_chain": 6729
},
"programs": [
{
"epoch": 0,
"class": "v2",
"program_id": "8f8806638d59850f",
"seed": "234e082d653dc69d",
"miners": 3,
"disagree": false
},
{
"epoch": 1,
"class": "v3",
"program_id": "be8294c0126f1faf",
"seed": "b605d5200d048815",
"miners": 3,
"disagree": false
},
{
"epoch": 2,
"class": "v3",
"program_id": "ed3e4ffbf62a7424",
"seed": "c34f4c0e895a7365",
"miners": 3,
"disagree": false
},
{
"epoch": 3,
"class": "v3",
"program_id": "32b5ea953b6266b9",
"seed": "1df8b7b8f7f317c7",
"miners": 3,
"disagree": false
},
{
"epoch": 4,
"class": "v3",
"program_id": "4a936017bde53483",
"seed": "b99035c2fd14dd49",
"miners": 3,
"disagree": false
},
{
"epoch": 5,
"class": "v3",
"program_id": "9eb843a8976bad11",
"seed": "38b40c1bf554fe9c",
"miners": 3,
"disagree": false
},
{
"epoch": 6,
"class": "v3",
"program_id": "dd0155047fe53f92",
"seed": "e09a1634afda0783",
"miners": 3,
"disagree": false
},
{
"epoch": 7,
"class": "v3",
"program_id": "e21684fe7648d6b4",
"seed": "414f83716dfd9e60",
"miners": 3,
"disagree": false
}
],
"program_id_rows": [],
"accepted_per_miner": [
141,
145,
138
],
"rejected_by_miners": [
0,
0,
0
],
"rejected_by_nodes": [
0,
0,
0
],
"sinks": [
"d845fdd016a25425",
"d845fdd016a25425",
"d845fdd016a25425"
],
"block_counts": [
424,
424,
424
],
"signal_lines": [
null,
null,
null
],
"floor_lines": [
"Program class v4 from the override file: never",
"Program class v4 from the override file: never",
"Program class v4 from the override file: never"
],
"samples": [
{
"t": 4.6,
"daa": 0,
"epoch": 0,
"class": 2,
"bps": 0,
"nodes": [
"0/234e082d",
"0/234e082d",
"0/234e082d"
]
},
{
"t": 19.7,
"daa": 49,
"epoch": 0,
"class": 2,
"bps": 7659,
"nodes": [
"49/21e82fed",
"49/21e82fed",
"49/21e82fed"
]
},
{
"t": 34.7,
"daa": 64,
"epoch": 1,
"class": 3,
"bps": 7258,
"nodes": [
"64/5e7ac558",
"64/5e7ac558",
"64/5e7ac558"
]
},
{
"t": 49.7,
"daa": 75,
"epoch": 1,
"class": 3,
"bps": 7397,
"nodes": [
"75/eec9a8c7",
"75/eec9a8c7",
"75/eec9a8c7"
]
},
{
"t": 64.7,
"daa": 87,
"epoch": 1,
"class": 3,
"bps": 7176,
"nodes": [
"87/df1f9872",
"87/df1f9872",
"87/df1f9872"
]
},
{
"t": 79.8,
"daa": 106,
"epoch": 1,
"class": 3,
"bps": 6923,
"nodes": [
"106/738281d2",
"106/738281d2",
"106/738281d2"
]
},
{
"t": 94.8,
"daa": 118,
"epoch": 1,
"class": 3,
"bps": 6896,
"nodes": [
"118/98818bdc",
"118/98818bdc",
"118/98818bdc"
]
},
{
"t": 109.8,
"daa": 128,
"epoch": 2,
"class": 3,
"bps": 6750,
"nodes": [
"128/c1b1a275",
"128/c1b1a275",
"128/c1b1a275"
]
},
{
"t": 124.8,
"daa": 150,
"epoch": 2,
"class": 3,
"bps": 6250,
"nodes": [
"150/11045465",
"150/11045465",
"150/11045465"
]
},
{
"t": 139.8,
"daa": 161,
"epoch": 2,
"class": 3,
"bps": 6166,
"nodes": [
"161/161c74c3",
"161/161c74c3",
"161/161c74c3"
]
},
{
"t": 154.9,
"daa": 171,
"epoch": 2,
"class": 3,
"bps": 6333,
"nodes": [
"171/2419390d",
"171/2419390d",
"171/2419390d"
]
},
{
"t": 169.9,
"daa": 191,
"epoch": 3,
"class": 3,
"bps": 6083,
"nodes": [
"191/ae9f7aa0",
"191/ae9f7aa0",
"191/ae9f7aa0"
]
},
{
"t": 184.9,
"daa": 206,
"epoch": 3,
"class": 3,
"bps": 6583,
"nodes": [
"206/557726ec",
"206/557726ec",
"206/557726ec"
]
},
{
"t": 199.9,
"daa": 221,
"epoch": 3,
"class": 3,
"bps": 6833,
"nodes": [
"221/2458f010",
"221/2458f010",
"221/2458f010"
]
},
{
"t": 214.9,
"daa": 230,
"epoch": 3,
"class": 3,
"bps": 6554,
"nodes": [
"230/b99035c2",
"230/b99035c2",
"230/b99035c2"
]
},
{
"t": 230,
"daa": 246,
"epoch": 4,
"class": 3,
"bps": 6916,
"nodes": [
"246/8f951189",
"246/8f951189",
"246/8f951189"
]
},
{
"t": 245,
"daa": 265,
"epoch": 4,
"class": 3,
"bps": 7416,
"nodes": [
"265/6baad73f",
"265/6baad73f",
"265/6baad73f"
]
},
{
"t": 260,
"daa": 278,
"epoch": 4,
"class": 3,
"bps": 7416,
"nodes": [
"278/cb17784e",
"278/cb17784e",
"278/cb17784e"
]
},
{
"t": 275,
"daa": 289,
"epoch": 4,
"class": 3,
"bps": 7416,
"nodes": [
"289/f8628f1e",
"289/f8628f1e",
"289/f8628f1e"
]
},
{
"t": 290.1,
"daa": 308,
"epoch": 5,
"class": 3,
"bps": 7666,
"nodes": [
"308/77b769ef",
"308/77b769ef",
"308/77b769ef"
]
},
{
"t": 305.1,
"daa": 319,
"epoch": 5,
"class": 3,
"bps": 7250,
"nodes": [
"319/ac915fd6",
"319/ac915fd6",
"319/ac915fd6"
]
},
{
"t": 320.1,
"daa": 335,
"epoch": 5,
"class": 3,
"bps": 6583,
"nodes": [
"335/eef7dabd",
"335/eef7dabd",
"335/eef7dabd"
]
},
{
"t": 335.1,
"daa": 353,
"epoch": 5,
"class": 3,
"bps": 6916,
"nodes": [
"353/4bf46535",
"353/4bf46535",
"353/4bf46535"
]
},
{
"t": 350.1,
"daa": 370,
"epoch": 6,
"class": 3,
"bps": 6750,
"nodes": [
"370/1af27f0a",
"370/1af27f0a",
"370/1af27f0a"
]
},
{
"t": 365.2,
"daa": 385,
"epoch": 6,
"class": 3,
"bps": 6583,
"nodes": [
"385/b23c95d5",
"385/b23c95d5",
"385/b23c95d5"
]
},
{
"t": 380.2,
"daa": 392,
"epoch": 6,
"class": 3,
"bps": 6416,
"nodes": [
"392/678e7203",
"392/678e7203",
"392/678e7203"
]
},
{
"t": 395.2,
"daa": 400,
"epoch": 6,
"class": 3,
"bps": 6583,
"nodes": [
"400/c5ca53eb",
"400/c5ca53eb",
"400/c5ca53eb"
]
},
{
"t": 410.2,
"daa": 413,
"epoch": 6,
"class": 3,
"bps": 6000,
"nodes": [
"413/7b4f6674",
"413/7b4f6674",
"413/7b4f6674"
]
}
]
}

View file

@ -9,4 +9,12 @@
| G5 | the PC-built Windows workers and the Mac workers from the same commit | every sha256 listed; the two Windows workers carry the resource block; no packaging, no DMG, no manifest | GREEN on the program-id fix 7c22d0d (packfile.h and main.swift moved, so the workers were rebuilt from it; the earlier pair from a522d04 is superseded): igneum-worker-cuda.exe 3bc8ad8f69ad97d6a9491a734ef16e3cf10b3884d442fb1e5a490c751ae578c5 (1,536,512 bytes), igneum-worker-opencl.exe 16ef015470d7a45c5af5488dcc68a29c5e95f94487eb05e26f1bf418e6dd511f (478,208), `verify-exe.py`: both carry the coin icon and the version block; the Mac worker igneum-bench f9ca4b075a9a9c25afd8feeccd1339fbb6bb4c3728ffeddab9f549cd3c1725a4 (665,128, the binary of the G4 re-run); the node and app binaries of job build-20261006-155958 stand (the fork did not change). The a522d04 row for the record: the build job builds the node and the app only (`push-build-inputs.sh` writes two build units, `jobbuild.rs` has no worker unit), so the Windows workers were cross-built on the Mac from the committed tree a522d04 with `proto-cuda/nvrtc/build-windows.sh` under the build lock (mingw-w64, static, windres resource block), as 0.3.11's G5 row was: igneum-worker-cuda.exe e563126ed1d8ab8f6803ead89acca5b6fcb03203e6b87b70e0aec85e8e1046e4 (1,536,512 bytes), igneum-worker-opencl.exe 7fce1249d443aaf73a29b7474c1ef4084f3529b5bec3a2dc6bb97e624561a5e8 (478,208), `verify-exe.py`: both carry the coin icon and the version block (a first build of the same sources before the commit gave 26400edf... and 438e608a...: mingw stamps a link time, so the pair is not bit-reproducible; the sizes match the 0.3.11 pair, 1,536,512 and 478,208, and the sha256s differ from 0.3.11's 2b3b8c92... and edc4a75d...: the generator-4 rule is in them). The Mac worker from the same tree: igneum-bench 30c70754097dafbc3144a0c0f192526a0638089e5dde49ce46abb7a948dceade (665,128 bytes, built 16:47Z from `main.swift` as committed in a522d04, the binary G4b mined with). The same build job's (build-20261006-155958) node and app outputs from fork 5f7e0543, every sha256 verified against the PC's lines on fetch: igneumd.exe 140be25e486fe1634500b6e66eedfaca9fa6561d652f3e219b5a7a2bc377e766 (51,752,448), igneum-miner.exe ceb1e691ad57f58d09d5a0ff4cb5658aea0604d23ceb90b6a847a2c36a0bf81c (11,118,080), igneum-app.exe bfa3b871f17b69fd0c0c01a6f9fcac8964efb54dc10fd25db13422ba8f96d51f (3,065,344, PE and resource block ok); Linux igneumd d44b735869b129401d68f18786b4a5f16c22d00b682bd41a8e5022a01f7d7527 (49,603,112), igneum-miner a7985111d4972f4b67a9409b831a8c7af746508ebb3b19fc927aaddcfa2e2413, igneum-app 222f30c00bb9725f3127452f3d52403b380e25abaf9fba5c925839574cf1dabc; kept under the job's --out dir with --no-place. No packaging, no DMG, no manifest |
| G6 | the node change on a fork branch from the current release tip with suites green on PC 2, with the igneum-pow feature | the build job id and its SUMMARY line; the v4 engine test named in the output | GREEN. PC 2 job `build-20261006-155958` (fork ca3-v4-node 5f7e0543, main a522d04; published 15:59:58Z after the clear file and under the mkdir lock, taken 15:58:50Z, released 16:08:06Z after the closing report; the installed app untouched, the prover left on), `node tools/build-job.mjs run --target 1ccfe586 --node vendor/igneum-node-ca3v4 --node-tests "kaspa-consensus kaspa-consensus-core igneum-exec kaspa-pow igneum-miner kaspa-p2p-flows" --app-tests igneum-app --no-place`: `done exit 0 after 392 s: node ca3-v4-node 5f7e0543 app 0.3.11: every stage ok; 9 files uploaded (46 MB); 6 min of 40`; the test stage 50 s, exit 0 on both units: kaspa-consensus 98 passed (3 ignored; `ban_is_decided_by_the_carrying_block_so_nodes_agree_on_every_voter_list ... ok`, so 2.0's flake did not recur and no re-run was needed), kaspa-consensus-core 109 + 7 (`override_params_carry_the_program_class_v4_activation ... ok`), igneum-exec (its per-crate line is not in the relay's upload of the report, which keeps the stage's tail; the unit exited 0, so it passed), kaspa-pow 15 (`program_class_v3_seeds_hash_their_own_program_over_their_own_cache ... ok` and `program_class_v4_seeds_hash_the_shadow_program_over_the_v3_day_cache ... ok`, both `#[cfg(feature = "igneum-pow")]`), igneum-miner (the same: not in the upload, in the exit-0 unit), kaspa-p2p-flows 33, igneum-app 112 + 26 + 8. The feature: `build-job.mjs` and `push-build-inputs.sh` carry no `--features` for the test units (the manifest's `tests` entries are `dir` and `packages` only; the build units have `kaspad/igneum-pow`), and the PC's `jobbuild.rs` runs `cargo test --release -p ... ` in ONE invocation per unit, where `igneum-miner` depends on `kaspa-pow` with `features = ["igneum-pow"]`, so cargo's feature unification turns the feature on for kaspa-pow's test target in that invocation: the two engine tests above ran on PC 2 with the feature, named in the report, which is the evidence main asked for. The same two suites also pass on the Mac with the flag explicit (`cargo test --release -p kaspa-pow --features igneum-pow`: 15; `-p kaspa-consensus-core`: 109 + 7). What the tool lacks: a `features` key on a test unit; not added here (a change to the PC's installed app would be needed to honour it) |
## The cut preconditions (the coordinator's second brief, 6 October 2026 evening)
| # | Gate | Evidence required | State |
|---|---|---|---|
| P1 | the rehearsal plan and the v4 override object for the rented fleet | `docs/plans/counter-asic-3-rehearsal.md`; the objects with their digests | WRITTEN (not run: the fleet agent runs it): the publish object (the live 13 fields plus the floor `N6` and the window 86,400; digest `ac8e60ce205852bdda6b554f8cbfbd9dbb040187f487cbd8affe8103633dfd56` at the worked example N6 = 219,600) and the rehearsal object (every earlier switch at 0, window 3,600, floor 14,400; digest `bc2142b178ff367ae84ff0699ff523760d8878f883375da21864ed8d3ad39237`), both read from the signalling node's start lines on throwaway private networks; `override-v4-publish-example.json` and `override-v4-rehearsal.json` in this directory |
| P2 | miner-signalled class activation, implemented behind the override, the fast-time gate with three cases and the failed case | `docs/plans/counter-asic-3-node.md` section 6; `infra/fast-time/class-v4-signal.mjs` | GREEN on the Mac: two of three signalling never flips (7 epochs, 6,166 to 7,583 bps), all three flips at epoch 3 (the first full window, 10,000 bps, the same line on 3 of 3 nodes, the id assertion), nobody signalling flips at the floor epoch 5 and not before; the known-failed case fails on eight checks. Rows and summary files: node doc section 6.4; `class-v4-signal-{no-flip,flip,floor,failed-case}.json` |
| G6 (signalling) | the fork change on PC 2 with the igneum-pow feature | the job ids and their lines | G6_SIGNAL_PLACEHOLDER |
Summary files in this directory: `class-v4-20261006-1553Z-cpu.json` (G4 run 1), `class-v4-20261006-never-failed-case.json` (G4 run 2, the failed case), `class-v4-20261006-metal.json` (G4b), `class-v4-20261006-id-rerun.json` (G4 on the program-id fix, with the id assertion), `class-v4-20261006-id-failed-case.json` (the id assertion's failed case).

View file

@ -120,4 +120,13 @@ Two fields join the live object: `program_class_v4_activation_daa` is now the FL
`infra/fast-time/class-v4-signal.mjs`: three nodes on `override-60x.json` (v3 from DAA 60, window 120, the floor at `--floor`), each node's byte set by `IGNEUM_CLASS_SIGNAL` (`--signal a,b,c`), one real CPU miner each, the id assertion of G4 on every v4 epoch.
SIGNAL_RUNS_PLACEHOLDER
| Case | Run | SUMMARY | Summary file |
|---|---|---|---|
| Two of three signal (`--signal 4,4,3 --expect no-flip --epochs 7`) | 17:26:4x to 17:34:57Z (load average about 9) | PASS: no v4 epoch over epochs 0 to 7; the share at the sink read 6,166 to 7,583 bps epoch by epoch (two CPU miners of three, the third's blocks byte 3); on the chain 286 blocks byte 4, 138 byte 3, genesis byte 0 (6,729 bps); no node printed the signal line; 0 rejected; one sink `d845fdd016a25425` at 424/424/424; the floor line on 3 of 3 (`never`) | `class-v4-signal-no-flip.json` |
| All three signal (`--signal 4,4,4 --expect flip`) | 17:34:5x to 17:39:33Z | PASS: the share 10,000 bps from epoch 1; the class flipped at epoch 3 (DAA 180), the first epoch whose seed block has a full 120-DAA window below it, before the floor (`never`); 3 of 3 nodes printed `Program class v4 by miner signal: epoch 3 (share 10000 bps over 120 DAA ending at seed block 13629115abf4b06bd9b07dfee66c7aab817cef268a34c02f8da6884d52f26017, threshold 9500 bps, 120 of 120 blue blocks)` with the same epoch and share; 181 / 124 blocks across DAA 180; 0 rejected; one sink `322e4a57824ab7fd` at 304/304/304; the id assertion on epochs 3, 4, 5: the three miners' v4 id equals the CLI's class v4 id and differs from the same-seed v3 id (e3 `e48e6be7c6699824` against `6847355c88e8215f`) | `class-v4-signal-flip.json` |
| Nobody signals, the floor at 300 (`--signal 3,3,3 --floor 300 --expect floor`) | 17:39:3x to 17:46:28Z | PASS: the share 0 bps throughout (424 blocks byte 3); no signal line on any node; the class flipped at epoch 5 (DAA 300), the floor, and not before; the floor line `active from epoch 5` on 3 of 3; 301 / 124 blocks; 0 rejected; one sink `aa8755bf4c1cc9e2` at 424/424/424; the id assertion on epochs 5 to 7 (e5 `99f8a29e69d425fd` against `48b8b87ff3a7e9ae`) | `class-v4-signal-floor.json` |
| The known-failed case (`--signal 4,4,3 --expect flip --epochs 7`) | 17:20:34 to 17:27:04Z | FAIL as it must: no flip at 6,250 to 7,288 bps, and the harness reports `FAILED CHECK` on eight checks (`template_switched_to_v4`, `switched_at_the_first_full_window_epoch`, `switched_before_the_floor`, `signal_line_on_every_node_same_epoch`, `signal_share_at_or_above_threshold`, `blocks_on_both_sides`, the two id checks), exit 1 | `class-v4-signal-failed-case.json` |
The first pass of the three good cases (17:01 to 17:20Z) had the same chain behaviour and failed on one harness check of its own (`chain_carries_the_bytes` demanded every byte on the chain be a node's and genesis carries byte 0); the check was corrected to allow the one genesis block and the three cases re-run above. Every number here is a count, a line or an id; the Mac's load average (about 9, other agents' builds) moves the wall times only.
Fork suites on the signalling change (0562a7f2): kaspa-consensus-core 110 + 7 (the signal-rule test, the window in the params, digest and fast-time file tests; the pinned devnet digest re-pinned from `3c505021...` to `7f2e49beabc253f327c5ac6bb457a674ea7f527af2971c95d3bdf65ef8bcf977`), kaspa-consensus lib 98 (the template test now reads the low byte and the signal byte), kaspa-pow with the feature 15; PC 2: section G6 of `node-gates.md`.