diff --git a/.gitignore b/.gitignore index 5de654b..639b376 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,8 @@ data/lnd1/* !data/lnd1/.gitkeep data/lnd2/* !data/lnd2/.gitkeep +data/lnd3/* +!data/lnd3/.gitkeep data/backend/* !data/backend/boltz.conf !data/backend/seed.dat diff --git a/aliases.sh b/aliases.sh index 5fe0efb..1691a60 100644 --- a/aliases.sh +++ b/aliases.sh @@ -10,7 +10,6 @@ alias elements-cli-sim-client='run_in_container elements-cli-sim-client' alias elements-cli-sim-server='run_in_container elements-cli-sim-server' alias boltz-client-cli-sim='run_in_container boltzcli-sim' alias boltzcli-sim='run_in_container boltzcli-sim' #backwards compat -alias boltz-backend-cli-sim='boltz-backend-cli-sim' alias mine-block='bitcoin-cli-sim-client -generate 1 && elements-cli-sim-client -generate 1' lightning-cli-sim() { diff --git a/data/backend/boltz.conf b/data/backend/boltz.conf index a6b16e6..c5da4b5 100755 --- a/data/backend/boltz.conf +++ b/data/backend/boltz.conf @@ -129,11 +129,17 @@ maxZeroConfAmount = 0 wallet = "regtest" - [currencies.lnd] + [[currencies.lnds]] host = "lnd-2" port = 10_009 - certpath = "/data/lnd/tls.cert" - macaroonpath = "/data/lnd/data/chain/bitcoin/regtest/admin.macaroon" + certpath = "/data/lnd-2/tls.cert" + macaroonpath = "/data/lnd-2/data/chain/bitcoin/regtest/admin.macaroon" + + [[currencies.lnds]] + host = "lnd-3" + port = 10_009 + certpath = "/data/lnd-3/tls.cert" + macaroonpath = "/data/lnd-3/data/chain/bitcoin/regtest/admin.macaroon" [currencies.cln] host = "cln-2" diff --git a/data/lnd3/.gitkeep b/data/lnd3/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/data/lnd3/.gitkeep @@ -0,0 +1 @@ + diff --git a/docker-compose.yml b/docker-compose.yml index e01ac67..a072e5e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,7 @@ x-services: - cln2-data:/root/.lightning-2 - lnd1-data:/root/.lnd-1 - lnd2-data:/root/.lnd-2 + - lnd3-data:/root/.lnd-3 - boltz-client-data:/root/.boltz-client - boltz-data:/root/.boltz-backend - arkd-data:/root/.arkd @@ -160,7 +161,8 @@ services: ['--datadir', '/boltz-data', '--configpath', '/boltz-data/boltz.conf'] volumes: - boltz-data:/boltz-data - - lnd2-data:/data/lnd + - lnd2-data:/data/lnd-2 + - lnd3-data:/data/lnd-3 - cln2-data:/data/lightning - elements-data:/data/elements - bitcoin-data:/data/bitcoin @@ -361,6 +363,16 @@ services: - lnd2-data:/app/lnd/ profiles: ['default', 'ci', 'backend-dev', 'webapp-ci'] + lnd-3: + <<: *base-lnd + container_name: boltz-lnd-3 + hostname: lnd-3 + ports: + - 12009:10009 + volumes: + - lnd3-data:/app/lnd/ + profiles: ['default', 'ci', 'backend-dev', 'webapp-ci'] + bitcoind-init: <<: *base-scripts restart: no @@ -388,6 +400,8 @@ services: condition: service_healthy lnd-2: condition: service_healthy + lnd-3: + condition: service_healthy cln-1: condition: service_healthy cln-2: @@ -678,6 +692,13 @@ volumes: type: none o: bind device: ./data/lnd2 + lnd3-data: + name: boltz-lnd3-data + driver: local + driver_opts: + type: none + o: bind + device: ./data/lnd3 nginx-data: name: boltz-nginx-data driver: local diff --git a/images/scripts/cleanup.sh b/images/scripts/cleanup.sh index 7259810..7d767d9 100644 --- a/images/scripts/cleanup.sh +++ b/images/scripts/cleanup.sh @@ -27,6 +27,7 @@ WIPE_DIRS=( ".lightning-2" ".lnd-1" ".lnd-2" + ".lnd-3" ".boltz-backend" ".boltz-client" ".arkd" diff --git a/images/scripts/entrypoint.sh b/images/scripts/entrypoint.sh index 62e71fc..ccaf652 100755 --- a/images/scripts/entrypoint.sh +++ b/images/scripts/entrypoint.sh @@ -6,6 +6,7 @@ DIRECTORIES=( "/root/.lightning-2" "/root/.lnd-1" "/root/.lnd-2" + "/root/.lnd-3" "/root/.bitcoin" "/root/.elements" "/root/.boltz-client" diff --git a/images/scripts/utils.sh b/images/scripts/utils.sh index b277279..9ca7f46 100755 --- a/images/scripts/utils.sh +++ b/images/scripts/utils.sh @@ -247,6 +247,7 @@ lightning-sync(){ wait-for-cln-sync 2 wait-for-lnd-sync 1 wait-for-lnd-sync 2 + wait-for-lnd-sync 3 } lightning-init(){ @@ -256,6 +257,7 @@ lightning-init(){ fund_cln_node 2 fund_lnd_node 1 fund_lnd_node 2 + fund_lnd_node 3 done echo "mining 3 blocks..." @@ -315,6 +317,23 @@ lightning-init(){ lightning-sync + # lnd-3 -> lnd-1 (for routing through client network) + lncli-sim 3 connect $(lncli-sim 1 getinfo | jq -r '.identity_pubkey')@lnd-1 > /dev/null + echo "open channel from lnd-3 to lnd-1" + lncli-sim 3 openchannel $(lncli-sim 1 getinfo | jq -r '.identity_pubkey') $channel_size $balance_size > /dev/null + bitcoin-cli-sim-server -generate $channel_confirms > /dev/null + wait-for-lnd-channel 3 + lightning-sync + + # lnd-3 -> cln-2 (direct to server CLN) + lncli-sim 3 connect $(lightning-cli-sim 2 getinfo | jq -r '.id')@cln-2 > /dev/null + echo "open channel from lnd-3 to cln-2" + lncli-sim 3 openchannel $(lightning-cli-sim 2 getinfo | jq -r '.id') $channel_size $balance_size > /dev/null + bitcoin-cli-sim-server -generate $channel_confirms > /dev/null + wait-for-lnd-channel 3 + wait-for-cln-channel 2 + lightning-sync + } wait-for-lnd-channel(){