cronos-mainnet: add cronosd init script and Dockerfile (chain 25) #11
11
cronos/cometbft.Dockerfile
Normal file
11
cronos/cometbft.Dockerfile
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
ARG CRONOS_CRONOS_IMAGE
|
||||||
|
ARG CRONOS_CRONOS_VERSION
|
||||||
|
FROM ${CRONOS_CRONOS_IMAGE}:${CRONOS_CRONOS_VERSION}
|
||||||
|
# Layer the shared CometBFT bootstrap lib + the chain init.sh onto the upstream
|
||||||
|
# cronos binary image (alpine-based, has sh+apk; runs nonroot by default — the compose
|
||||||
|
# sets user: root so init.sh can apk-add curl and write the /root home).
|
||||||
|
USER root
|
||||||
|
COPY ./scripts/cometbft-common.sh /usr/local/bin/cometbft-common.sh
|
||||||
|
COPY ./scripts/init.sh /usr/local/bin/init.sh
|
||||||
|
RUN chmod +x /usr/local/bin/init.sh /usr/local/bin/cometbft-common.sh
|
||||||
|
ENTRYPOINT ["init.sh"]
|
||||||
69
cronos/scripts/init.sh
Normal file
69
cronos/scripts/init.sh
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
#!/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} $@
|
||||||
Reference in New Issue
Block a user