igneum/docs/plans/release-0.3.15.md
2026-10-06 19:20:32 +00:00

8.4 KiB

Igneum Miner 0.3.15: class v4 signalling, generator-4 workers, miner-ui-4

Cut 6 October 2026, staged by the release engineer under the coordinator; the live cut waits for the Devnet 2 gate's PASS and the project lead's go. Worktree igneum-wt-ship0315 (branch release-0.3.15), node release-0.3.15-node 713ef876 in vendor/igneum-node-0315.

1. Why

  • The class v4 program (mx8+sh256x27, Counter ASIC 3.0) can now be signalled: the node reads program_class_v4_activation_daa and program_class_v4_signal_window_daa, flips the class at the first epoch whose 86,400-DAA window has 95 percent of blue blocks signalling, or at the floor. Both fields enter the consensus digest only once set, so this binary peers with 0.3.14 on today's file.
  • Every GPU worker is the generator-4 one, built from this tree: a worker from 0.3.14 refuses a generator-4 pack and stops dead at the flip (the rehearsal of 6 October showed it on 52 boxes).
  • The miner app's new Overview and Cards (miner-ui-4): the big-number hero, the chain scene, Ember Tune woven into every card row, the chain's own words with one grey explanation each.
  • Ember Tune tunes through the Power Helper: the helper acts only on commands after its start, heartbeats before any command, acknowledges by its own log line.
  • The Windows payload carries the Linux prover pair for WSL2 and refuses to build without it; every PC had run a stale host and exporter since 0.3.5.
  • An update never installs while a remote job is active, urgent or not; an asked install is spent by the check it asked for (PC 1, 17:52:54Z).
  • The exec layer names a stale exporter by path; the node says at start when the verifier host is older than proving v1 (igneum_getProvingStatus.verifierStale); a tip-0 snapshot pair is never resumed from, and a blocked follower asks a peer for its state within five minutes.
  • The devnet hand nodes run under launchd; the app's default devnet peers include the build box's hand nodes.

