Files
DFWebOS-Apps/bitcoin/exports.sh

81 lines
4.3 KiB
Bash
Raw 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.
# IP-АДРЕСА
export APP_BITCOIN_NODE_IP="10.21.21.8"
export APP_BITCOIN_TOR_PROXY_IP="10.21.22.10"
export APP_BITCOIN_I2P_DAEMON_IP="10.21.22.11"
# КАТАЛОГ ДАННЫХ
export APP_BITCOIN_DATA_DIR="${EXPORTS_APP_DIR}/data/bitcoin"
# ПОРТЫ
export APP_BITCOIN_RPC_PORT="8332"
export APP_BITCOIN_P2P_PORT="8333"
# Дополнительный входящий прослушиватель P2P, предоставляющий разрешения из белого списка (whitebind) этому порту; только для доверенных внутренних приложений; не публиковать на внешних ресурсах
export APP_BITCOIN_P2P_WHITEBIND_PORT="8335"
# Начиная с версии 28.1, порт прослушивания луковицы по умолчанию теперь будет иметь значение -port + 1 вместо фиксированного значения (8334 в основной сети).
# У нас все в порядке, потому что мы всегда жестко запрограммируем порт на 8333 независимо от сети.
export APP_BITCOIN_TOR_PORT="8334"
export APP_BITCOIN_ZMQ_RAWBLOCK_PORT="28332"
export APP_BITCOIN_ZMQ_RAWTX_PORT="28333"
export APP_BITCOIN_ZMQ_HASHBLOCK_PORT="28334"
export APP_BITCOIN_ZMQ_SEQUENCE_PORT="28335"
export APP_BITCOIN_ZMQ_HASHTX_PORT="28336"
# СЕТЬ
export APP_BITCOIN_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_NETWORK="mainnet";;
"test")
APP_BITCOIN_NETWORK="testnet";;
"testnet4")
APP_BITCOIN_NETWORK="testnet4";;
"signet")
APP_BITCOIN_NETWORK="signet";;
"regtest")
APP_BITCOIN_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
# Файл .env для сохранения имени пользователя и пароля RPC.
BITCOIN_ENV_FILE="${EXPORTS_APP_DIR}/.env"
# Если файла .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_RPC_USER='${BITCOIN_RPC_USER}'" >> "${BITCOIN_ENV_FILE}"
echo "export APP_BITCOIN_RPC_PASS='${BITCOIN_RPC_PASS}'" >> "${BITCOIN_ENV_FILE}"
fi
# Создайте файл .env для экспорта APP_BITCOIN_RPC_USER и APP_BITCOIN_RPC_PASS.
. "${BITCOIN_ENV_FILE}"
# СКРЫТЫЕ УСЛУГИ
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_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
export APP_BITCOIN_P2P_HIDDEN_SERVICE="$(cat "${p2p_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
# TODO: было бы неплохо, чтобы Electrs занялся этим вместо этого, но удаление этого приведет к поломке существующих установок Electrs до тех пор, пока они не обновятся.
# Экспортируйте параметр сети, совместимый с lectres
# lectrs использует "bitcoin" вместо "mainnet", но соответствует всем остальным тестовым сетям.
export APP_BITCOIN_NETWORK_ELECTRS=$APP_BITCOIN_NETWORK
if [[ "${APP_BITCOIN_NETWORK_ELECTRS}" = "mainnet" ]]; then
APP_BITCOIN_NETWORK_ELECTRS="bitcoin"
fi