igneum/relay/playbooks/prove-block.ps1
igneum-labs 53f7f55796 Relay: text, files and runnable tasks between the Mac, the PCs and the phone (relay.igneum.network)
New Vercel project igneum-relay from relay/: one function (api/relay.mjs) over Neon tables relay_items and relay_machines,
files in Vercel Blob store igneum-relay (50 MB client uploads, 4 MB through the function), phone-first web page at /r/<token>/
with the site tokens. Mac CLI tools/relay.mjs (feed, read, drop, task, run, watch, inbox, machines, role, name).
Windows clients send.bat/send.ps1 and the igneum-agent (registers hostname, role, GPUs, WSL, nvcc; runs queued PowerShell
scripts, posts results, reboot-continue via scheduled task + RunOnce), bash twins send.sh and agent.sh (verified live),
playbooks for WSL setup, prover setup, prove-block, miner v4, one-click placeholder. make-clients.sh bakes the secrets
into a zip; the repo copies hold placeholders. Screenshots under docs/design/relay.

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

24 lines
1.6 KiB
PowerShell

# Igneum playbook: prove the fixture block on the GPU then the CPU (PROVE-BLOCK in the prover package) and post results/*.json.
# Queue: node tools/relay.mjs run PC2 "prove block" relay/playbooks/prove-block.ps1
# Pause mining on that PC first: the prover takes the whole GPU. UNTESTED on a PC as of 4 Oct 2026.
$ErrorActionPreference = 'Continue'
$distro = 'Ubuntu-24.04'
$pkg = 'C:\igneum-prove\igneum-prove-wsl2'
$fixture = 'block-78-increment'; if ($env:FIXTURE) { $fixture = $env:FIXTURE }
function Strip([string] $s) { if ($null -eq $s) { return '' }; return ($s -replace "`0", '') }
if (-not (Test-Path (Join-Path $pkg 'prove-block.sh'))) { Write-Host "ERROR: $pkg\prove-block.sh missing; run prover-setup first"; exit 2 }
$start = Get-Date
Write-Host "proving $fixture inside $distro (first run compiles for 10 to 30 minutes, approximate)"
& wsl.exe -d $distro -u igneum -- bash /mnt/c/igneum-prove/igneum-prove-wsl2/prove-block.sh $fixture core 2>&1 | ForEach-Object { Strip "$_" }
$rc = $LASTEXITCODE
Write-Host "prove-block.sh exit $rc"
$results = Join-Path $pkg 'results'
if (Test-Path $results) {
Get-ChildItem $results -Filter '*.json' | Where-Object { $_.LastWriteTime -ge $start } | ForEach-Object {
Write-Host ("posting " + $_.Name)
& $env:RELAY_SEND -TaskId ([long]$env:RELAY_TASK_ID) -Title ("prove result " + $_.Name) $_.FullName
Get-Content $_.FullName -Raw | Select-Object -First 1
}
}
Get-ChildItem $pkg -Filter 'prove-*.log' | Where-Object { $_.LastWriteTime -ge $start } | Select-Object -First 1 | ForEach-Object { Write-Host "RESULT lines:"; Select-String -Path $_.FullName -Pattern '^RESULT' | ForEach-Object { $_.Line } }
exit $rc