#!/bin/sh set -e # Exit on failure echo "MONIKER: $MONIKER" CHAINID=${CHAINID:-cronosmainnet_25-1} CHAINNAME=${CHAINNAME:-mainnet} API=${API:-eth,txpool,net,debug,web3} CONFIG_DIR="/root/.cronos/config" # Create config directory mkdir -p "$CONFIG_DIR" P2P_STRING="tcp:\/\/0\.0\.0\.0\:${P2P_PORT:-10521}" NAT_STRING="${IP}:${P2P_PORT:-10521}" env # this goes first because it won't overwrite shit apk add curl jq if [ $? -ne 0 ]; then exit 1; fi # Source the shared CometBFT helpers . /usr/local/bin/cometbft-common.sh if cronosd init ${MONIKER} --chain-id ${CHAINID} --home /root/.cronos/; then # Define variables GENESIS_URL="https://raw.githubusercontent.com/crypto-org-chain/cronos-mainnet/master/cronosmainnet_25-1/genesis.json" SEEDS="0d5cf1394a1cfde28dc8f023567222abc0f47534@cronos-seed-0.crypto.org:26656,3032073adc06d710dd512240281637c1bd0c8a7b@cronos-seed-1.crypto.org:26656,04f43116b4c6c70054d9c2b7485383df5b1ed1da@cronos-seed-2.crypto.org:26656" # Download config files curl -sL "$GENESIS_URL" -o "$CONFIG_DIR/genesis.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" else echo "Already initialized, continuing!" >&2 fi # Localize home directory paths ct_localize_home /root/.cronos/config # apply a port change to the config ct_patch_p2p "$CONFIG_DIR/config.toml" "$IP" "${P2P_PORT:-10521}" 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 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|^api = .*|api = \"$API\"|}" "$CONFIG_DIR/app.toml" # Set seeds ct_set_persistent_peers "$CONFIG_DIR/config.toml" "$SEEDS" # Configure state sync using official RPC endpoints ct_configure_statesync "$CONFIG_DIR/config.toml" "https://rpc-cronos.crypto.org:443,https://cronos-rpc.publicnode.com:443" 2000 # Update moniker if set if [ -n "$MONIKER" ] && [ -f "$CONFIG_DIR/config.toml" ]; then ct_set_moniker "$CONFIG_DIR/config.toml" "$MONIKER" fi exec cronosd start --chain-id ${CHAINID} $@