From 1f55d7bc0e9d4461248cea2c258d589506e98ea3 Mon Sep 17 00:00:00 2001 From: Andrew Camilleri Date: Thu, 2 Jul 2020 05:43:58 +0200 Subject: [PATCH] Add Lightning Watchtower TEOS + add zmq fragment (#320) * Add Lightning Watchtower TEOS + add zmq fragment * add txindex requirement * update port * add zmqpubhashblock * update zmq port * expose port * Update opt-add-zmq.yml * update image * update local docker builder --- README.md | 2 + contrib/DockerFileBuildHelper/Program.cs | 8 ++++ contrib/build-all-images.sh | 16 ++++++++ .../docker-fragments/bgold-lnd.yml | 17 +++----- .../docker-fragments/bitcoin-eclair.yml | 7 ++-- .../docker-fragments/bitcoin-lnd.yml | 8 ++-- .../docker-fragments/groestlcoin-eclair.yml | 9 ++--- .../docker-fragments/groestlcoin-lnd.yml | 13 ++----- .../docker-fragments/litecoin-lnd.yml | 14 ++----- .../docker-fragments/opt-add-teos.yml | 35 +++++++++++++++++ .../docker-fragments/opt-add-tor.yml | 7 ++++ .../docker-fragments/opt-add-zmq.yml | 39 +++++++++++++++++++ 12 files changed, 130 insertions(+), 45 deletions(-) create mode 100644 docker-compose-generator/docker-fragments/opt-add-teos.yml create mode 100644 docker-compose-generator/docker-fragments/opt-add-zmq.yml diff --git a/README.md b/README.md index d201668..439192a 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,7 @@ Available `BTCPAYGEN_ADDITIONAL_FRAGMENTS` currently are: * [opt-add-configurator](docker-compose-generator/docker-fragments/opt-add-configurator.yml), to integrate the [BTCPay Server Configurator](https://install.btcpayserver.org) to manage your BTCPay deployment through a UI, and to allow new deployments elsewhere easily. * [opt-add-pihole](docker-compose-generator/docker-fragments/opt-add-pihole.yml) ([See the documentation](docs/pihole.md)) * [opt-add-thunderhub](docker-compose-generator/docker-fragments/opt-add-thunderhub.yml) for a LND Lightning Node Manager in your Browser. Maintained by [apotdevin](https://github.com/apotdevin). +* [opt-add-teos](docker-compose-generator/docker-fragments/opt-add-teos.yml) for [The Eye Of Satoshi](https://github.com/talaia-labs/python-teos), a BOLT13 Lightning Watchtower. Use port 9814 on your server or Tor to connect. You can also create your own [custom fragments](#how-can-i-customize-the-generated-docker-compose-file). @@ -357,6 +358,7 @@ We are trying to update our dependencies to run on `arm32v7` and `x64` boards. H | lukechilds/electrumx | latest | [✔️](https://raw.githubusercontent.com/lukechilds/docker-electrumx/master/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/lukechilds/docker-electrumx) - [DockerHub](https://hub.docker.com/r/lukechilds/electrumx) | | jvandrew/librepatron | 0.7.39 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/patron/v0.7.39/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/patron) - [DockerHub](https://hub.docker.com/r/jvandrew/librepatron) | | jvandrew/isso | atron.22 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/isso/patron.22/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/isso) - [DockerHub](https://hub.docker.com/r/jvandrew/isso) | +| talaia/python-teos | latest | [✔️](https://raw.githubusercontent.com/talaia-labs/python-teos/master/docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/talaia-labs/python-teos/master/docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/talaia-labs/python-teos/master/docker/Dockerfile) | [Github](https://github.com/talaia-labs/python-teos) - [DockerHub](https://hub.docker.com/r/talaia/python-teos) | | apotdevin/thunderhub | v0.8.5 | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.8.5/Dockerfile) | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.8.5/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.8.5/arm64v8.Dockerfile) | [Github](https://github.com/apotdevin/thunderhub) - [DockerHub](https://hub.docker.com/r/apotdevin/thunderhub) | | btcpayserver/docker-woocommerce | 3.0.6-3 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-woocommerce/v3.0.6-3/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/btcpayserver/docker-woocommerce) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-woocommerce) | | mariadb | 10.3 | [✔️](https://raw.githubusercontent.com/docker-library/mariadb/master/10.3/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/mariadb) - [DockerHub](https://hub.docker.com/_/mariadb) | diff --git a/contrib/DockerFileBuildHelper/Program.cs b/contrib/DockerFileBuildHelper/Program.cs index 98f8822..9c1bb7f 100644 --- a/contrib/DockerFileBuildHelper/Program.cs +++ b/contrib/DockerFileBuildHelper/Program.cs @@ -551,6 +551,14 @@ namespace DockerFileBuildHelper dockerInfo.GitLink = "https://github.com/apotdevin/thunderhub"; dockerInfo.GitRef = $"{image.Tag.Split('-')[0]}"; dockerInfo.SupportedByUs = false; + break; + case "python-teos": + dockerInfo.DockerFilePath = $"docker/Dockerfile"; + dockerInfo.DockerFilePathARM32v7 = $"docker/Dockerfile"; + dockerInfo.DockerFilePathARM64v8 = $"docker/Dockerfile"; + dockerInfo.GitLink = "https://github.com/talaia-labs/python-teos"; + dockerInfo.GitRef = $"master"; + dockerInfo.SupportedByUs = false; break; default: if (firstTry) diff --git a/contrib/build-all-images.sh b/contrib/build-all-images.sh index 4dc83c4..8b55e2f 100755 --- a/contrib/build-all-images.sh +++ b/contrib/build-all-images.sh @@ -639,6 +639,22 @@ docker build -f "$DOCKERFILE" -t "pihole/pihole:v5.0" . cd - && cd .. +# Build python-teos +# https://raw.githubusercontent.com/talaia-labs/python-teos/master/docker/Dockerfile +DOCKERFILE="docker/Dockerfile" +# https://raw.githubusercontent.com/talaia-labs/python-teos/master/docker/Dockerfile +[[ "$(uname -m)" == "armv7l" ]] && DOCKERFILE="docker/Dockerfile" +# https://raw.githubusercontent.com/talaia-labs/python-teos/master/docker/Dockerfile +[[ "$(uname -m)" == "aarch64" ]] && DOCKERFILE="docker/Dockerfile" +echo "Building talaia/python-teos:latest" +git clone https://github.com/talaia-labs/python-teos python-teos +cd python-teos +git checkout master +cd "$(dirname $DOCKERFILE)" +docker build -f "$DOCKERFILE" -t "talaia/python-teos:latest" . +cd - && cd .. + + # Build thunderhub # https://raw.githubusercontent.com/apotdevin/thunderhub/v0.8.5/Dockerfile DOCKERFILE="Dockerfile" diff --git a/docker-compose-generator/docker-fragments/bgold-lnd.yml b/docker-compose-generator/docker-fragments/bgold-lnd.yml index 73573db..ef9b8e9 100644 --- a/docker-compose-generator/docker-fragments/bgold-lnd.yml +++ b/docker-compose-generator/docker-fragments/bgold-lnd.yml @@ -31,21 +31,11 @@ services: btcpayserver: environment: - BTCPAY_BTCLIGHTNING: "type=lnd-rest;server=http://lnd_bitcoingold:8080/;macaroonfilepath=/etc/lnd_bitcoingold/admin.macaroon;allowinsecure=true" + BTCPAY_BTGLIGHTNING: "type=lnd-rest;server=http://lnd_bitcoingold:8080/;macaroonfilepath=/etc/lnd_bitcoingold/admin.macaroon;allowinsecure=true" volumes: - "lnd_bitcoingold_datadir:/etc/lnd_bitcoingold" links: - lnd_bitcoingold - - bgoldd: - environment: - BITCOIN_EXTRA_ARGS: | - zmqpubrawtx=tcp://0.0.0.0:28332 - zmqpubrawblock=tcp://0.0.0.0:28332 - zmqpubrawtxlock=tcp://0.0.0.0:28332 - zmqpubhashblock=tcp://0.0.0.0:28332 - expose: - - "28332" nginx: links: @@ -59,4 +49,7 @@ services: - "lnd_bitcoingold_datadir:/lnd" volumes: - lnd_bitcoingold_datadir: \ No newline at end of file + lnd_bitcoingold_datadir: + +required: + - "opt-add-zmq" \ No newline at end of file diff --git a/docker-compose-generator/docker-fragments/bitcoin-eclair.yml b/docker-compose-generator/docker-fragments/bitcoin-eclair.yml index fcc17ba..82f2505 100644 --- a/docker-compose-generator/docker-fragments/bitcoin-eclair.yml +++ b/docker-compose-generator/docker-fragments/bitcoin-eclair.yml @@ -4,10 +4,7 @@ services: bitcoind: environment: BITCOIN_EXTRA_ARGS: | - zmqpubrawblock=tcp://0.0.0.0:28332 - zmqpubrawtx=tcp://0.0.0.0:28333 rpcauth=eclair:d3a244200d5c946f6bef48e6583ec979$$215049513aef33245dfec8ff3ab5e749458fde51ede931dec04c767c0732d468 - txindex=1 eclair_bitcoin: container_name: btcpayserver_eclair_bitcoin restart: unless-stopped @@ -51,5 +48,9 @@ services: - eclair_bitcoin volumes: eclair_bitcoin_datadir: + incompatible: - pruning +required: + - "opt-add-zmq" + - "opt-txindex" \ No newline at end of file diff --git a/docker-compose-generator/docker-fragments/bitcoin-lnd.yml b/docker-compose-generator/docker-fragments/bitcoin-lnd.yml index a993f56..e88cd1f 100644 --- a/docker-compose-generator/docker-fragments/bitcoin-lnd.yml +++ b/docker-compose-generator/docker-fragments/bitcoin-lnd.yml @@ -76,16 +76,11 @@ services: bitcoind: environment: BITCOIN_EXTRA_ARGS: | - zmqpubrawblock=tcp://0.0.0.0:28332 - zmqpubrawtx=tcp://0.0.0.0:28333 # rpcuser=lnd # rpcpassword=afixedpasswordbecauselndsuckswithcookiefile # We need to use rpcauth because we also need cookieauth. rpcpassword disabled cookie file auth. # Be careful if you copy the line below from the docker-compose.yml! A dollar sign is escaped. rpcauth=lnd:d031f7567c5b02ba95524170e51c77f4$$827ce5412f653d6613c2f480e521eb437c866b999bdeb2ee4f9c41d3b00dff1c - expose: - - "28332" - - "28333" nginx: links: @@ -101,3 +96,6 @@ services: volumes: lnd_bitcoin_datadir: lnd_bitcoin_rtl_datadir: + +required: + - "opt-add-zmq" \ No newline at end of file diff --git a/docker-compose-generator/docker-fragments/groestlcoin-eclair.yml b/docker-compose-generator/docker-fragments/groestlcoin-eclair.yml index 09cfa78..79ba5a0 100644 --- a/docker-compose-generator/docker-fragments/groestlcoin-eclair.yml +++ b/docker-compose-generator/docker-fragments/groestlcoin-eclair.yml @@ -4,10 +4,7 @@ services: groestlcoind: environment: GROESTLCOIN_EXTRA_ARGS: | - zmqpubrawblock=tcp://0.0.0.0:21441 - zmqpubrawtx=tcp://0.0.0.0:21441 rpcauth=eclair:d3a244200d5c946f6bef48e6583ec979$$215049513aef33245dfec8ff3ab5e749458fde51ede931dec04c767c0732d468 - txindex=1 eclair_groestlcoin: container_name: btcpayserver_eclair_groestlcoin restart: unless-stopped @@ -51,5 +48,7 @@ services: - eclair_groestlcoin volumes: eclair_groestlcoin_datadir: -incompatible: - - pruning + +required: + - "opt-add-zmq" + - "opt-txindex" \ No newline at end of file diff --git a/docker-compose-generator/docker-fragments/groestlcoin-lnd.yml b/docker-compose-generator/docker-fragments/groestlcoin-lnd.yml index 871d8e0..4bda4b6 100644 --- a/docker-compose-generator/docker-fragments/groestlcoin-lnd.yml +++ b/docker-compose-generator/docker-fragments/groestlcoin-lnd.yml @@ -46,16 +46,6 @@ services: links: - lnd_groestlcoin - groestlcoind: - environment: - BITCOIN_EXTRA_ARGS: | - zmqpubrawtx=tcp://0.0.0.0:21441 - zmqpubrawblock=tcp://0.0.0.0:21441 - zmqpubrawtxlock=tcp://0.0.0.0:21441 - zmqpubhashblock=tcp://0.0.0.0:21441 - expose: - - "21441" - nginx: links: - "lnd_groestlcoin" @@ -69,3 +59,6 @@ services: volumes: lnd_groestlcoin_datadir: + +required: + - "opt-add-zmq" \ No newline at end of file diff --git a/docker-compose-generator/docker-fragments/litecoin-lnd.yml b/docker-compose-generator/docker-fragments/litecoin-lnd.yml index 10dc4aa..c6b0d92 100644 --- a/docker-compose-generator/docker-fragments/litecoin-lnd.yml +++ b/docker-compose-generator/docker-fragments/litecoin-lnd.yml @@ -45,14 +45,8 @@ services: links: - lnd_litecoin - litecoind: - environment: - BITCOIN_EXTRA_ARGS: | - zmqpubrawblock=tcp://0.0.0.0:28332 - zmqpubrawtx=tcp://0.0.0.0:28333 - expose: - - "28332" - - "28333" - volumes: - lnd_litecoin_datadir: \ No newline at end of file + lnd_litecoin_datadir: + +required: + - "opt-add-zmq" \ No newline at end of file diff --git a/docker-compose-generator/docker-fragments/opt-add-teos.yml b/docker-compose-generator/docker-fragments/opt-add-teos.yml new file mode 100644 index 0000000..85ab6b5 --- /dev/null +++ b/docker-compose-generator/docker-fragments/opt-add-teos.yml @@ -0,0 +1,35 @@ +version: "3" + +services: + bitcoin_teos: + restart: unless-stopped + image: talaia/python-teos:latest + environment: + API_BIND: "0.0.0.0" + API_PORT: 9814 + BTC_NETWORK: ${NBITCOIN_NETWORK:-regtest} + BTC_RPC_CONNECT: "bitcoind" + BTC_RPC_PORT: 43782 + BTC_RPC_USER: "teos" + BTC_RPC_PASSWORD: "teos" + BTC_FEED_CONNECT: "bitcoind" + BTC_FEED_PORT: 28334 + volumes: + - "bitcoin_teos_datadir:/root/.teos" + ports: + - "9814:9814" + bitcoind: + environment: + BITCOIN_EXTRA_ARGS: | + # rpcuser=teos + # rpcpassword=teos + # We need to use rpcauth because we also need cookieauth. rpcpassword disabled cookie file auth. + # Be careful if you copy the line below from the docker-compose.yml! A dollar sign is escaped. + rpcauth=teos:504ff14fe34faa90e5bbe124e94be6a4$$bdac33da901ff27b4a27ca160cd706b2ba41d9e363556815cab5b7ef1e4dcf23 +volumes: + bitcoin_teos_datadir: + +required: + - "opt-add-zmq" + - "bitcoin" + - "opt-txindex" diff --git a/docker-compose-generator/docker-fragments/opt-add-tor.yml b/docker-compose-generator/docker-fragments/opt-add-tor.yml index 3351169..7736856 100644 --- a/docker-compose-generator/docker-fragments/opt-add-tor.yml +++ b/docker-compose-generator/docker-fragments/opt-add-tor.yml @@ -159,6 +159,13 @@ services: HIDDENSERVICE_PORT: 50002 HIDDENSERVICE_VIRTUAL_PORT: 50002 + bitcoin_teos: + environment: + HIDDENSERVICE_NAME: teos + HIDDENSERVICE_PORT: 9814 + volumes: + - "tor_servicesdir:/var/lib/tor/hidden_services" + - "tor_torrcdir:/usr/local/etc/tor/" volumes: tor_datadir: tor_torrcdir: diff --git a/docker-compose-generator/docker-fragments/opt-add-zmq.yml b/docker-compose-generator/docker-fragments/opt-add-zmq.yml new file mode 100644 index 0000000..f83e773 --- /dev/null +++ b/docker-compose-generator/docker-fragments/opt-add-zmq.yml @@ -0,0 +1,39 @@ +version: "3" + +services: + bitcoind: + environment: + BITCOIN_EXTRA_ARGS: | + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtx=tcp://0.0.0.0:28333 + zmqpubhashblock=tcp://0.0.0.0:28334 + expose: + - "28332" + - "28333" + - "28334" + litecoind: + environment: + BITCOIN_EXTRA_ARGS: | + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtx=tcp://0.0.0.0:28333 + expose: + - "28332" + - "28333" + groestlcoind: + environment: + BITCOIN_EXTRA_ARGS: | + zmqpubrawtx=tcp://0.0.0.0:21441 + zmqpubrawblock=tcp://0.0.0.0:21441 + zmqpubrawtxlock=tcp://0.0.0.0:21441 + zmqpubhashblock=tcp://0.0.0.0:21441 + expose: + - "21441" + bgoldd: + environment: + BITCOIN_EXTRA_ARGS: | + zmqpubrawtx=tcp://0.0.0.0:28332 + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtxlock=tcp://0.0.0.0:28332 + zmqpubhashblock=tcp://0.0.0.0:28332 + expose: + - "28332"