igneum/proto-cuda/windows-app/start-mining.ps1
igneum-labs 0a052fb1bd Release: devnet v4 cut-over staged (Windows 0.2.0 packages, Mac app 0.2.0, seed igneumd-v4 unit, runbook)
Windows combined package 0.2.0 (proto-cuda/windows-app): v4 exes from target-integration, peers = seed then Mac,
fresh appdir devnet-v4, one miner and one worker per card with --identities 8, --evm-address (PAYOUT_EVM or derived
per vendor from the PC name), voting on (VOTE=0 opts out), --prepare-packs for the hot swap with --exit-on-seed-change
as the fallback, --yes on the node, STATUS regex tolerant of the v4 now= segment, version in the dashboard header.
Mac app 0.2.0 (packaging/mac): v4 binaries, Metal worker rebuilt for macOS 11, data folder devnet-v4, EVM payout,
identities in one process, synced= flag honoured. Seed (infra/seed-nodes): stage-v4.sh builds v4 on the VM as a
niced, memory-capped transient service and installs a disabled igneumd-v4 unit with a fresh data dir; switch-v4.sh
swaps the units (--back reverses); health.sh reports active-v4. Runbook: docs/plans/cutover-2026-10-04.md.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 01:48:56 +00:00

49 lines
2.3 KiB
PowerShell

# Igneum devnet mining test, Windows launcher: the miners only. Started by START-MINING.bat, which sets the settings as
# environment variables (NODE_HOST, NODE_PORT, PAYOUT_EVM, PAYOUT_ADDRESS, VOTE, NVIDIA_DEVICE, CUDA_ARCH, AMD_VENDOR,
# AMD_DEVICE, USE_NVIDIA, USE_AMD, MINERS, ONE_PROCESS_PER_IDENTITY, NVIDIA_JOB_NONCES, AMD_JOB_NONCES, PLAIN, VCVARS,
# VCVARS_VER). 3 October 2026; devnet v4 (package 0.2.0) 4 October 2026.
# The functions live in igneum-common.ps1; START-IGNEUM.bat runs the same code with the node in the same window.
#
# Order: GPUs and tools, igneum-miner.exe, the node must answer, the pack is exported and the workers built (cached by
# the pack's seeds), MINERS identities per vendor start, then the dashboard loop (status every 30 s, uploads every 60 s,
# restarts on seed change or crash). Ctrl+C stops everything, prints a summary and uploads once more.
$launcherName = 'launcher'
. (Join-Path $PSScriptRoot 'igneum-common.ps1')
$script:title = 'Igneum: miners only'
$note = Resolve-NodeHost # NODE_HOST=auto: a node on this PC first, else the Mac
Log "igneum mining launcher $packageVersion ($chainVersion) on $machine, node $nodeUrl$note (run $stamp)"
$plan = Find-Hardware
if ($plan.Count -eq 0) { Log 'nothing to run. Fix the missing tool above and start again.'; exit 1 }
if (-not (Confirm-Miner)) { exit 1 }
if (-not (Test-TcpPort $nodeHost ([int]$nodePort) 3000)) { Log "cannot reach the node at ${nodeHost}:${nodePort}. Is the node running and on the same network? (START-IGNEUM.bat runs one on this PC)"; exit 1 }
Log "node reachable at ${nodeHost}:${nodePort}"
if (-not (Initialize-Vendors $plan)) { exit 1 }
Start-AllMiners
Start-Sleep -Seconds 10
Report-WorkerReady
Upload-Logs # first upload right after the start summary, so a failed start reaches the intake too
Log 'first upload done'
Enable-KeepAwake 'mining'
[Console]::TreatControlCAsInput = $true
Log 'running. Press Ctrl+C to stop (the summary prints and the logs are uploaded one last time).'
Start-ChainSample
Start-Dashboard
$stop = $false
try {
while (-not $stop) {
Start-Sleep -Milliseconds 500
if (Test-StopKey) { $stop = $true; break }
Update-AllInstances
Invoke-CommonStep
Update-Miners
}
} finally {
Stop-Everything $(if ($stop) { 'Ctrl+C: stopping' } else { '' })
}