release-0.3.5 plan: fud-consensus on both repos (fork results to follow)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-05 02:21:12 +00:00
parent d791efd4be
commit c6116c805a

View file

@ -19,6 +19,7 @@ node work sits on the fork branch `release-0.3.5` (local only; the fork has no r
| `origin/miner-reliability` | 59d843f | f7d2af7 | the app watchdog per card and per node (`src/watchdog.rs`), WORKER FAULT and `mismatched=` read from the miner, the reliability test harness (`tools/reliability/`), the public GPU bench table (`site/miners.html` from `site/miner-bench.json`), bench-log and ledger entries | `engine.rs`: the sweep state (miner-eff) and the node watchdog kept together; the STATUS line goes through `watchdog::parse_status` and still feeds the sweep's rate sample. `main.rs`: both modules. `bench-log.md`: both entries. `site/build.mjs`: master's partial-injected pages kept, the `/miners` table added through the same `page()` with `active: 'miners'`; the Miners link added to `site/partials/nav.html`; `/miners` added to the sitemap; every generated page rebuilt (`node site/build.mjs`) |
| `origin/master` (merged five times as it moved, 37 commits in all) | c40fd86 | cc71ed6, ce74626, 5672a28, 1c33898, and the last | the bug hunter's night: console parsers in `relay/lib/parse.mjs` with `node --test relay/test`, the identity-scrub fix 2996cca (CI green), publish-jobs and publish-manifest verify changes, autosync, `console_ota_memo`, bugs.md rows | none (the publish-manifest.sh and publish-jobs.sh reconciliations of this branch sit on top of master's verify changes; `--tuning` and `verify` both present on the tip) |
| `origin/bugfix-collect-exit` | 35ccdc8 | e53d337 | a collect job whose command exits non-zero is failed with that code (`collect_done`, unit test); collect-pc1-board3 had reported done over exit 1 | none |
| `origin/fud-consensus` (carries the redteam branch) | 0420c88 | 7abce72 | round-4 consensus items on the app side: `tools/finality-attacks/fud.mjs` and the red-team runners, harness s8 steady state and port/data-dir overrides, specs 02/03/08, ledger F23 F24 G12 X18 M30 M31 F25, `docs/review/redteam-2026-10-04.md`, result files | `docs/bench-log.md`: both appended entries kept. No app or site file changed |
Master's fix 0d123b3 (OTA Windows helper: `CREATE_NO_WINDOW` only, no `DETACHED_PROCESS`) is the branch point and
survived every merge: `grep -n 'creation_flags(0x0800_0000); // CREATE_NO_WINDOW' app/igneum-app/src/ota.rs` gives
@ -38,8 +39,9 @@ finality v3, so a release branch was made from `finality-fixes` and the miner br
| `dev-fee` (local, created from the worktree change) | a2c7ba83 | 4d3c7482 | `igneum-miner --dev-fee <percent>` (default 1: one template in 100 is requested with the dev payout address, deterministic by counter; 0 off), `dev-fee block` lines, `igneum-miner payouts` (the audit) | `igneum/miner/src/main.rs`: both kept, the `pub(crate)` visibility the proving modules need (finality-fixes) with the fee fields and parameters (`fee_extra_data`, `Template.dev_fee`, `template(.., fee)`, `submit(.., fee) -> bool`); `proving.rs`: vmine calls both with `fee = false` |
| `miner-reliability` | 945153ab | 6ef230d5 | `igneum/miner/src/guard.rs` (fault guards as state machines: interval baseline per worker process, prepare rate limit, CPU re-check stop, restart back-off and exit 43), a dead worker's stdin no longer spins the fill loop, the worker line read waits one status interval | none |
| `bugfix-build-info-worktree` (local, worktree `vendor/igneum-node-bughunt`) | a498d1bf | 2e75a238 | `build-info/build.rs`: a worktree's `.git` is a file; the walk had climbed into the vendoring repository and embedded ITS commit, which is why 0.3.4 reports `igneumd/2.1.0-73fc2fd` (Windows) and `-1b65132` (Mac), neither a fork commit. Now the HEAD file comes from the checkout's own git dir and the ref from the common dir | none |
| `fud-consensus` (local, worktree `vendor/igneum-node-fud`, built on finality-fixes) | 977db931 | b2578ae7 | F23 chain-decided bans with the persisted finality state in layout 2 (a layout-1 blob is read and converted on start), F24 re-determination after reorgs (and un-determination when the new chain has not reached the index), G12/X18 env gate and the consensus params digest in the handshake with a devnet allowance for digest-less peers, M30 the PoW cache keyed by day (the live 270 MB per hour growth), M31 one coinbase payload limit on every network | none (auto-merged, including `igneum/miner/src/main.rs` and `proving.rs` next to the fee and guard changes; `consensus/src/processes/finality.rs` had no conflict with the base) |
The first two touch the miner crate only; the third changes the commit every binary embeds. The finality v3 and
The first two touch the miner crate only; the third changes the commit every binary embeds; the fourth changes consensus (finality, pow, params, p2p handshake), so the consensus suites were rerun on it (3b). The finality v3 and
proving text is in every igneumd built below (checked with `strings`), and the embedded commit is now the fork's
(section 4a).
@ -71,7 +73,8 @@ Homebrew's 1.69 cannot read the lock file.
| dev-fee | 49f95de | ok: 44 + 22, 0 failed, 21:48:14Z | ok, 21:48:17Z |
| miner-reliability | f7d2af7 | ok: 55 + 22, 0 failed, 22:25:32Z | ok, 22:25:36Z |
| dev-fee second tip (no app source changed) | 1b287d4 | ok: 55 + 22, 0 failed, 23:17:28Z (tip bd57866 = 1b287d4 plus this file) | ok, 23:17:28Z |
| master 2897e21 + bugfix-collect-exit (final tip) | e53d337 | ok: 56 + 22, 0 failed (the collect_done test among them), 01:03:02Z | ok, 01:03:02Z |
| master 2897e21 + bugfix-collect-exit | e53d337 | ok: 56 + 22, 0 failed (the collect_done test among them), 01:03:02Z | ok, 01:03:02Z |
| fud-consensus (final tip; no app source changed) | 7abce72 | ok: 56 + 22, 0 failed, 02:20:01Z | ok, 02:20:01Z |
### 3b. The node fork
@ -89,9 +92,15 @@ Mac build and tests in `vendor/igneum-node-release` with `CARGO_TARGET_DIR=vendo
| 6ef230d5 | `cargo test -p igneum-miner` | ok: 12 passed, 0 failed (the guard tests added), 23:29:40Z |
| 2e75a238 (build-info fix merged) | the same release build | ok, 9 min 39 s (01:12:42Z) |
| 2e75a238 | `cargo test -p igneum-miner` | ok: 12 passed, 0 failed, 01:12:48Z |
| b2578ae7 (fud-consensus merged) | the same release build | @@MAC4_BUILD@@ |
| b2578ae7 | `cargo test -p kaspa-consensus --features igneum-pow -- finality` | @@MAC4_FIN@@ |
| b2578ae7 | `cargo test -p kaspa-consensus --features igneum-pow -- difficulty` | @@MAC4_DIFF@@ |
| b2578ae7 | `cargo test -p kaspa-pow` | @@MAC4_POW@@ |
| b2578ae7 | `cargo test -p igneum-miner` | @@MAC4_MINER@@ |
| b2578ae7 | 6-s scratch run on devnet params over an appdir the 0.3.4 build (6aa69a45) had written | @@SCRATCH@@ |
The consensus, difficulty and pow crates are untouched by the reliability merge (miner crate only) and by the
build-info fix (a build script that only changes the embedded commit string), so their 4d3c7482 results stand.
build-info fix (a build script that only changes the embedded commit string), so their 4d3c7482 results stood until fud-consensus, which changed all three; the b2578ae7 rows are the ones that count.
### 3c. The other checks, on the files each merge changed