diff --git a/babylon/scripts/cometbft-common.sh b/babylon/scripts/cometbft-common.sh index e2710b3f..4577698e 100644 --- a/babylon/scripts/cometbft-common.sh +++ b/babylon/scripts/cometbft-common.sh @@ -68,11 +68,28 @@ ct_merge_seeds() { ct_log "no official seeds fetched from $_url (continuing with configured)" fi fi + _seeds=$(ct_valid_peers "$_seeds") if [ -n "$_seeds" ]; then sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg" fi } +# ct_valid_peers LIST +# Keep only well-formed CometBFT peer entries (<40-hex node id>@:), drop and +# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes +# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31. +ct_valid_peers() { + _in="$1"; _out="" + for _p in $(echo "$_in" | tr ',' ' '); do + if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then + _out="${_out:+$_out,}$_p" + else + ct_log "dropping malformed peer entry: $_p" + fi + done + echo "$_out" +} + # ct_set_persistent_peers CONFIG_TOML PEERS # Handles both cometbft-classic `persistent_peers` (underscore) and forks that use # `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present. @@ -80,6 +97,8 @@ ct_set_persistent_peers() { _cfg="$1"; _peers="$2" [ -f "$_cfg" ] || return 0 [ -n "$_peers" ] || return 0 + _peers=$(ct_valid_peers "$_peers") + [ -n "$_peers" ] || return 0 sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg" sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg" return 0 diff --git a/cosmos/scripts/cometbft-common.sh b/cosmos/scripts/cometbft-common.sh index e2710b3f..4577698e 100644 --- a/cosmos/scripts/cometbft-common.sh +++ b/cosmos/scripts/cometbft-common.sh @@ -68,11 +68,28 @@ ct_merge_seeds() { ct_log "no official seeds fetched from $_url (continuing with configured)" fi fi + _seeds=$(ct_valid_peers "$_seeds") if [ -n "$_seeds" ]; then sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg" fi } +# ct_valid_peers LIST +# Keep only well-formed CometBFT peer entries (<40-hex node id>@:), drop and +# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes +# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31. +ct_valid_peers() { + _in="$1"; _out="" + for _p in $(echo "$_in" | tr ',' ' '); do + if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then + _out="${_out:+$_out,}$_p" + else + ct_log "dropping malformed peer entry: $_p" + fi + done + echo "$_out" +} + # ct_set_persistent_peers CONFIG_TOML PEERS # Handles both cometbft-classic `persistent_peers` (underscore) and forks that use # `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present. @@ -80,6 +97,8 @@ ct_set_persistent_peers() { _cfg="$1"; _peers="$2" [ -f "$_cfg" ] || return 0 [ -n "$_peers" ] || return 0 + _peers=$(ct_valid_peers "$_peers") + [ -n "$_peers" ] || return 0 sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg" sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg" return 0 diff --git a/cronos/scripts/cometbft-common.sh b/cronos/scripts/cometbft-common.sh index e2710b3f..4577698e 100644 --- a/cronos/scripts/cometbft-common.sh +++ b/cronos/scripts/cometbft-common.sh @@ -68,11 +68,28 @@ ct_merge_seeds() { ct_log "no official seeds fetched from $_url (continuing with configured)" fi fi + _seeds=$(ct_valid_peers "$_seeds") if [ -n "$_seeds" ]; then sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg" fi } +# ct_valid_peers LIST +# Keep only well-formed CometBFT peer entries (<40-hex node id>@:), drop and +# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes +# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31. +ct_valid_peers() { + _in="$1"; _out="" + for _p in $(echo "$_in" | tr ',' ' '); do + if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then + _out="${_out:+$_out,}$_p" + else + ct_log "dropping malformed peer entry: $_p" + fi + done + echo "$_out" +} + # ct_set_persistent_peers CONFIG_TOML PEERS # Handles both cometbft-classic `persistent_peers` (underscore) and forks that use # `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present. @@ -80,6 +97,8 @@ ct_set_persistent_peers() { _cfg="$1"; _peers="$2" [ -f "$_cfg" ] || return 0 [ -n "$_peers" ] || return 0 + _peers=$(ct_valid_peers "$_peers") + [ -n "$_peers" ] || return 0 sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg" sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg" return 0 diff --git a/haqq/scripts/cometbft-common.sh b/haqq/scripts/cometbft-common.sh index e2710b3f..4577698e 100644 --- a/haqq/scripts/cometbft-common.sh +++ b/haqq/scripts/cometbft-common.sh @@ -68,11 +68,28 @@ ct_merge_seeds() { ct_log "no official seeds fetched from $_url (continuing with configured)" fi fi + _seeds=$(ct_valid_peers "$_seeds") if [ -n "$_seeds" ]; then sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg" fi } +# ct_valid_peers LIST +# Keep only well-formed CometBFT peer entries (<40-hex node id>@:), drop and +# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes +# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31. +ct_valid_peers() { + _in="$1"; _out="" + for _p in $(echo "$_in" | tr ',' ' '); do + if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then + _out="${_out:+$_out,}$_p" + else + ct_log "dropping malformed peer entry: $_p" + fi + done + echo "$_out" +} + # ct_set_persistent_peers CONFIG_TOML PEERS # Handles both cometbft-classic `persistent_peers` (underscore) and forks that use # `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present. @@ -80,6 +97,8 @@ ct_set_persistent_peers() { _cfg="$1"; _peers="$2" [ -f "$_cfg" ] || return 0 [ -n "$_peers" ] || return 0 + _peers=$(ct_valid_peers "$_peers") + [ -n "$_peers" ] || return 0 sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg" sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg" return 0 diff --git a/haqq/scripts/init.sh b/haqq/scripts/init.sh index f7926ee1..7309a030 100755 --- a/haqq/scripts/init.sh +++ b/haqq/scripts/init.sh @@ -18,10 +18,10 @@ MIN_GAS="${MIN_GAS:-0.01hqq}" MONIKER="${MONIKER:-rpc-node}" # Polkachu seeds + official Haqq network seeds for reliable peer discovery -SEEDS="${SEEDS:-936e27a05f3cfb090507dd810395cbbd8efbffb0@65.109.115.172:24056,f4675b63b8872fb9216efa99428eb5b1fb297393@65.109.104.118:61256,6c9a6fc0e0d94bf303075e46560832e652cffc14@65.108.71.137:24056,7c153a83@peer.haqq.mainnet.dteam.tech:28656}" +SEEDS="${SEEDS:-936e27a05f3cfb090507dd810395cbbd8efbffb0@65.109.115.172:24056,f4675b63b8872fb9216efa99428eb5b1fb297393@65.109.104.118:61256,6c9a6fc0e0d94bf303075e46560832e652cffc14@65.108.71.137:24056}" # Optional persistent peers for additional bootstrap reliability -PERSISTENT_PEERS="${PERSISTENT_PEERS:-17e0fd08f04e062d18412808b8bf134e9ad34508@65.109.109.189:10656,e000b992a0066eae9e87c66e0d65229a76647509@198.96.92.242:32656,7c153a83@peer.haqq.mainnet.dteam.tech:28656,235ac65359582357b04754e838496545b3ba6429@haqq-seed-1.allnodes.me:26656,9573a569016378765444095484840d7f543d2800@haqq-seed-2.allnodes.me:26656}" +PERSISTENT_PEERS="${PERSISTENT_PEERS:-17e0fd08f04e062d18412808b8bf134e9ad34508@65.109.109.189:10656,e000b992a0066eae9e87c66e0d65229a76647509@198.96.92.242:32656,235ac65359582357b04754e838496545b3ba6429@haqq-seed-1.allnodes.me:26656,9573a569016378765444095484840d7f543d2800@haqq-seed-2.allnodes.me:26656}" ct_apk curl jq @@ -44,7 +44,10 @@ fi sed -i '/^\[rpc\]/,/^\[/{s|^laddr = .*|laddr = "tcp://0.0.0.0:26657"|}' "$CONFIG_DIR/config.toml" ct_patch_p2p "$CONFIG_DIR/config.toml" "$IP" "${P2P_PORT:-10465}" -ct_merge_seeds "$CONFIG_DIR/config.toml" "$SEEDS" "$ADDRBOOK_URL" +# The Polkachu addrbook is a JSON file handled by ct_set_addrbook above; it is NOT a +# seed list. Feeding it to ct_merge_seeds blew the sed argument past ARG_MAX (2026-09-07, +# rpc-de-31) and left haqqd unable to start. +ct_merge_seeds "$CONFIG_DIR/config.toml" "$SEEDS" ct_set_persistent_peers "$CONFIG_DIR/config.toml" "$PERSISTENT_PEERS" ct_set_moniker "$CONFIG_DIR/config.toml" "$MONIKER" ct_configure_statesync "$CONFIG_DIR/config.toml" "$STATESYNC_RPC" diff --git a/scripts/cometbft-common.sh b/scripts/cometbft-common.sh index e2710b3f..4577698e 100644 --- a/scripts/cometbft-common.sh +++ b/scripts/cometbft-common.sh @@ -68,11 +68,28 @@ ct_merge_seeds() { ct_log "no official seeds fetched from $_url (continuing with configured)" fi fi + _seeds=$(ct_valid_peers "$_seeds") if [ -n "$_seeds" ]; then sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg" fi } +# ct_valid_peers LIST +# Keep only well-formed CometBFT peer entries (<40-hex node id>@:), drop and +# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes +# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31. +ct_valid_peers() { + _in="$1"; _out="" + for _p in $(echo "$_in" | tr ',' ' '); do + if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then + _out="${_out:+$_out,}$_p" + else + ct_log "dropping malformed peer entry: $_p" + fi + done + echo "$_out" +} + # ct_set_persistent_peers CONFIG_TOML PEERS # Handles both cometbft-classic `persistent_peers` (underscore) and forks that use # `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present. @@ -80,6 +97,8 @@ ct_set_persistent_peers() { _cfg="$1"; _peers="$2" [ -f "$_cfg" ] || return 0 [ -n "$_peers" ] || return 0 + _peers=$(ct_valid_peers "$_peers") + [ -n "$_peers" ] || return 0 sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg" sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg" return 0 diff --git a/shibarium/scripts/cometbft-common.sh b/shibarium/scripts/cometbft-common.sh index e2710b3f..4577698e 100644 --- a/shibarium/scripts/cometbft-common.sh +++ b/shibarium/scripts/cometbft-common.sh @@ -68,11 +68,28 @@ ct_merge_seeds() { ct_log "no official seeds fetched from $_url (continuing with configured)" fi fi + _seeds=$(ct_valid_peers "$_seeds") if [ -n "$_seeds" ]; then sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg" fi } +# ct_valid_peers LIST +# Keep only well-formed CometBFT peer entries (<40-hex node id>@:), drop and +# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes +# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31. +ct_valid_peers() { + _in="$1"; _out="" + for _p in $(echo "$_in" | tr ',' ' '); do + if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then + _out="${_out:+$_out,}$_p" + else + ct_log "dropping malformed peer entry: $_p" + fi + done + echo "$_out" +} + # ct_set_persistent_peers CONFIG_TOML PEERS # Handles both cometbft-classic `persistent_peers` (underscore) and forks that use # `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present. @@ -80,6 +97,8 @@ ct_set_persistent_peers() { _cfg="$1"; _peers="$2" [ -f "$_cfg" ] || return 0 [ -n "$_peers" ] || return 0 + _peers=$(ct_valid_peers "$_peers") + [ -n "$_peers" ] || return 0 sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg" sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg" return 0 diff --git a/tac/scripts/cometbft-common.sh b/tac/scripts/cometbft-common.sh index e2710b3f..4577698e 100644 --- a/tac/scripts/cometbft-common.sh +++ b/tac/scripts/cometbft-common.sh @@ -68,11 +68,28 @@ ct_merge_seeds() { ct_log "no official seeds fetched from $_url (continuing with configured)" fi fi + _seeds=$(ct_valid_peers "$_seeds") if [ -n "$_seeds" ]; then sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg" fi } +# ct_valid_peers LIST +# Keep only well-formed CometBFT peer entries (<40-hex node id>@:), drop and +# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes +# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31. +ct_valid_peers() { + _in="$1"; _out="" + for _p in $(echo "$_in" | tr ',' ' '); do + if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then + _out="${_out:+$_out,}$_p" + else + ct_log "dropping malformed peer entry: $_p" + fi + done + echo "$_out" +} + # ct_set_persistent_peers CONFIG_TOML PEERS # Handles both cometbft-classic `persistent_peers` (underscore) and forks that use # `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present. @@ -80,6 +97,8 @@ ct_set_persistent_peers() { _cfg="$1"; _peers="$2" [ -f "$_cfg" ] || return 0 [ -n "$_peers" ] || return 0 + _peers=$(ct_valid_peers "$_peers") + [ -n "$_peers" ] || return 0 sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg" sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg" return 0