tmkms-stack/stack-orchestrator/config/tmkms/run.sh
2025-06-11 14:17:31 +05:30

59 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
if [[ -n "$CERC_SCRIPT_DEBUG" ]]; then
set -x
fi
set -e
TMKMS_HOME=/home/tmkmsuser/tmkms
INPUT_PRIV_KEY_FILE=$TMKMS_HOME/tmp/priv_validator_key.json
TMKMS_SECRETS_DIR=$TMKMS_HOME/secrets
TMKMS_STATE_DIR=$TMKMS_HOME/state
echo "Initializing tmkms configuration..."
# Initialize tmkms config
tmkms init $TMKMS_HOME
# Generate a new softsign key
echo "Generating new softsign key..."
tmkms softsign keygen $TMKMS_SECRETS_DIR/kms-identity.key
# Update tmkms.toml
echo "Updating tmkms.toml with chain_id, node IP, and key prefixes..."
# Add chain configuration
cat <<EOF > $TMKMS_HOME/tmkms.toml
[[chain]]
id = "$CERC_CHAIN_ID"
key_format = { type = "cosmos-json", account_key_prefix = "${CERC_KEY_PREFIX}pub", consensus_key_prefix = "${CERC_KEY_PREFIX}valconspub" }
state_file = "$TMKMS_STATE_DIR/priv_validator_state.json"
[[validator]]
chain_id = "$CERC_CHAIN_ID"
addr = "tcp://$NODE_IP:$NODE_PORT"
secret_key = "$TMKMS_SECRETS_DIR/kms-identity.key"
protocol_version = "v0.34"
reconnect = true
[[providers.softsign]]
key_type = "consensus"
path = "$TMKMS_SECRETS_DIR/priv_validator_key"
chain_ids = ["$CERC_CHAIN_ID"]
EOF
# Place validator key in secrets directory
cp $INPUT_PRIV_KEY_FILE $TMKMS_SECRETS_DIR/priv_validator_key.json
# Import the private validator key into tmkms
echo "Importing private validator key into tmkms..."
tmkms softsign import $TMKMS_SECRETS_DIR/priv_validator_key.json $TMKMS_SECRETS_DIR/priv_validator_key
# Remove the JSON key file
rm $TMKMS_SECRETS_DIR/priv_validator_key.json
echo "Starting tmkms..."
tmkms start --config $TMKMS_HOME/tmkms.toml