Igneum devnet mining test. Double-click START-MINING.bat; it finds your GPUs, builds the NVIDIA (CUDA) and AMD (OpenCL) workers on the first run, and mines against the Mac node at 192.168.68.64 port 26610 (gRPC; p2p is 26611). Change the address, port, payout address or device choice at the top of START-MINING.bat.
It needs CUDA Toolkit 12.8 or newer and Visual Studio with the MSVC v143 (14.30) x64 component; the AMD worker uses the OpenCL headers the CUDA Toolkit ships. The miner (igneum-miner.exe) is prebuilt, no Rust needed.
MINERS=8 (top of the bat) starts 8 miner identities per GPU vendor, each with its own worker (about 1.3 GiB of GPU memory each), its own vote key and payout address derived from the PC name and the index (the same on a rerun), and its own random 64-bit nonce start per job, so no two miners repeat work; set MINERS=1 for a single-identity run. Logs are written next to the bat as nvidia-<index>-<stamp>.log, amd-<index>-<stamp>.log and launcher-<stamp>.log, and uploaded every 60 seconds under the labels nvidia-<PC name>-<index> and amd-<PC name>-<index>, so the log is already with us.
The window shows a dashboard, redrawn every 2 seconds: the Igneum mark, the PC name, the node address and "connected" (or "waiting for the node" in yellow); one card per GPU (RTX 5090, Radeon Graphics) with its total hash rate in big digits, blocks found tonight, blocks in the last 10 minutes and one cell per miner ("mining" in green, "starting", "warming up", "rebuilding" or "waiting" in yellow, "errors" or "stopped" in red, with the miner's own hash rate); a network line (blocks per second on the chain, whether the difficulty is rising, falling or steady, and your share of the last 100 blocks, read from the node every 30 seconds); the last 5 events in words (a block found, the hourly program rebuilt, a miner restarted, an upload failure); and a footer. The launcher log keeps the full detail. Set PLAIN=1 at the top of the bat for the old scrolling output; the launcher uses it by itself when the window is not a real console (PowerShell ISE, redirected output).
Every hour the program changes (epoch of 3,600 blocks) and once a day the cache seed changes: the miner stops with code 42, the launcher re-exports the pack from the node, rebuilds the worker (about 30 s for CUDA, a few seconds for OpenCL) and restarts it; a worker that dies for any other reason is restarted after 10 s. A status line per miner goes to the launcher log every 30 s (the miner itself reports only after a job ends, so a slow GPU shows "warming up" until its first job is done; AMD_JOB_NONCES at the top of the bat keeps AMD jobs short).
The launcher holds Windows awake while it runs (SetThreadExecutionState, no power plan change); for the night also set Sleep to Never in Settings > System > Power and check that no Windows Update restart is pending. Stop it in the morning with Ctrl+C in the window: the miners and workers are killed, a summary prints, the logs are uploaded one last time and the window stays open. The Mac side restarts with: cd ~/Projects/igneum/vendor/igneum-node && caffeinate -dims ./target/release/kaspad --devnet --nodnsseed --disable-upnp --enable-unsynced-mining --appdir=/tmp/igneum-devnet/node1 --rpclisten=0.0.0.0:26610 --listen=0.0.0.0:26611 --nologfiles >> /tmp/igneum-devnet/node1.log 2>&1 &
