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>
15 lines
1,009 B
Bash
Executable file
15 lines
1,009 B
Bash
Executable file
#!/usr/bin/env bash
|
|
# One line per node: blocks, headers, blue score, DAA, tips, peers, difficulty, sink, miner state. Reads the
|
|
# loopback RPC through ssh (wrpc.py sample), so it costs one ssh round trip per node.
|
|
. "$(dirname "$0")/lib/common.sh"
|
|
require_nodes
|
|
printf '%-10s %-5s %-15s %8s %8s %8s %8s %4s %5s %12s %-12s %s\n' node region ip blocks headers blue daa tips peers difficulty sink miner
|
|
while IFS=$'\t' read -r name idx reg ip; do
|
|
(
|
|
line=$(nssh "$ip" "python3 /opt/igneum/bin/wrpc.py sample 2>/dev/null; systemctl is-active igneum-miner 2>/dev/null" 2>/dev/null | tr '\n' '\t')
|
|
s=$(printf '%s' "$line" | cut -f1-9); miner=$(printf '%s' "$line" | cut -f10)
|
|
IFS=$'\t' read -r ts sink blue daa tips peers diff headers blocks <<< "$s"
|
|
printf '%-10s %-5s %-15s %8s %8s %8s %8s %4s %5s %12.0f %-12s %s\n' "$name" "$reg" "$ip" "${blocks:-?}" "${headers:-?}" "${blue:-?}" "${daa:-?}" "${tips:-?}" "${peers:-?}" "${diff:-0}" "${sink:0:12}" "${miner:-?}"
|
|
) &
|
|
done < "$NODES_FILE"
|
|
wait
|