Files
nym/docker/validator/start.sh
T
Tommy Verrall 546054615a typos
2025-05-07 12:14:19 +02:00

55 lines
2.8 KiB
Bash
Executable File

#!/bin/sh
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":/home/nym
PASSPHRASE=passphrase
APP_NAME=nyxd
OUTPUT_DIRECTORY="/home/nym/output"
VALIDATOR_DATA_DIRECTORY="/home/nym/.${APP_NAME}"
if [ ! -f "${VALIDATOR_DATA_DIRECTORY}/config/genesis.json" ]; then
# initialise the validator
./${APP_NAME} init "${CHAIN_ID}" --chain-id "${CHAIN_ID}" 2>/dev/null
echo "init chain successful"
sleep 2
# staking/governance token is hardcoded in config
echo "changing params"
sed -i "s/\"stake\"/\"u${STAKE_DENOM}\"/" "${VALIDATOR_DATA_DIRECTORY}/config/genesis.json"
sed -i 's/minimum-gas-prices = "0stake"/minimum-gas-prices = "0.025u'"${DENOM}"'"/' "${VALIDATOR_DATA_DIRECTORY}/config/app.toml"
sed -i '0,/enable = false/s//enable = true/g' "${VALIDATOR_DATA_DIRECTORY}/config/app.toml"
if [ "$RETAIN_BLOCKS" = "no" ]; then
# amending to say if min retain blocks should be set yes or no...
sed -i 's/min-retain-blocks = 0/min-retain-blocks = 70000/' "${VALIDATOR_DATA_DIRECTORY}/config/app.toml"
fi
sed -i 's/cors_allowed_origins = \[\]/cors_allowed_origins = \["*"\]/' "${VALIDATOR_DATA_DIRECTORY}/config/config.toml"
sed -i 's/create_empty_blocks = true/create_empty_blocks = false/' "${VALIDATOR_DATA_DIRECTORY}/config/config.toml"
sed -i 's/laddr = "tcp:\/\/127.0.0.1:26657"/laddr = "tcp:\/\/0.0.0.0:26657"/' "${VALIDATOR_DATA_DIRECTORY}/config/config.toml"
sed -i 's/address = "tcp:\/\/localhost:1317"/address = "tcp:\/\/0.0.0.0:1317"/' "${VALIDATOR_DATA_DIRECTORY}/config/app.toml"
echo "params changed"
# create accounts
echo "adding parent mnemonic account details"
yes "${PASSPHRASE}" | ./${APP_NAME} keys add node_admin 2>&1 >/dev/null | tail -n 1 >${OUTPUT_DIRECTORY}/genesis_mnemonic
# Add secondary account
yes "${PASSPHRASE}" | ./${APP_NAME} keys add secondary 2>&1 >/dev/null | tail -n 1 >${OUTPUT_DIRECTORY}/secondary_mnemonic
# add genesis accounts with some initial tokens
echo "adding genesis account details"
GENESIS_ADDRESS=$(yes "${PASSPHRASE}" | ./${APP_NAME} keys show node_admin -a)
SECONDARY_ADDRESS=$(yes "${PASSPHRASE}" | ./${APP_NAME} keys show secondary -a)
yes "${PASSPHRASE}" | ./${APP_NAME} genesis add-genesis-account "${GENESIS_ADDRESS}" 1000000000000000u"${DENOM}",1000000000000000u"${STAKE_DENOM}"
yes "${PASSPHRASE}" | ./${APP_NAME} genesis add-genesis-account "${SECONDARY_ADDRESS}" 1000000000000000u"${DENOM}",1000000000000000u"${STAKE_DENOM}"
echo "adding gentx time :)"
yes "${PASSPHRASE}" | ./${APP_NAME} genesis gentx node_admin 100000000000u"${STAKE_DENOM}" --chain-id "${CHAIN_ID}" 2>/dev/null
./${APP_NAME} genesis collect-gentxs 2>/dev/null
./${APP_NAME} genesis validate-genesis >/dev/null
# copy genesis file
cp "${VALIDATOR_DATA_DIRECTORY}/config/genesis.json" "${OUTPUT_DIRECTORY}/genesis.json"
fi
./${APP_NAME} start