igneum/proto-cuda/windows-app/START-IGNEUM.bat
2026-10-04 10:10:03 +00:00

98 lines
6.1 KiB
Batchfile

@echo off
rem Igneum for Windows, devnet v4 (package 0.3.0): the node and the miners in one window. Double-click this file.
rem It starts igneumd (your own node, peered to the seed node and the Mac), waits until it is synced, then finds the GPUs
rem in this PC, starts the prebuilt GPU workers (NVIDIA: igneum-worker-cuda.exe, which compiles each hourly program on the
rem card with NVRTC; AMD: igneum-worker-opencl.exe; nothing to install but the driver) and runs one igneum-miner per
rem worker against the node on this PC, with MINERS identities inside that one miner. The window shows a dashboard: the
rem NODE card first, then one card per GPU, the last events. Logs land next to this file and are uploaded every 60
rem seconds. Stop with Ctrl+C (miners first, then the node); the window stays open at the end. If the window was closed
rem instead, STOP-IGNEUM.bat stops everything.
rem Devnet v4 is a new chain from genesis (4 October 2026): the database lives in a fresh folder (igneum\devnet-v4) and
rem the old one (igneum\devnet) is left alone. Every node and miner on the network moved together.
rem ---- node settings: edit these lines only ------------------------------------------------------------------------
rem The peers this node dials at start and keeps retrying (--addpeer, comma separated): the seed node first, then the
rem Mac. Both can dial back as well.
set "PEER_NODES=188.245.5.161:26611,192.168.68.64:26611"
rem The Mac node (its p2p port), for the reachability line and START-MINING.bat's NODE_HOST=auto fallback.
set "MAC_NODE=192.168.68.64:26611"
rem gRPC for the miners on this PC.
set "RPC_LISTEN=127.0.0.1:26610"
rem p2p on all interfaces, so the other nodes can connect in. Windows Firewall asks once: tick Private networks, Allow access.
set "P2P_LISTEN=0.0.0.0:26611"
rem Where the chain database lives. devnet-v4 is a fresh folder: the v3 database in igneum\devnet is not touched.
set "APPDIR=%LOCALAPPDATA%\igneum\devnet-v4"
rem 1 = hand out block templates before this node is synced and start the miners at once. 0 = the miners start once
rem this node has caught up with its peers.
set "UNSYNCED_MINING=0"
rem Anything else to pass to igneumd (for example --loglevel=debug, or --override-params-file=C:\igneum\override.json).
rem The execution layer starts with the node (Ethereum JSON-RPC on 127.0.0.1:26790); --evm-disable turns it off.
set "EXTRA_ARGS="
rem ---- miner settings ----------------------------------------------------------------------------------------------
rem EVM payout address (0x + 40 hex) for the block rewards of every identity on this PC. Leave empty for one address
rem per GPU vendor, derived from this PC's name (shown in the launcher log and the dashboard). A block without an
rem address pays an address nobody holds.
set "PAYOUT_EVM="
rem Devnet UTXO payout address (igneumdev:...). Leave empty for one address per identity, derived from this PC's name.
set "PAYOUT_ADDRESS="
rem Finality voting: 1 = every identity signs every checkpoint (the default on v4). 0 = mine without voting.
set "VOTE=1"
rem NVIDIA: CUDA device index (0 = first card). CUDA_ARCH is the nvcc architecture for the build path only (sm_120 = RTX 50
rem series; "native" lets nvcc pick); the prebuilt worker finds the card's own architecture by itself. WORKER_ARCH overrides
rem the prebuilt worker's NVRTC target (sm_XY or compute_XY); leave it empty.
set "NVIDIA_DEVICE=0"
set "CUDA_ARCH=sm_120"
set "WORKER_ARCH="
rem 1 = ignore the prebuilt workers and build the old ones from source with nvcc / cl.exe (needs CUDA Toolkit + Visual
rem Studio); for a comparison run only.
set "FORCE_BUILD=0"
rem AMD: by default the first OpenCL GPU whose vendor string contains AMD_VENDOR is used, never an NVIDIA device.
rem Set AMD_DEVICE to a flat device index from the worker's --list output to override.
set "AMD_VENDOR=Advanced Micro Devices"
set "AMD_DEVICE="
rem Miner identities per GPU vendor. On v4 one miner process and ONE worker per card serve all of them (--identities):
rem one dataset and one program on the card, jobs alternate identities, each identity has its own vote key and payout
rem label derived from this PC's name and the index. Set ONE_PROCESS_PER_IDENTITY=1 for the old layout (one worker
rem process per identity, about 1.3 GiB of GPU memory each).
rem Name used for identities, vote keys and the payout address. Empty = this PC's Windows name. SET THIS when two PCs share a name (cloned image).
set "MACHINE_NAME="
set "MINERS=8"
set "ONE_PROCESS_PER_IDENTITY=0"
rem Set to 0 to skip a vendor even if the hardware is present.
set "USE_NVIDIA=1"
set "USE_AMD=1"
rem Nonces per job (one job = one block template; a multiple of 32). Empty = the miner's default of 16,777,216, which an
rem RTX 5090 finishes in under a second. The integrated AMD GPU needs 100 s for that, so it mines stale templates
rem and reports late; 2,097,152 keeps its jobs near 10 s.
set "NVIDIA_JOB_NONCES="
set "AMD_JOB_NONCES=2097152"
rem The window shows a dashboard (redrawn in place). Set PLAIN=1 for a scrolling log instead; the launcher also falls
rem back to it by itself when the window is not a real console.
set "PLAIN=0"
rem Visual Studio: the MSVC toolset CUDA 12.8 accepts (14.30 = MSVC v143). Adjust the path if Visual Studio is elsewhere.
set "VCVARS=C:\Program Files\Microsoft Visual Studio\18\Community\VC\Auxiliary\Build\vcvarsall.bat"
set "VCVARS_VER=14.30"
rem -------------------------------------------------------------------------------------------------
cd /d "%~dp0"
if not exist "%~dp0start-igneum.ps1" (
echo Please extract the whole zip first ^(right-click, Extract All^), then run START-IGNEUM.bat from the extracted folder.
pause
exit /b 1
)
if not exist "%~dp0igneumd.exe" (
echo igneumd.exe is not in this folder. Extract the whole zip ^(the node exe ships prebuilt^) and run again.
pause
exit /b 1
)
where powershell >nul 2>nul
if errorlevel 1 (
echo PowerShell was not found. Windows 10 and 11 ship it; nothing else can be done here.
pause
exit /b 1
)
powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0start-igneum.ps1"
echo.
echo Igneum has stopped. The log files are next to this file and were uploaded if the upload tool is present.
pause