cronos: add mainnet bootstrap config #28
@@ -1,69 +1,53 @@
|
||||
#!/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
|
||||
# cronosd entrypoint — Cronos (Cosmos-SDK + embedded EVM). EVM JSON-RPC :8545 / WS :8546
|
||||
# are the dshackle/traefik upstream; CometBFT :26657 stays internal. Bootstrap params
|
||||
# (chain_id, genesis_url, seeds, app.toml tunables) come from context.yml via env.
|
||||
set -e
|
||||
. /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"
|
||||
HOME_DIR="/root/.cronos"
|
||||
CONFIG_DIR="$HOME_DIR/config"
|
||||
CHAINID="${CHAINID:-cronosmainnet_25-1}"
|
||||
API="${API:-eth,txpool,net,debug,web3}"
|
||||
GENESIS_URL="${GENESIS_URL:-https://raw.githubusercontent.com/crypto-org-chain/cronos-mainnet/master/cronosmainnet_25-1/genesis.json}"
|
||||
SEEDS="${SEEDS:-0d5cf1394a1cfde28dc8f023567222abc0f47534@seed-0.cronos.com:26656,3032073adc06d710dd512240281637c1bd0c8a7b@seed-1.cronos.com:26656,04f43116b4c6c70054d9c2b7485383df5b1ed1da@seed-2.cronos.com:26656,337377dcda43d79c537d2c4d93ad3b698ce9452e@bd-cronos-mainnet-seed-node-01.bdnodes.net:26656}"
|
||||
JSON_RPC_ENABLE="${JSON_RPC_ENABLE:-true}"
|
||||
JSON_RPC_ENABLE_INDEXER="${JSON_RPC_ENABLE_INDEXER:-true}"
|
||||
JSON_RPC_FEEHISTORY_CAP="${JSON_RPC_FEEHISTORY_CAP:-100}"
|
||||
JSON_RPC_LOGS_CAP="${JSON_RPC_LOGS_CAP:-10000}"
|
||||
JSON_RPC_BLOCK_RANGE_CAP="${JSON_RPC_BLOCK_RANGE_CAP:-10000}"
|
||||
JSON_RPC_HTTP_TIMEOUT="${JSON_RPC_HTTP_TIMEOUT:-30s}"
|
||||
EVM_MAX_TX_GAS_WANTED="${EVM_MAX_TX_GAS_WANTED:-500000}"
|
||||
|
||||
ct_apk curl jq
|
||||
|
||||
if cronosd init "${MONIKER:-rpc-node}" --chain-id "$CHAINID" --home "$HOME_DIR" >/dev/null 2>&1; then
|
||||
ct_log "fresh init; fetching genesis"
|
||||
ct_fetch "$GENESIS_URL" "$CONFIG_DIR/genesis.json" required
|
||||
ct_localize_home "$CONFIG_DIR"
|
||||
else
|
||||
echo "Already initialized, continuing!" >&2
|
||||
ct_log "already initialized, continuing"
|
||||
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 -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"
|
||||
sed -i "/^\[json-rpc\]/,/^\[/{s|^enable = .*|enable = $JSON_RPC_ENABLE|}" "$CONFIG_DIR/app.toml"
|
||||
sed -i "/^\[json-rpc\]/,/^\[/{s|^enable-indexer = .*|enable-indexer = $JSON_RPC_ENABLE_INDEXER|}" "$CONFIG_DIR/app.toml"
|
||||
sed -i "/^\[json-rpc\]/,/^\[/{s|^feehistory-cap = .*|feehistory-cap = $JSON_RPC_FEEHISTORY_CAP|}" "$CONFIG_DIR/app.toml"
|
||||
sed -i "/^\[json-rpc\]/,/^\[/{s|^logs-cap = .*|logs-cap = $JSON_RPC_LOGS_CAP|}" "$CONFIG_DIR/app.toml"
|
||||
sed -i "/^\[json-rpc\]/,/^\[/{s|^block-range-cap = .*|block-range-cap = $JSON_RPC_BLOCK_RANGE_CAP|}" "$CONFIG_DIR/app.toml"
|
||||
sed -i "/^\[json-rpc\]/,/^\[/{s|^http-timeout = .*|http-timeout = \"$JSON_RPC_HTTP_TIMEOUT\"|}" "$CONFIG_DIR/app.toml"
|
||||
sed -i "/^\[evm\]/,/^\[/{s|^max-tx-gas-wanted = .*|max-tx-gas-wanted = $EVM_MAX_TX_GAS_WANTED|}" "$CONFIG_DIR/app.toml"
|
||||
|
||||
# Set seeds
|
||||
ct_set_persistent_peers "$CONFIG_DIR/config.toml" "$SEEDS"
|
||||
|
||||
# Configure state sync using official RPC endpoints
|
||||
ct_patch_p2p "$CONFIG_DIR/config.toml" "$IP" "${P2P_PORT:-10521}"
|
||||
ct_merge_seeds "$CONFIG_DIR/config.toml" "$SEEDS"
|
||||
ct_configure_statesync "$CONFIG_DIR/config.toml" "https://rpc-cronos.crypto.org:443,https://cronos-rpc.publicnode.com:443" 2000
|
||||
ct_set_moniker "$CONFIG_DIR/config.toml" "${MONIKER:-rpc-node}"
|
||||
|
||||
# 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} $@
|
||||
exec cronosd start --chain-id "$CHAINID" "$@"
|
||||
|
||||
Reference in New Issue
Block a user