From 4f8e29e82c7fa2d885fe5bd07f5025999962fea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dni=20=E2=9A=A1?= Date: Thu, 15 Jun 2023 10:10:17 +0200 Subject: [PATCH] fixup eclair --- data/eclair/eclair.conf | 2 +- docker-compose.yml | 5 +++-- docker-scripts.sh | 26 ++++++++++++++++++++++++-- tests | 11 +++++++---- 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/data/eclair/eclair.conf b/data/eclair/eclair.conf index 5e2be44..e5d830c 100644 --- a/data/eclair/eclair.conf +++ b/data/eclair/eclair.conf @@ -14,7 +14,7 @@ eclair { rpcuser = "lnbits" rpcpassword = "lnbits" - zmqblock = "tcp://bitcoind:29001" + zmqblock = "tcp://bitcoind:29002" zmqtx = "tcp://bitcoind:29000" } diff --git a/docker-compose.yml b/docker-compose.yml index fb4f796..90c0e3a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,10 +27,11 @@ services: bitcoind: hostname: bitcoind image: boltz/bitcoin-core:25.0 - command: "-regtest -fallbackfee=0.00000253 -zmqpubrawtx=tcp://0.0.0.0:29000 -zmqpubrawblock=tcp://0.0.0.0:29001 -txindex -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0 -rpcuser=lnbits -rpcpassword=lnbits" + command: "-regtest -fallbackfee=0.00000253 -zmqpubrawtx=tcp://0.0.0.0:29000 -zmqpubrawblock=tcp://0.0.0.0:29001 -zmqpubhashblock=tcp://0.0.0.0:29002 -txindex -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0 -rpcuser=lnbits -rpcpassword=lnbits -addresstype=bech32 -changetype=bech32 -dbcache=2048 -rpcworkqueue=256" expose: - 29000 - 29001 + - 29002 - 18443 - 18444 @@ -132,7 +133,7 @@ services: - bitcoind image: boltz/eclair:0.8.0 restart: on-failure - entrypoint: "sh -c 'sleep 20; /eclair-node/bin/eclair-node.sh -Declair.datadir=/root/eclair -Declair.printToConsole'" + entrypoint: "sh -c 'JAVA_OPTS=-Xmx512m /eclair-node/bin/eclair-node.sh -Declair.datadir=/root/eclair -Declair.printToConsole'" ports: - 8082:8080 expose: diff --git a/docker-scripts.sh b/docker-scripts.sh index 0a844d2..e3dc6ae 100644 --- a/docker-scripts.sh +++ b/docker-scripts.sh @@ -21,7 +21,7 @@ lncli-sim() { get-eclair-pubkey() { while true; do - pubkey=$(docker exec lnbits-legend-eclair-1 curl http://localhost:8080/getinfo -X POST -u :lnbits 2> /dev/null | jq -r .nodeId 2> /dev/null) + pubkey=$(docker exec lnbits-legend-eclair-1 curl http://localhost:8080/getinfo -X POST -s -u :lnbits | jq -r .nodeId 2> /dev/null) pubkeyPrefix=$(echo $pubkey | cut -c1,2) if [[ "$pubkeyPrefix" == "02" || "$pubkeyPrefix" == "03" ]]; then echo $pubkey @@ -31,6 +31,19 @@ get-eclair-pubkey() { done } +wait-for-eclair-channel() { + while true; do + state=$(docker exec lnbits-legend-eclair-1 curl http://localhost:8080/channels -X POST -s -u :lnbits | jq -r ".[0].state") + pending=$(docker exec lnbits-legend-eclair-1 curl -s http://localhost:8080/channels -X POST -u :lnbits| jq '. | length') + echo "eclair-1 pendingchannels: $pending, current state: $state" + if [[ "$state" == "NORMAL" ]]; then + break + fi + sleep 1 + done +} + + # args(i) fund_clightning_node() { address=$(lightning-cli-sim $1 newaddr | jq -r .bech32) @@ -101,7 +114,7 @@ lnbits-lightning-sync(){ lnbits-lightning-init(){ # create 10 UTXOs for each node - for i in 0 1 2 3 4; do + for i in 0 1 2; do fund_clightning_node 1 fund_clightning_node 2 fund_clightning_node 3 @@ -176,6 +189,13 @@ lnbits-lightning-init(){ bitcoin-cli-sim -generate $channel_confirms > /dev/null wait-for-lnd-channel 3 + # lnd-1 -> eclair-1 + lncli-sim 1 connect $(get-eclair-pubkey)@lnbits-legend-eclair-1 > /dev/null + echo "open channel from lnd-2 to eclair-1" + lncli-sim 1 openchannel $(get-eclair-pubkey) $channel_size $balance_size > /dev/null + bitcoin-cli-sim -generate $channel_confirms > /dev/null + wait-for-lnd-channel 1 + # lnd-2 -> eclair-1 lncli-sim 2 connect $(get-eclair-pubkey)@lnbits-legend-eclair-1 > /dev/null echo "open channel from lnd-2 to eclair-1" @@ -187,6 +207,8 @@ lnbits-lightning-init(){ wait-for-clightning-channel 2 wait-for-clightning-channel 3 + wait-for-eclair-channel + lnbits-lightning-sync } diff --git a/tests b/tests index 29385af..36da61f 100755 --- a/tests +++ b/tests @@ -20,8 +20,8 @@ run(){ } failed="false" -blockheight=207 -utxos=5 +blockheight=213 +utxos=3 channel_size=24000000 # 0.024 btc balance_size=12000000 # 0.012 btc @@ -36,7 +36,9 @@ for i in 1 2 3; do run "lnd-$i .synced_to_chain" "true" $(lncli-sim $i getinfo | jq -r ".synced_to_chain") run "lnd-$i utxo count" $utxos $(lncli-sim $i listunspent | jq -r ".utxos | length") run "lnd-$i .block_height" $blockheight $(lncli-sim $i getinfo | jq -r ".block_height") - if [[ "$i" == "2" ]]; then + if [[ "$i" == "1" ]]; then + channel_count=5 + elif [[ "$i" == "2" ]]; then channel_count=3 else channel_count=4 @@ -54,7 +56,8 @@ for i in 1 2 3; do run "cln-$i channel[0].channel_sat" $balance_size $(lightning-cli-sim $i listfunds | jq -r ".channels[0].channel_sat") done -run "eclair-1 openchannels" 1 $(docker exec lnbits-legend-eclair-1 curl -s http://localhost:8080/channels -X POST -u :lnbits| jq '. | length') +run "eclair-1 openchannels" 2 $(docker exec lnbits-legend-eclair-1 curl -s http://localhost:8080/channels -X POST -u :lnbits| jq '. | length') +run "eclair-1 blockHeight" $blockheight $(docker exec lnbits-legend-eclair-1 curl -s http://localhost:8080/getinfo -X POST -u :lnbits| jq '.blockHeight') run "lnbits service status" "200" $(curl -s -o /dev/null -w "%{http_code}" "http://localhost:5001/") # return non-zero exit code if a test fails