2. The order (two publishes, the worker rule)

  1. Publish 1 (binaries, the live THIRTEEN-field object unchanged, digest b18ed271): the fleet's miners by script, PC 1, PC 2 and the Mac by update-now, the hands and the seed last. No window: a 0.3.15 node on the thirteen-field file peers with 0.3.14 (measured: same digest).
  2. Publish 2 (the SIXTEEN-field object: the thirteen plus exec_restart_state_root, program_class_v4_activation_daa = the floor at publish DAA + 14,400 rounded up to the epoch (at least 10,800 ahead), program_class_v4_signal_window_daa = 86,400): only when every NODE reports 0.3.15 AND every WORKER is the 0.3.15 one. A 0.3.14 node exits at parse on this file ("unknown field program_class_v4_activation_daa"); a 0.3.14 worker stops at the flip. Miners first, the hands and the seed last. The digest moves once, read from the 0.3.15 node on the exact file at the publish (2c1162e2 at floor 226,800; 1dddfa55 at 219,600; another floor moves it).
  3. The hands move from the Mac to igneum-build-1 on the "0.3.15 live" line (the build-server agent's move-hand.sh, observer first, one hand down at a time).

3. Digests (0.3.15 Mac binary, no suffix, no peers)

Object Digest
the live thirteen-field file b18ed271f75dd46406d230f4156c37472127415a4c32c558bac662f6f840e61c (equal to 0.3.14)
fourteen fields (the exec pin 0xed27bb2d...) 23e7693634a9b8b3c0643f16c8a01e4cf057985c7e0e0e044f70bc919a3c0fef
sixteen fields, floor 219,600, window 86,400 1dddfa5574d5536109a5ae68dc415b55e954bd11208608440845e19670505871 (the node lane's pinned test value)
sixteen fields, floor 226,800 (DAA 209,458 at 19:47Z) 2c1162e2ccf34531bf3af131d21c36e857e3e99e265969e4b094bd7421a1d74e
the 0.3.14 binary on the sixteen-field file refused at parse, exits

4. Builds

Piece Where Commit sha256 Size
Linux igneumd (fleet, seed) igneum-build-1, glibc 2.39 713ef876 06211d55b8cce1c19b31b218f5b61f42389a5ceaf68e0d27781b2e10e33b3f2a 49,719,776
Linux igneumd (HiveOS, glibc 2.36) Mac zigbuild 713ef876 1e51bfb6401e2d86022eeaddf03750a72d6eb200fa879b7c58fb5c3afbf38a50 48,434,344
Linux igneum-miner (HiveOS) Mac zigbuild 713ef876 c5b489105d933b01e4dceff8dc31e2db8e9aa53de06dddafc6eb12ee85b8f7a6 9,998,576
Windows igneumd.exe igneum-build-1 cross 713ef876 d08be1a72082880e91dceb0f34e4337663c9494ccc62eb108d7c3a274801e928 51,846,656
Windows igneum-miner.exe igneum-build-1 cross 713ef876 e251bd2b3146830ae8c22627b6b37eba3428d1ba64fbcbd938aa0a36c7916fe3 11,129,344
Mac igneumd Mac 713ef876 7f0948d95996eb00f8f574dcaabc25b3ad8a407e08eac3b85055fd15abd0139f 41,819,824
igneum-worker-cuda.exe (generator 4) Mac mingw 563485b tree 14b6637e1d1c9e83311f2cf4e8ca76fb5ff8e42336b5e09b2b89165da55ea00e 1,537,024
igneum-worker-opencl.exe (generator 4) Mac mingw 563485b tree 0cbb65f0cadaa560037175d81d829ad7d50fcbdcf8a510d382681468f32f7ce8 479,232
igneum-gpu-telemetry.exe Mac mingw 563485b tree f7d924a7ba9ccd6f66fd7eee99f04835f52903456c4789f2c599e88fb02e2d37 387,584
hive igneum-worker-cuda (generator 4) Mac zig 563485b tree 97e036e23f4ace669b68b85980701ffe4e32017cdfbf28603bf992802a8b9828 6,756,480
hive igneum-worker-opencl (generator 4) Mac zig 563485b tree ef9fbd03e7ce14d1b2b9b85964397b244dc153edee0607d71f26dbc640a4c5e6 307,328
igneum-prove-host (Linux, cuda, WSL2) igneum-build-1 master e1b5bc9 71bc2438856bb141f6cad3d18489f708568144fad5a06a002fbadefb9ce256f9 73,161,528
igneum-prove-export (Linux, WSL2) igneum-build-1 master e1b5bc9 263bf4cef70af4a13a45b2e79b8dbab373282ea4c571f624d02ddb5791935361 3,609,360
igneum-hive-0.3.15.tar.gz Mac 1715e58ea1d4a1ed1b733881de51b8754ca975f0359b3b29ecb49061d02124c7 24,713,232

Installer, zip, DMG and manifest rows are filled by the ship run (tools/ship-app.mjs 0.3.15 ... --until manifest).

5. Gate

Line Result
node suite on igneum-build-1 (713ef876, six crates, --no-fail-fast) kaspa-consensus 97 + the recorded flake ban_is_decided... 1/1 alone, consensus-core 111 + 7, igneum-exec 20, kaspa-pow 15, igneum-miner 18, p2p-flows 33
app crate tests (release-0.3.15) 162 + 28 + 8; UI 37
worker smoke, Mac (Metal, serve mode, epoch-2 v4 pack 24304f0788ea9408) 1,024 of 1,024, sha256 7bf77506... equal to igneum-pow's derivation (19:16Z)
worker smoke, Linux (hive igneum-worker-cuda on a fleet GPU box) owed (fleet agent)
worker smoke, Windows (igneum-worker-cuda.exe on PC 2) owed (PC 2's app first)
Devnet 2: P1 rehearsal PASS (flip as a protocol: 599 of 599 signalling, one program id, 0 rejected) the floor line waits on the generator-4 Linux worker on the boxes
Devnet 2: 0.3.15 canary (p2-3090-1, p2-3090-4, thirteen-field file) running (fleet agent, 19:1xZ)

6. Incidents of the day that shaped this cut

  • 17:52:54Z, PC 1: 0.3.14 installed under a measurement job; cause install_asked from a two-hour-old update-now, which counts as urgent (section 1, the updater rule).
  • 18:2x UK: the desktop app crashed and both hand nodes (nohup children of agent shells) died for about 70 minutes; now LaunchAgents (infra/devnet/hands-launchd.sh).
  • 18:3xZ: every PC ran a stale igneum-prove-host and igneum-prove-export (the payload never carried the Linux pair); placed by job tonight (zigbuild pair 75166ad8 / 24d34cb9), required in the payload from 0.3.15.
  • 18:58Z: restart --what app jobs to both PCs quit the apps and the relaunch helper did not bring them back (the engine exits under the stale window host); retired until fixed with a watcher. Recovery through the relay agent on PC 2; PC 1's agent was down.
  • 17:47Z onward: the pre-push hook's site build wrote 0.3.14's download rows into five worktrees; fixed on master (SITE_DOWNLOADS_REFRESH, tools/ci/no-foreign-tree-writes.sh).
  • 18:5xZ: the P1 rehearsal's flip stopped every GPU miner on the 0.3.14 worker (generator-4 refusal); hence section 2's worker rule.

7. Owed

  • Publish 2 after every node and every worker reports 0.3.15; the hands' move; the first locked checkpoint after the flip.
  • Pool-v0 fork commits (48c8163b, b8070476) for 0.3.16 (b8070476 conflicts with the 0.3.15 miner).
  • Ember 995530b (card.tune_floor) for 0.3.16.
  • The prover thread drops its cached tool paths when a stale binary is named (0.3.16).
  • The relaunch helper fixed with a watcher, or restart --what app stays retired.
  • Env-only defaults for the eight scripts that name the shared checkout by absolute path.