diff --git a/haqq/scripts/init.sh b/haqq/scripts/init.sh index 57222b50..5ebc4b94 100644 --- a/haqq/scripts/init.sh +++ b/haqq/scripts/init.sh @@ -1,64 +1,49 @@ #!/bin/sh +# haqq entrypoint — family C, cosmos app with built-in EVM JSON-RPC (C2). +# Uses the shared cometbft-common.sh helpers and injects official mainnet seeds. +set -e +. /usr/local/bin/cometbft-common.sh -set -e # Exit on failure +HOME_DIR="/root/.haqqd" +CONFIG_DIR="$HOME_DIR/config" +CHAINID="${CHAINID:-haqq_11235-1}" +CHAINNAME="${CHAINNAME:-mainnet}" +API="${API:-eth,txpool,net,debug,web3}" +GENESIS_URL="${GENESIS_URL:-https://raw.githubusercontent.com/haqq-network/${CHAINNAME}/master/genesis.json}" +ADDRBOOK_URL="${ADDRBOOK_URL:-https://raw.githubusercontent.com/haqq-network/${CHAINNAME}/master/addrbook.json}" -echo "MONIKER: $MONIKER" +# Official HAQQ mainnet seeds +SEEDS="861e5892470275a394ebab407e8d62b1931843d3@192.248.181.17:26656,e1b058e5cfa2b836ddaa496b10911da62dcf182e@haqq-seed-de.allnodes.me:26656,e726816f42831689eab9378d5d577f1d06d25716@haqq-seed-us.allnodes.me:26656,0533e20e65912f72f2ad88a4c91eefbc634212d7@haqq-sync.rpc.p2p.world:26656,c45991e0098b9cacb8603caf4e1cdb7e6e5f87c0@eu.seed.haqq.network:26656,e37cb47590ba46b503269ef255873e9698244d8b@us.seed.haqq.network:26656,c593e93e1fb8be8b48d4e7bab514a227aa620bf8@as.seed.haqq.network:26656,0265238d4845e041868d610c100b88f485eeddfb@rpc.haqq.nodestake.top:666" -CHAINID=${CHAINID:-haqq_11235-1} -CHAINNAME=${CHAINNAME:-mainnet} -API=${API:-eth,net,web3} +ct_apk curl -CONFIG_DIR="/root/.haqqd/config" - -# Create config directory -mkdir -p "$CONFIG_DIR" - -P2P_STRING="tcp:\\/\\/0\\.0\\.0\\.0\\:${P2P_PORT:-10465}" -NAT_STRING="${IP}:${P2P_PORT:-10465}" - -env - -# this goes first because it won't overwrite shit -apk add curl -if [ $? -ne 0 ]; then exit 1; fi - -if haqqd init ${MONIKER} --chain-id ${CHAINID} --home /root/.haqqd/; then - # Define variables - GENESIS_URL="https://raw.githubusercontent.com/haqq-network/${CHAINNAME}/master/genesis.json" - ADDRESSBOOK_URL="https://raw.githubusercontent.com/haqq-network/${CHAINNAME}/master/addrbook.json" - - # Download config files - curl -sL "$GENESIS_URL" -o "$CONFIG_DIR/genesis.json" - curl -sL "$ADDRESSBOOK_URL" -o "$CONFIG_DIR/addressbook.json" - - # somehow it's better to make home static to /root - sed -i 's|~/|/root/|g' "$CONFIG_DIR/config.toml" - sed -i 's|~/|/root/|g' "$CONFIG_DIR/app.toml" +if haqqd init "$MONIKER" --chain-id "$CHAINID" --home "$HOME_DIR"; then + ct_log "fresh init; fetching config" + ct_fetch "$GENESIS_URL" "$CONFIG_DIR/genesis.json" required + ct_fetch "$ADDRBOOK_URL" "$CONFIG_DIR/addrbook.json" optional + ct_localize_home "$CONFIG_DIR" + ct_set_min_gas_prices "$CONFIG_DIR/app.toml" "0.01hqq" else - echo "Already initialized, continuing!" >&2 + ct_log "already initialized, continuing" fi - -# apply a port change to the config -sed -i "/^\[p2p\]/,/^\[/{s|^laddr = .*|laddr = \"$P2P_STRING\"|}" "$CONFIG_DIR/config.toml" -#sed -i "s/^laddr = \".*\"/laddr = \"$P2P_STRING\"/" "$CONFIG_DIR/config.toml" -sed -i "/^\[p2p\]/,/^\[/{s|^external_address = .*|external_address = \"$NAT_STRING\"|}" "$CONFIG_DIR/config.toml" - -#sed -i 's/minimum-gas-prices = ""/minimum-gas-prices = "0.01hqq"/g' $CONFIG_DIR/app.toml - -sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $CONFIG_DIR/app.toml -sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $CONFIG_DIR/app.toml -sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $CONFIG_DIR/app.toml -sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $CONFIG_DIR/config.toml - +# Enable JSON-RPC with correct settings +sed -i "/^\[json-rpc\]/,/^\[/{s|^enable = .*|enable = true|}" "$CONFIG_DIR/app.toml" sed -i "/^\[json-rpc\]/,/^\[/{s|^address = .*|address = \"0.0.0.0:8545\"|}" "$CONFIG_DIR/app.toml" sed -i "/^\[json-rpc\]/,/^\[/{s|^ws-address = .*|ws-address = \"0.0.0.0:8546\"|}" "$CONFIG_DIR/app.toml" sed -i "/^\[json-rpc\]/,/^\[/{s|^metrics-address = .*|metrics-address = \"0.0.0.0:6065\"|}" "$CONFIG_DIR/app.toml" sed -i "/^\[json-rpc\]/,/^\[/{s|^api = .*|api = \"$API\"|}" "$CONFIG_DIR/app.toml" -# Update moniker if set -if [ -n "$MONIKER" ] && [ -f "$CONFIG_DIR/config.toml" ]; then - sed -i "s/^moniker = \".*\"/moniker = \"$MONIKER\"/" "$CONFIG_DIR/config.toml" -fi +# Pruning + indexing settings +sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" "$CONFIG_DIR/app.toml" +sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" "$CONFIG_DIR/app.toml" +sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" "$CONFIG_DIR/app.toml" +sed -i -e "s/^indexer *=.*/indexer = \"null\"/" "$CONFIG_DIR/config.toml" -exec haqqd start --chain-id ${CHAINID} $@ +# P2P: bind 0.0.0.0, advertise IP + port, inject official seeds +ct_patch_p2p "$CONFIG_DIR/config.toml" "$IP" "${P2P_PORT:-10465}" +ct_merge_seeds "$CONFIG_DIR/config.toml" "$SEEDS" +ct_set_moniker "$CONFIG_DIR/config.toml" "$MONIKER" +ct_seed_priv_validator_state "$HOME_DIR" + +exec haqqd start --chain-id "$CHAINID" "$@"