From 809cc2e9a8eba26b599b861c1515111aaedb8979 Mon Sep 17 00:00:00 2001 From: sputn1ck Date: Fri, 5 Jan 2024 13:52:10 +0100 Subject: [PATCH] docker-regtest: fix loop-server config --- regtest/docker-compose.yml | 72 ++++++++++++++++++++++++------------ regtest/regtest.sh | 76 ++++++++++++++++++++++++++++++++------ 2 files changed, 113 insertions(+), 35 deletions(-) diff --git a/regtest/docker-compose.yml b/regtest/docker-compose.yml index 8b23e1d..5ad2d73 100644 --- a/regtest/docker-compose.yml +++ b/regtest/docker-compose.yml @@ -1,10 +1,13 @@ version: '3' services: bitcoind: - image: lightninglabs/bitcoin-core + image: ruimarinho/bitcoin-core:23 + container_name: bitcoind restart: unless-stopped networks: - - regtest + regtest: + aliases: + - bitcoind command: - "-txindex" - "-regtest" @@ -16,43 +19,53 @@ services: - "-rpcbind=0.0.0.0" # This is just the hashed string "lightning" with a salt. - "-rpcauth=lightning:8492220e715bbfdf5f165102bfd7ed4$$88090545821ed5e9db614588c0afbad575ccc14681fb77f3cae6899bc419af67" - - "-rpcallowip=172.0.0.0/8" - - "-rpcallowip=127.0.0.1" + - "-rpcallowip=0.0.0.0/0" - "-fallbackfee=0.0002" - "-peerblockfilters=1" - "-blockfilterindex=1" - "-wallet=/home/bitcoin/.bitcoin/regtest/wallets/miner" environment: - HOME=/home/bitcoin + volumes: + - bitcoind:/home/bitcoin/.bitcoin lndserver: image: lightninglabs/lnd:v0.17.0-beta + container_name: lndserver restart: unless-stopped networks: - - regtest + regtest: + aliases: + - lndserver volumes: - "lndserver:/root/.lnd" depends_on: - bitcoind command: + - "--logdir=/root/.lnd" - "--alias=lndserver" - "--rpclisten=0.0.0.0:10009" - "--noseedbackup" - "--bitcoin.active" - "--bitcoin.regtest" - "--bitcoin.node=bitcoind" - - "--bitcoind.rpchost=regtest_bitcoind_1" + - "--bitcoind.rpchost=bitcoind" - "--bitcoind.rpcuser=lightning" - "--bitcoind.rpcpass=lightning" - - "--bitcoind.zmqpubrawblock=tcp://regtest_bitcoind_1:28332" - - "--bitcoind.zmqpubrawtx=tcp://regtest_bitcoind_1:28333" - - "--tlsextradomain=regtest_lndserver_1" + - "--bitcoind.zmqpubrawblock=tcp://bitcoind:28332" + - "--bitcoind.zmqpubrawtx=tcp://bitcoind:28333" + - "--debuglevel=debug" + - "--externalip=lndserver" + - "--tlsextradomain=lndserver" loopserver: image: lightninglabs/loopserver + container_name: loopserver restart: unless-stopped networks: - - regtest + regtest: + aliases: + - loopserver volumes: - "lndserver:/root/.lnd" depends_on: @@ -60,43 +73,55 @@ services: command: - "daemon" - "--maxamt=5000000" - - "--lnd.host=regtest_lndserver_1:10009" - - "--lnd.macaroondir=/root/.lnd/data/chain/bitcoin/regtest" - - "--lnd.tlspath=/root/.lnd/tls.cert" - - "--bitcoind.zmqpubrawblock=tcp://regtest_bitcoind_1:28332" - - "--bitcoind.zmqpubrawtx=tcp://regtest_bitcoind_1:28333" + - "--lnd.host=lndserver:10009" + - "--lnd.macaroondir=/home/loopserver/" + - "--lnd.tlspath=/home/loopserver/tls.cert" + - "--bitcoin.host=bitcoind:18443" + - "--bitcoin.user=lightning" + - "--bitcoin.password=lightning" + - "--bitcoin.zmqpubrawblock=tcp://bitcoind:28332" + - "--bitcoin.zmqpubrawtx=tcp://bitcoind:28333" lndclient: image: lightninglabs/lnd:v0.17.0-beta + container_name: lndclient restart: unless-stopped networks: - - regtest + regtest: + aliases: + - lndclient volumes: - "lndclient:/root/.lnd" depends_on: - bitcoind command: + - "--logdir=/root/.lnd" - "--alias=lndclient" - "--rpclisten=0.0.0.0:10009" - "--noseedbackup" - "--bitcoin.active" - "--bitcoin.regtest" - "--bitcoin.node=bitcoind" - - "--bitcoind.rpchost=regtest_bitcoind_1" + - "--bitcoind.rpchost=bitcoind" - "--bitcoind.rpcuser=lightning" - "--bitcoind.rpcpass=lightning" - - "--bitcoind.zmqpubrawblock=tcp://regtest_bitcoind_1:28332" - - "--bitcoind.zmqpubrawtx=tcp://regtest_bitcoind_1:28333" - - "--tlsextradomain=regtest_lndclient_1" + - "--bitcoind.zmqpubrawblock=tcp://bitcoind:28332" + - "--bitcoind.zmqpubrawtx=tcp://bitcoind:28333" + - "--debuglevel=debug" + - "--externalip=lndclient" + - "--tlsextradomain=lndclient" loopclient: image: loopd + container_name: loopclient build: context: ../ dockerfile: Dockerfile restart: unless-stopped networks: - - regtest + regtest: + aliases: + - loopclient volumes: - "lndclient:/root/.lnd" depends_on: @@ -105,9 +130,9 @@ services: - "loopd" - "--network=regtest" - "--debuglevel=debug" - - "--server.host=regtest_loopserver_1:11009" + - "--server.host=loopclient:11009" - "--server.notls" - - "--lnd.host=regtest_lndclient_1:10009" + - "--lnd.host=lndclient:10009" - "--lnd.macaroonpath=/root/.lnd/data/chain/bitcoin/regtest/admin.macaroon" - "--lnd.tlspath=/root/.lnd/tls.cert" @@ -115,5 +140,6 @@ networks: regtest: volumes: + bitcoind: lndserver: lndclient: \ No newline at end of file diff --git a/regtest/regtest.sh b/regtest/regtest.sh index 339e615..1dd66f3 100755 --- a/regtest/regtest.sh +++ b/regtest/regtest.sh @@ -4,19 +4,19 @@ COMPOSE="docker-compose -p regtest" function bitcoin() { - docker exec -ti regtest_bitcoind_1 bitcoin-cli -regtest "$@" + docker exec -ti bitcoind bitcoin-cli -regtest "$@" } function lndserver() { - docker exec -ti regtest_lndserver_1 lncli --network regtest "$@" + docker exec -ti lndserver lncli --network regtest "$@" } function lndclient() { - docker exec -ti regtest_lndclient_1 lncli --network regtest "$@" + docker exec -ti lndclient lncli --network regtest "$@" } function loop() { - docker exec -ti regtest_loopclient_1 loop --network regtest "$@" + docker exec -ti loopclient loop --network regtest "$@" } function start() { @@ -44,18 +44,22 @@ function mine() { bitcoin generatetoaddress $NUMBLOCKS $(bitcoin getnewaddress "" legacy) > /dev/null } -function setup() { - echo "Getting pubkeys" - LNDSERVER=$(lndserver getinfo | jq .identity_pubkey -r) - LNDCLIENT=$(lndclient getinfo | jq .identity_pubkey -r) - echo "Getting addresses" - +function setup() { + echo "Copying loopserver files" + copy_loopserver_files + echo "Creating wallet" bitcoin createwallet miner - + ADDR_BTC=$(bitcoin getnewaddress "" legacy) echo "Generating blocks to $ADDR_BTC" bitcoin generatetoaddress 106 "$ADDR_BTC" > /dev/null + + echo "Getting pubkeys" + LNDSERVER=$(lndserver getinfo | jq .identity_pubkey -r) + LNDCLIENT=$(lndclient getinfo | jq .identity_pubkey -r) + echo "Getting addresses" + echo "Sending funds" ADDR_SERVER=$(lndserver newaddress p2wkh | jq .address -r) @@ -63,10 +67,14 @@ function setup() { bitcoin sendtoaddress "$ADDR_SERVER" 5 bitcoin sendtoaddress "$ADDR_CLIENT" 5 mine 6 + + sleep 30 - lndserver openchannel --node_key $LNDCLIENT --connect regtest_lndclient_1:9735 --local_amt 16000000 + lndserver openchannel --node_key $LNDCLIENT --connect lndclient:9735 --local_amt 16000000 mine 6 + sleep 10 + lndclient openchannel --node_key $LNDSERVER --local_amt 16000000 mine 6 } @@ -87,6 +95,50 @@ function info() { echo "lnd client: $LNDCLIENT" } +function copy_loopserver_files() { + # copy cert to loopserver + docker cp lndserver:/root/.lnd/tls.cert /tmp/loopserver-tls.cert + chmod 644 /tmp/loopserver-tls.cert + docker cp -a /tmp/loopserver-tls.cert loopserver:/home/loopserver/tls.cert + + #copy readonly macaroon to loopserver + docker cp lndserver:/root/.lnd/data/chain/bitcoin/regtest/readonly.macaroon /tmp/loopserver-read.macaroon + chmod 644 /tmp/loopserver-read.macaroon + docker cp -a /tmp/loopserver-read.macaroon loopserver:/home/loopserver/readonly.macaroon + + # copy admin macaroon to loopserver + docker cp lndserver:/root/.lnd/data/chain/bitcoin/regtest/admin.macaroon /tmp/loopserver-admin.macaroon + chmod 644 /tmp/loopserver-admin.macaroon + docker cp -a /tmp/loopserver-admin.macaroon loopserver:/home/loopserver/admin.macaroon + + + # copy invoices macaroon to loopserver + docker cp lndserver:/root/.lnd/data/chain/bitcoin/regtest/invoices.macaroon /tmp/loopserver-invoices.macaroon + chmod 644 /tmp/loopserver-invoices.macaroon + docker cp -a /tmp/loopserver-invoices.macaroon loopserver:/home/loopserver/invoices.macaroon + + # copy chainnotifier macaroon to loopserver + docker cp lndserver:/root/.lnd/data/chain/bitcoin/regtest/chainnotifier.macaroon /tmp/loopserver-chainnotifier.macaroon + chmod 644 /tmp/loopserver-chainnotifier.macaroon + docker cp -a /tmp/loopserver-chainnotifier.macaroon loopserver:/home/loopserver/chainnotifier.macaroon + + # copy router macaroon to loopserver + docker cp lndserver:/root/.lnd/data/chain/bitcoin/regtest/router.macaroon /tmp/loopserver-router.macaroon + chmod 644 /tmp/loopserver-router.macaroon + docker cp -a /tmp/loopserver-router.macaroon loopserver:/home/loopserver/router.macaroon + + # copy signer macaroon to loopserver + docker cp lndserver:/root/.lnd/data/chain/bitcoin/regtest/signer.macaroon /tmp/loopserver-signer.macaroon + chmod 644 /tmp/loopserver-signer.macaroon + docker cp -a /tmp/loopserver-signer.macaroon loopserver:/home/loopserver/signer.macaroon + + # copy walletkit macaroon to loopserver + docker cp lndserver:/root/.lnd/data/chain/bitcoin/regtest/walletkit.macaroon /tmp/loopserver-walletkit.macaroon + chmod 644 /tmp/loopserver-walletkit.macaroon + docker cp -a /tmp/loopserver-walletkit.macaroon loopserver:/home/loopserver/walletkit.macaroon + +} + if [[ $# -lt 1 ]]; then echo "Usage: $0 start|stop|restart|info|loop" fi