Files

105 lines
4.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export APP_BITCOIN_KNOTS_NODE_IP="10.21.21.7"
export APP_BITCOIN_KNOTS_TOR_PROXY_IP="10.21.22.12"
export APP_BITCOIN_KNOTS_I2P_DAEMON_IP="10.21.22.13"
export APP_BITCOIN_KNOTS_DATA_DIR="${EXPORTS_APP_DIR}/data/bitcoin"
export APP_BITCOIN_KNOTS_RPC_PORT="9332"
export APP_BITCOIN_KNOTS_P2P_PORT="9333"
# Дополнительный входящий прослушиватель P2P, предоставляющий разрешения из белого списка (whitebind) этому порту; только для доверенных внутренних приложений; не публиковать на внешних ресурсах
export APP_BITCOIN_KNOTS_P2P_WHITEBIND_PORT="9335"
export APP_BITCOIN_KNOTS_TOR_PORT="8334"
export APP_BITCOIN_KNOTS_ZMQ_RAWBLOCK_PORT="48332"
export APP_BITCOIN_KNOTS_ZMQ_RAWTX_PORT="48333"
export APP_BITCOIN_KNOTS_ZMQ_HASHBLOCK_PORT="48334"
export APP_BITCOIN_KNOTS_ZMQ_SEQUENCE_PORT="48335"
export APP_BITCOIN_KNOTS_ZMQ_HASHTX_PORT="48336"
# Это устаревшие переменные окружения, которые нам нужно сохранить для совместимости с DATUM.
export APP_BITCOIN_KNOTS_INTERNAL_RPC_PORT="9332"
export APP_BITCOIN_KNOTS_INTERNAL_P2P_PORT="9333"
export APP_BITCOIN_KNOTS_NETWORK="mainnet"
# Проверьте наличие существующего файла settings.json, чтобы переопределить APP_BITCOIN_NETWORK по выбору пользователя.
{
BITCOIN_APP_CONFIG_FILE="${EXPORTS_APP_DIR}/data/app/settings.json"
if [[ -f "${BITCOIN_APP_CONFIG_FILE}" ]]
then
bitcoin_app_network=$(jq -r '.chain' "${BITCOIN_APP_CONFIG_FILE}")
case $bitcoin_app_network in
"main")
APP_BITCOIN_KNOTS_NETWORK="mainnet";;
"test")
APP_BITCOIN_KNOTS_NETWORK="testnet";;
"testnet4")
APP_BITCOIN_KNOTS_NETWORK="testnet4";;
"signet")
APP_BITCOIN_KNOTS_NETWORK="signet";;
"regtest")
APP_BITCOIN_KNOTS_NETWORK="regtest";;
*)
if [[ -n "$bitcoin_app_network" ]] && [[ "$bitcoin_app_network" != "null" ]]; then
echo "Warning (${EXPORTS_APP_ID}): Invalid network '${bitcoin_app_network}' in settings.json. Exporting APP_BITCOIN_NETWORK as default 'mainnet'."
fi;;
esac
fi
} > /dev/null || true
BITCOIN_ENV_FILE="${EXPORTS_APP_DIR}/.env"
if [[ ! -f "${BITCOIN_ENV_FILE}" ]]; then
if [[ -z ${BITCOIN_RPC_USER+x} ]] || [[ -z ${BITCOIN_RPC_PASS+x} ]]; then
BITCOIN_RPC_USER="dfwebos"
BITCOIN_RPC_DETAILS=$("${EXPORTS_APP_DIR}/scripts/rpcauth.py" "${BITCOIN_RPC_USER}")
BITCOIN_RPC_PASS=$(echo "$BITCOIN_RPC_DETAILS" | tail -1)
fi
echo "export APP_BITCOIN_KNOTS_RPC_USER='${BITCOIN_RPC_USER}'" >> "${BITCOIN_ENV_FILE}"
echo "export APP_BITCOIN_KNOTS_RPC_PASS='${BITCOIN_RPC_PASS}'" >> "${BITCOIN_ENV_FILE}"
fi
. "${BITCOIN_ENV_FILE}"
# эхо "${APP_BITCOIN_KNOTS_COMMAND}"
rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-rpc/hostname"
p2p_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-p2p/hostname"
export APP_BITCOIN_KNOTS_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
export APP_BITCOIN_KNOTS_P2P_HIDDEN_SERVICE="$(cat "${p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
# параметр сети, совместимый с lectrs
export APP_BITCOIN_KNOTS_NETWORK_ELECTRS=$APP_BITCOIN_KNOTS_NETWORK
if [[ "${APP_BITCOIN_KNOTS_NETWORK_ELECTRS}" = "mainnet" ]]; then
APP_BITCOIN_KNOTS_NETWORK_ELECTRS="bitcoin"
fi
for var in \
NODE_IP \
TOR_PROXY_IP \
I2P_DAEMON_IP \
DATA_DIR \
RPC_PORT \
P2P_PORT \
P2P_WHITEBIND_PORT \
TOR_PORT \
ZMQ_RAWBLOCK_PORT \
ZMQ_RAWTX_PORT \
ZMQ_HASHBLOCK_PORT \
ZMQ_SEQUENCE_PORT \
ZMQ_HASHTX_PORT \
NETWORK \
RPC_USER \
RPC_PASS \
RPC_HIDDEN_SERVICE \
P2P_HIDDEN_SERVICE \
NETWORK_ELECTRS
do
bitcoin_var="APP_BITCOIN_${var}"
knots_var="APP_BITCOIN_KNOTS_${var}"
if [ -n "${!knots_var-}" ]; then
export "$bitcoin_var"="${!bitcoin_var:=${!knots_var}}"
else
echo "Warning: $knots_var is unset or empty"
fi
done