105 lines
4.1 KiB
Bash
105 lines
4.1 KiB
Bash
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 |