From d8244a99616d8bb8d34b8b959f91302e1dca4c39 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Tue, 6 Oct 2026 00:29:21 +0000 Subject: [PATCH] Counter ASIC 2.0: the M20 era test fails on 89dfcb95 under igneum-pow; G6 caveat (suites ran without the feature) Co-Authored-By: Claude Fable 5.1 --- docs/plans/counter-asic-2-status.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plans/counter-asic-2-status.md b/docs/plans/counter-asic-2-status.md index ec9f1b5aa..c6e0c6816 100644 --- a/docs/plans/counter-asic-2-status.md +++ b/docs/plans/counter-asic-2-status.md @@ -724,3 +724,5 @@ A finding on the shipped fork from the ledger closer (00:21): kaspa-consensus te 6. The update-now job pre-empts a running job, or the STATUS line reports the queue wait; the relay clients named by machine id. 7. fud-close 647b08c (with ledger-fixes 3d4ec451 rebased onto the 0.3.11 fork), ota-k2, ember-tune, rig-install's two follow-ups, the explorer split (3e01212 safe, d7e797c waits), the step-1 "every new-side node has a miner" check in the publish runbook. No further rollout tonight beyond the planned object sweep (done: every live node at 0139ab9d). + +00:40. The M20 test finding is CONFIRMED on the shipped fork: on 89dfcb95 itself, `cargo test -p kaspa-consensus --features igneum-pow --lib witnesses_are_checked_in_epoch_order_under_their_own_seeds` on the Mac under the build lock fails at igneum_m20_tests.rs:122 (left era = the test's genesis 0x5e51 from the stand-in, right era = ZERO_HASH from EpochSeeds::v2; 20.2 s). Without the feature the test is not compiled ("102 filtered out"): the whole igneum_m20_tests module is behind `#[cfg(feature = "igneum-pow")]`, and tools/build-job.mjs passes no feature flag, so PC 2's combined suite job (G6, build-20261005-230745, "six node suites exit 0") never ran the lottery-hash consensus tests. Two items, both 0.3.12 (item 4 of the list above, now split): (a) the test's expectation (the era-0 stand-in is the genesis hash on every path that has it: the node's RPC, the miner's legacy walk, the pruning proof; the class fix is one `era0_seed(genesis)` helper used by all three and by seeds_from_info's fallback instead of ZERO_HASH, with v2 seeds compared on (epoch, day, class) where the era is unread); (b) the gate: build-job.mjs runs the node suites with `--features igneum-pow` so the gated tests count, and G6's evidence names the feature set. What it does NOT mean: no consensus or hash change (a v2 program reads neither class nor era; the proof-path stand-in and the node agree), nothing on the devnet is affected; it is a test and a gate gap.