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>
24 lines
1.6 KiB
PowerShell
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
|