#!/usr/bin/env bash # igneumd launcher on a node VM. Reads /etc/igneum/node.env and builds the flag list. # The flags are the ones that work on the Windows node (proto-cuda/windows-node/start-node.ps1): --addpeer, never # --connect (--connect sets the inbound limit to 0, kaspad/src/daemon.rs). --outpeers=0 stops the connection manager # filling 8 outbound slots from exchanged addresses, which would turn the sparse mesh into a near-complete graph; # the --addpeer links are permanent connections outside that target. RPC on loopback only; p2p on every interface. # --enable-unsynced-mining: every node starts at genesis (timestamp 2026-10-03T00:00Z), so none is "synced" at first # and the node would refuse templates (rpc/service/src/service.rs). set -euo pipefail . /etc/igneum/node.env args=(--devnet --devnet-suffix="$DEVNET_SUFFIX" --override-params-file=/etc/igneum/override-params.json --appdir=/var/lib/igneum --rpclisten=127.0.0.1:26610 --rpclisten-json=127.0.0.1:28610 --listen=0.0.0.0:26611 --externalip="$EXTERNAL_IP" --nodnsseed --disable-upnp --nologfiles --enable-unsynced-mining --outpeers=0 --maxinpeers=32 --loglevel=info) IFS=',' read -r -a peers <<< "${PEERS:-}" for p in "${peers[@]}"; do [ -n "$p" ] && args+=(--addpeer="$p"); done # shellcheck disable=SC2206 [ -n "${EXTRA_ARGS:-}" ] && args+=($EXTRA_ARGS) exec /opt/igneum/bin/igneumd "${args[@]}"