infra/cloud-devnet: hcloud (doctl variant) create, builder-VM provision from a git-archive source tarball, systemd units for igneumd --devnet-suffix with a sparse --addpeer mesh and a CPU trickle miner per node, stdlib wRPC client, experiments (latency, partition, hop, collect, observer hookup), README with the command sequence and the Hetzner API prices of 3 Oct 2026. infra/gpu-bench: RunPod image recipes (CUDA 12.8, ROCm), bundle, run.sh (vectors gate, 10-min raw, sweep, inline shortcut ratio, nvcc/NVRTC/OpenCL recompile timings, results row, intake upload), bench-log template. infra/seed-nodes: create-seed (persistent IPv4, firewall), provision on the VM, health check, addPeer from the Mac over grpcurl, seeds.txt; igneum-seed-1 created at 188.245.5.161 (Hetzner cx23, fsn1). docs/plans/cloud-devnet.md and docs/plans/seed-nodes.md. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
30 lines
1.5 KiB
Bash
Executable file
30 lines
1.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Start the network: nodes and block logs first, miners once every RPC answers.
|
|
# ./start.sh nodes, then miners
|
|
# ./start.sh nodes nodes and block logs only
|
|
# ./start.sh miners miners only
|
|
. "$(dirname "$0")/lib/common.sh"
|
|
require_nodes
|
|
what="${1:-all}"
|
|
|
|
if [ "$what" = all ] || [ "$what" = nodes ]; then
|
|
log "starting igneumd and igneum-blocklog on $(node_count) nodes"
|
|
on_all 'systemctl restart igneumd && sleep 1 && systemctl restart igneum-blocklog && systemctl is-active igneumd'
|
|
log "waiting for the RPC on every node"
|
|
for try in $(seq 1 24); do
|
|
bad=0
|
|
while IFS=$'\t' read -r name idx reg ip; do
|
|
nssh "$ip" "python3 /opt/igneum/bin/wrpc.py call getInfo >/dev/null 2>&1" || bad=$((bad + 1))
|
|
done < "$NODES_FILE"
|
|
[ "$bad" = 0 ] && break
|
|
log "$bad nodes not answering yet (try $try), 5 s"; sleep 5
|
|
done
|
|
[ "$bad" = 0 ] || log "WARNING: $bad nodes still not answering; check: ./status.sh and journalctl -u igneumd on the node"
|
|
fi
|
|
|
|
if [ "$what" = all ] || [ "$what" = miners ]; then
|
|
log "starting the trickle miners ($MINER_THREADS thread each; the first block needs the 256 MiB cache built, about 10 to 30 s on one vCPU, approximate)"
|
|
on_all 'systemctl restart igneum-miner && systemctl is-active igneum-miner'
|
|
fi
|
|
log "started at $(date -u +%Y-%m-%dT%H:%M:%SZ). Watch with ./status.sh (every 30 s: watch -n 30 ./status.sh)"
|
|
printf '%s\tstart %s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$what" >> "$(results_dir_for)/events.log"
|