Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
manifestVersion: 1.1
|
||||
id: electrumx
|
||||
implements:
|
||||
- electrs
|
||||
category: bitcoin
|
||||
name: ElectrumX
|
||||
version: "1.16.0-patch.2"
|
||||
tagline: Легкий сервер Electrum
|
||||
description: >
|
||||
Запустите свой личный сервер Electrum и подключите свой кошелек, совместимый с Electrum,
|
||||
включая BitBoxApp, BlueWallet, Electrum Wallet (Android и настольный компьютер), Nunchuk
|
||||
(Десктоп), Phoenix и Sparrow Wallet вместо использования сторонних
|
||||
Сервер Электрум.
|
||||
|
||||
|
||||
Работает на ElectrumX от Томаса Фогтлина.
|
||||
|
||||
|
||||
Официальное приложение от DFWebOS.
|
||||
developer: DFWebOS
|
||||
website: https://dfwebos.com/
|
||||
dependencies:
|
||||
- bitcoin
|
||||
repo: https://github.com/getumbrel/umbrel-electrumx
|
||||
support: https://community.getumbrel.com/c/bitcoin-and-lightning
|
||||
port: 1999
|
||||
gallery:
|
||||
- 1.jpg
|
||||
- 2.jpg
|
||||
- 3.jpg
|
||||
path: ""
|
||||
defaultPassword: ""
|
||||
releaseNotes: >
|
||||
Это обновление добавляет поддержку резервного копирования в umbrelOS 1.5.
|
||||
submitter: DFWebOS
|
||||
submission: https://github.com/getumbrel/dfwebos-apps/pull/1813
|
||||
backupIgnore:
|
||||
- data/electrumx/meta
|
||||
- data/electrumx/hist
|
||||
@@ -0,0 +1,53 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
app_proxy:
|
||||
environment:
|
||||
APP_HOST: $APP_ELECTRUMX_IP
|
||||
APP_PORT: 3007
|
||||
|
||||
app:
|
||||
image: ghcr.io/getumbrel/umbrel-electrumx:1.0.0@sha256:2352ce668f722118e248c7b4458a6ea4509e5312e3cf1ee3963ddea35d395c09
|
||||
depends_on:
|
||||
- electrumx
|
||||
restart: on-failure
|
||||
environment:
|
||||
ELECTRUM_HIDDEN_SERVICE: "${APP_ELECTRUMX_RPC_HIDDEN_SERVICE}"
|
||||
ELECTRUM_LOCAL_SERVICE: "${DEVICE_DOMAIN_NAME}"
|
||||
ELECTRUM_HOST: "${APP_ELECTRUMX_NODE_IP}"
|
||||
ELECTRUM_PUBLIC_CONNECTION_PORT: "${APP_ELECTRUMX_PUBLIC_CONNECTION_PORT}"
|
||||
ELECTRUM_RPC_PORT: "${APP_ELECTRUMX_RPC_PORT}"
|
||||
BITCOIN_HOST: "${APP_BITCOIN_NODE_IP}"
|
||||
RPC_USER: "${APP_BITCOIN_RPC_USER}"
|
||||
RPC_PASSWORD: "${APP_BITCOIN_RPC_PASS}"
|
||||
RPC_PORT: "${APP_BITCOIN_RPC_PORT}"
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: $APP_ELECTRUMX_IP
|
||||
|
||||
electrumx:
|
||||
image: lukechilds/electrumx:v1.16.0@sha256:2949784536f8f85af229004e12e5b5c3a1d7428918a492f77b4e958035c2ae2a
|
||||
restart: always
|
||||
init: true
|
||||
environment:
|
||||
DAEMON_URL: "http://${APP_BITCOIN_RPC_USER}:${APP_BITCOIN_RPC_PASS}@${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}"
|
||||
COIN: "BitcoinSegwit"
|
||||
# https://github.com/spesmilo/electrumx/blob/master/electrumx/lib/coins.py
|
||||
NET: $APP_ELECTRUMX_BITCOIN_NETWORK
|
||||
volumes:
|
||||
- "${APP_DATA_DIR}/data/electrumx:/data"
|
||||
ports:
|
||||
- "${APP_ELECTRUMX_PUBLIC_CONNECTION_PORT}:${APP_ELECTRUMX_NODE_PORT}"
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: $APP_ELECTRUMX_NODE_IP
|
||||
|
||||
tor:
|
||||
image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a
|
||||
user: "1000:1000"
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro
|
||||
- ${TOR_DATA_DIR}:/data
|
||||
environment:
|
||||
HOME: "/tmp"
|
||||
@@ -0,0 +1,30 @@
|
||||
export APP_ELECTRUMX_IP="10.21.22.199"
|
||||
export APP_ELECTRUMX_NODE_IP="10.21.21.199"
|
||||
|
||||
export APP_ELECTRUMX_NODE_PORT="50001"
|
||||
export APP_ELECTRUMX_PUBLIC_CONNECTION_PORT="50003"
|
||||
export APP_ELECTRUMX_RPC_PORT="8000"
|
||||
|
||||
# ElectrumX NET принимает: mainnet, testnet, Signet, regtest, testnet4
|
||||
# Electrumx 1.16.0 не поддерживает Signet или TestNet4 (однако последние коммиты в репозитории поддерживают)
|
||||
export APP_ELECTRUMX_BITCOIN_NETWORK=$APP_BITCOIN_NETWORK
|
||||
if [[ "${BITCOIN_NETWORK}" == "testnet3" ]]; then
|
||||
export APP_ELECTRUMX_BITCOIN_NETWORK="testnet"
|
||||
fi
|
||||
|
||||
for var in \
|
||||
IP \
|
||||
NODE_IP \
|
||||
NODE_PORT \
|
||||
; do
|
||||
electrs_var="APP_ELECTRS_${var}"
|
||||
electrumx_var="APP_ELECTRUMX_${var}"
|
||||
if [ -n "${!electrumx_var-}" ]; then
|
||||
export "$electrs_var"="${!electrs_var:=${!electrumx_var}}"
|
||||
else
|
||||
echo "Warning: $electrumx_var is unset or empty"
|
||||
fi
|
||||
done
|
||||
|
||||
rpc_hidden_service_file="${EXPORTS_TOR_DATA_DIR}/app-${EXPORTS_APP_ID}-tpc/hostname"
|
||||
export APP_ELECTRUMX_RPC_HIDDEN_SERVICE="$(cat "${rpc_hidden_service_file}" 2>/dev/null || echo "notyetset.onion")"
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Отложите загрузку ElectrumX до тех пор, пока скрытая служба Tor RPC не будет готова.
|
||||
|
||||
HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-tpc/hostname"
|
||||
|
||||
if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach electrumx
|
||||
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor
|
||||
|
||||
echo "App: ${APP_ID} - Generating Tor Hidden Service..."
|
||||
|
||||
for attempt in $(seq 1 100); do
|
||||
if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then
|
||||
echo "App: ${APP_ID} - Hidden service file created successfully!"
|
||||
break
|
||||
fi
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then
|
||||
echo "App: ${APP_ID} - Hidden service file wasn't created"
|
||||
fi
|
||||
@@ -0,0 +1,4 @@
|
||||
# ElectrumX RPC Скрытая служба
|
||||
HiddenServiceDir /data/app-$APP_ID-tpc
|
||||
HiddenServicePort $APP_ELECTRUMX_NODE_PORT $APP_ELECTRUMX_NODE_IP:$APP_ELECTRUMX_NODE_PORT
|
||||
HiddenServicePort $APP_ELECTRUMX_PUBLIC_CONNECTION_PORT $APP_ELECTRUMX_NODE_IP:$APP_ELECTRUMX_NODE_PORT
|
||||
Reference in New Issue
Block a user