57 lines
1.7 KiB
Bash
Raw Normal View History

#!/bin/bash
set -o errexit -o nounset -o pipefail
2020-12-08 09:03:14 +01:00
command -v shellcheck >/dev/null && shellcheck "$0"
2021-06-09 17:15:02 +02:00
gnused="$(command -v gsed || echo sed)"
# Tendermint settings must be specified
# Choose version from https://hub.docker.com/r/tendermint/tendermint/tags/
for SETTING in "TENDERMINT_IMAGE" "TENDERMINT_PORT" "TENDERMINT_NAME"; do
2020-12-08 09:03:14 +01:00
if test -z "$(eval echo "\$$SETTING")"; then
echo "\$$SETTING must be set when running this script"
exit 1
fi
done
TMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/tendermint.XXXXXXXXX")
chmod 777 "${TMP_DIR}"
echo "Using temporary dir $TMP_DIR"
LOGFILE="$TMP_DIR/tendermint.log"
docker run --rm \
--user="$UID" \
-v "${TMP_DIR}:${TENDERMINT_ROOT}" \
"${TENDERMINT_IMAGE}" \
2022-06-13 16:21:22 +02:00
init validator
# make sure we allow cors origins, only possible by modifying the config file
# https://github.com/tendermint/tendermint/issues/3216
#
# Tendermint <= 0.34 uses underscores
2021-06-09 17:15:02 +02:00
"$gnused" -i -e 's/^cors_allowed_origins =.*$/cors_allowed_origins = ["*"]/' "${TMP_DIR}/config/config.toml"
# Tendermint 0.35 uses dashes
"$gnused" -i -e 's/^cors-allowed-origins =.*$/cors-allowed-origins = ["*"]/' "${TMP_DIR}/config/config.toml"
# must enable tx index for search and subscribe
docker run --rm \
--user="$UID" \
--name "$TENDERMINT_NAME" \
-p "${TENDERMINT_PORT}:26657" -v "${TMP_DIR}:${TENDERMINT_ROOT}" \
-e "TM_TX_INDEX_INDEX_ALL_KEYS=true" \
2022-06-13 16:21:22 +02:00
-e "PROXY_APP=kvstore" \
-e "LOG_LEVEL=state:info,rpc:info,*:error" \
"${TENDERMINT_IMAGE}" node \
--rpc.laddr=tcp://0.0.0.0:26657 \
2022-06-13 16:21:22 +02:00
>"$LOGFILE" 2>&1 &
echo "Tendermint running and logging into $LOGFILE"
if [ -n "${CI:-}" ]; then
# Give process some time to come alive. No idea why this helps. Needed for CI.
sleep 0.5
# Debug start
sleep 3
cat "$LOGFILE"
fi