From fd43b93df51ed8d4f38b5c47d0fcd982d30a2765 Mon Sep 17 00:00:00 2001 From: Yang Yang Date: Wed, 16 Sep 2020 20:52:23 +0800 Subject: [PATCH 1/5] fix: lnd backend mode switching bug --- images/lndbtc/entrypoint.sh | 86 ++++++++++++++----------------- images/lndbtc/lnd.conf | 2 + images/lndltc/entrypoint.sh | 85 ++++++++++++++---------------- images/lndltc/lnd.conf | 3 ++ images/utils/launcher/node/lnd.py | 9 ++-- 5 files changed, 86 insertions(+), 99 deletions(-) diff --git a/images/lndbtc/entrypoint.sh b/images/lndbtc/entrypoint.sh index 0961c1a19..493e88652 100755 --- a/images/lndbtc/entrypoint.sh +++ b/images/lndbtc/entrypoint.sh @@ -7,61 +7,53 @@ SCRIPT_PATH=$(dirname "$0") cd "$SCRIPT_PATH" || exit 1 LND_DIR="/root/.lnd" +LND_CONF="$LND_DIR/lnd.conf" mkdir -p $LND_DIR -if [[ ! -e $LND_DIR/lnd.conf ]]; then - cp /root/lnd.conf $LND_DIR/lnd.conf +if [[ ! -e $LND_CONF ]]; then + cp /root/lnd.conf "$LND_CONF" fi -NEUTRINO=${NEUTRINO:-} +echo "[entrypoint] Enabling $MODE mode" +if [[ $MODE == "light" || $MODE == "neutrino" ]]; then + sed -i "s/bitcoin.node.*/bitcoin.node=neutrino/g" "$LND_CONF" + sed -i '/[routing]/,$d' "$LND_CONF" + if [[ $NETWORK == "testnet" ]]; then + cat <> "$LND_CONF" +[routing] +routing.assumechanvalid=1 -if [ ! -z ${NEUTRINO} ]; then - PEERS="[neutrino]\n" +[neutrino] +neutrino.addpeer=bitcoin.michael1011.at:18333 +neutrino.addpeer=btc.kilrau.com:18333 +EOF + elif [[ $NETWORK == "mainnet" ]]; then + cat << EOF >> "$LND_CONF" +[routing] +routing.assumechanvalid=1 - case $CHAIN in - bitcoin) - case $NETWORK in - testnet) - PEERS="${PEERS}neutrino.addpeer=bitcoin.michael1011.at:18333\nneutrino.addpeer=btc.kilrau.com:18333" - ;; - mainnet) - PEERS="${PEERS}neutrino.addpeer=bitcoin.michael1011.at:8333\nneutrino.addpeer=btc.kilrau.com:8333\nneutrino.addpeer=thun.droidtech.it:8333" - ;; - esac - ;; - litecoin) - case $NETWORK in - testnet) - PEERS="${PEERS}neutrino.connect=ltcd.michael1011.at:19335\nneutrino.connect=ltc.kilrau.com:19335" - ;; - mainnet) - PEERS="${PEERS}neutrino.connect=ltcd.michael1011.at:9333\nneutrino.connect=ltc.kilrau.com:9333" - ;; - esac - ;; - esac - - echo "[DEBUG] Enabling neutrino" - case $CHAIN in - bitcoin) - sed -i "s/bitcoin.node=bitcoind/bitcoin.node=neutrino\n\n${PEERS}\n\n[routing]\nrouting.assumechanvalid=1/g" $LND_DIR/lnd.conf - ;; - litecoin) - sed -i "s/litecoin.node=litecoind/litecoin.node=neutrino\n\n${PEERS}\n\n[routing]\nrouting.assumechanvalid=1/g" $LND_DIR/lnd.conf - ;; - esac +[neutrino] +neutrino.addpeer=bitcoin.michael1011.at:8333 +neutrino.addpeer=btc.kilrau.com:8333 +neutrino.addpeer=thun.droidtech.it:8333 +EOF + fi +elif [[ $MODE == "native" ]]; then + sed -i "s/bitcoin.node=.*/bitcoin.node=bitcoind/g" "$LND_CONF" + sed -i "s/rpchost.*/rpchost=bitcoind/g" "$LND_CONF" + sed -i "s/rpcuser.*/rpcuser=xu/g" "$LND_CONF" + sed -i "s/rpcpass.*/rpcpass=xu/g" "$LND_CONF" + sed -i "s|zmqpubrawblock.*|zmqpubrawblock=tcp://bitcoind:28332|g" "$LND_CONF" + sed -i "s|zmqpubrawtx.*|zmqpubrawtx=tcp://bitcoind:28333|g" "$LND_CONF" +elif [[ $MODE == "external" ]]; then + sed -i "s/bitcoin.node=.*/bitcoin.node=bitcoind/g" "$LND_CONF" + sed -i "s/rpchost.*/rpchost=$RPCHOST/g" "$LND_CONF" + sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" "$LND_CONF" + sed -i "s/rpcpass.*/rpcpass=$RPCPASS/g" "$LND_CONF" + sed -i "s|zmqpubrawblock.*|zmqpubrawblock=$ZMQPUBRAWBLOCK|g" "$LND_CONF" + sed -i "s|zmqpubrawtx.*|zmqpubrawtx=$ZMQPUBRAWTX|g" "$LND_CONF" fi -set +e - -[[ -n ${RPCHOST:-} ]] && sed -i "s/rpchost.*/rpchost=$RPCHOST/g" $LND_DIR/lnd.conf -[[ -n ${RPCUSER:-} ]] && sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" $LND_DIR/lnd.conf -[[ -n ${RPCPASS:-} ]] && sed -i "s/rpcpass.*/rpcpass=$RPCPASS/g" $LND_DIR/lnd.conf -[[ -n ${ZMQPUBRAWBLOCK:-} ]] && sed -i "s|zmqpubrawblock.*|zmqpubrawblock=$ZMQPUBRAWBLOCK|g" $LND_DIR/lnd.conf -[[ -n ${ZMQPUBRAWTX:-} ]] && sed -i "s|zmqpubrawtx.*|zmqpubrawtx=$ZMQPUBRAWTX|g" $LND_DIR/lnd.conf - -set -e - LND_HOSTNAME="$HOME/.lnd/tor/hostname" echo "Waiting for lnd-$CHAIN onion address..." diff --git a/images/lndbtc/lnd.conf b/images/lndbtc/lnd.conf index 7a55e910a..a9fcd335f 100644 --- a/images/lndbtc/lnd.conf +++ b/images/lndbtc/lnd.conf @@ -22,3 +22,5 @@ autopilot.active=false tor.active=1 tor.socks=9050 tor.streamisolation=1 + + diff --git a/images/lndltc/entrypoint.sh b/images/lndltc/entrypoint.sh index faa281edd..006f830f6 100755 --- a/images/lndltc/entrypoint.sh +++ b/images/lndltc/entrypoint.sh @@ -7,61 +7,52 @@ SCRIPT_PATH=$(dirname "$0") cd "$SCRIPT_PATH" || exit 1 LND_DIR="/root/.lnd" +LND_CONF="$LND_CONF/lnd.conf" mkdir -p $LND_DIR -if [[ ! -e $LND_DIR/lnd.conf ]]; then - cp /root/lnd.conf $LND_DIR/lnd.conf +if [[ ! -e "$LND_CONF" ]]; then + cp /root/lnd.conf "$LND_CONF" fi -NEUTRINO=${NEUTRINO:-} +echo "[entrypoint] Enabling $MODE mode" +if [[ $MODE == "light" || $MODE == "neutrino" ]]; then + sed -i "s/litecoin.node.*/litecoin.node=neutrino/g" "$LND_CONF" + sed -i '/[routing]/,$d' "$LND_CONF" + if [[ $NETWORK == "testnet" ]]; then + cat <> "$LND_CONF" +[routing] +routing.assumechanvalid=1 -if [ ! -z ${NEUTRINO} ]; then - PEERS="[neutrino]\n" +[neutrino] +neutrino.connect=ltcd.michael1011.at:19335 +neutrino.connect=ltc.kilrau.com:19335 +EOF + elif [[ $NETWORK == "mainnet" ]]; then + cat << EOF >> "$LND_CONF" +[routing] +routing.assumechanvalid=1 - case $CHAIN in - bitcoin) - case $NETWORK in - testnet) - PEERS="${PEERS}neutrino.addpeer=bitcoin.michael1011.at:18333\nneutrino.addpeer=btc.kilrau.com:18333" - ;; - mainnet) - PEERS="${PEERS}neutrino.addpeer=bitcoin.michael1011.at:8333\nneutrino.addpeer=btc.kilrau.com:8333" - ;; - esac - ;; - litecoin) - case $NETWORK in - testnet) - PEERS="${PEERS}neutrino.connect=ltcd.michael1011.at:19335\nneutrino.connect=ltc.kilrau.com:19335" - ;; - mainnet) - PEERS="${PEERS}neutrino.connect=ltcd.michael1011.at:9333\nneutrino.connect=ltc.kilrau.com:9333" - ;; - esac - ;; - esac - - echo "[DEBUG] Enabling neutrino" - case $CHAIN in - bitcoin) - sed -i "s/bitcoin.node=bitcoind/bitcoin.node=neutrino\n\n${PEERS}\n\n[routing]\nrouting.assumechanvalid=1/g" $LND_DIR/lnd.conf - ;; - litecoin) - sed -i "s/litecoin.node=litecoind/litecoin.node=neutrino\n\n${PEERS}\n\n[routing]\nrouting.assumechanvalid=1/g" $LND_DIR/lnd.conf - ;; - esac +[neutrino] +neutrino.connect=ltcd.michael1011.at:9333 +neutrino.connect=ltc.kilrau.com:9333 +EOF + fi +elif [[ $MODE == "native" ]]; then + sed -i "s/litecoin.node=.*/litecoin.node=litecoind/g" "$LND_CONF" + sed -i "s/rpchost.*/rpchost=litecoind/g" "$LND_CONF" + sed -i "s/rpcuser.*/rpcuser=xu/g" "$LND_CONF" + sed -i "s/rpcpass.*/rpcpass=xu/g" "$LND_CONF" + sed -i "s|zmqpubrawblock.*|zmqpubrawblock=tcp://bitcoind:28332|g" "$LND_CONF" + sed -i "s|zmqpubrawtx.*|zmqpubrawtx=tcp://bitcoind:28333|g" "$LND_CONF" +elif [[ $MODE == "external" ]]; then + sed -i "s/litecoin.node=.*/litecoin.node=litecoind/g" "$LND_CONF" + sed -i "s/rpchost.*/rpchost=$RPCHOST/g" "$LND_CONF" + sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" "$LND_CONF" + sed -i "s/rpcpass.*/rpcpass=$RPCPASS/g" "$LND_CONF" + sed -i "s|zmqpubrawblock.*|zmqpubrawblock=$ZMQPUBRAWBLOCK|g" "$LND_CONF" + sed -i "s|zmqpubrawtx.*|zmqpubrawtx=$ZMQPUBRAWTX|g" "$LND_CONF" fi -set +e - -[[ -n ${RPCHOST:-} ]] && sed -i "s/rpchost.*/rpchost=$RPCHOST/g" $LND_DIR/lnd.conf -[[ -n ${RPCUSER:-} ]] && sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" $LND_DIR/lnd.conf -[[ -n ${RPCPASS:-} ]] && sed -i "s/rpcpass.*/rpcpass=$RPCPASS/g" $LND_DIR/lnd.conf -[[ -n ${ZMQPUBRAWBLOCK:-} ]] && sed -i "s|zmqpubrawblock.*|zmqpubrawblock=$ZMQPUBRAWBLOCK|g" $LND_DIR/lnd.conf -[[ -n ${ZMQPUBRAWTX:-} ]] && sed -i "s|zmqpubrawtx.*|zmqpubrawtx=$ZMQPUBRAWTX|g" $LND_DIR/lnd.conf - -set -e - LND_HOSTNAME="$HOME/.lnd/tor/hostname" echo "Waiting for lnd-$CHAIN onion address..." diff --git a/images/lndltc/lnd.conf b/images/lndltc/lnd.conf index 059ac208a..93933e006 100644 --- a/images/lndltc/lnd.conf +++ b/images/lndltc/lnd.conf @@ -22,3 +22,6 @@ autopilot.active=false tor.active=1 tor.socks=9050 tor.streamisolation=1 + +[routing] +routing.assumechanvalid=1 diff --git a/images/utils/launcher/node/lnd.py b/images/utils/launcher/node/lnd.py index 0f81da586..d48819956 100644 --- a/images/utils/launcher/node/lnd.py +++ b/images/utils/launcher/node/lnd.py @@ -88,11 +88,10 @@ def get_environment(self): else: layer1_node = self.config.nodes["litecoind"] - if layer1_node["mode"] == "neutrino" or layer1_node["mode"] == "light": - environment.extend([ - f'NEUTRINO=True', - ]) - elif layer1_node["mode"] == "external": + mode = layer1_node["mode"] + environment.append(f"MODE={mode}") + + if mode == "external": environment.extend([ f'RPCHOST={layer1_node["external_rpc_host"]}', f'RPCUSER={layer1_node["external_rpc_user"]}', From 811b0325a13264c7ad99d8ad319212399586c1ab Mon Sep 17 00:00:00 2001 From: Yang Yang Date: Wed, 16 Sep 2020 21:21:45 +0800 Subject: [PATCH 2/5] fix sed --- images/lndbtc/entrypoint.sh | 2 +- images/lndltc/entrypoint.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/images/lndbtc/entrypoint.sh b/images/lndbtc/entrypoint.sh index 493e88652..409dbaae5 100755 --- a/images/lndbtc/entrypoint.sh +++ b/images/lndbtc/entrypoint.sh @@ -17,7 +17,7 @@ fi echo "[entrypoint] Enabling $MODE mode" if [[ $MODE == "light" || $MODE == "neutrino" ]]; then sed -i "s/bitcoin.node.*/bitcoin.node=neutrino/g" "$LND_CONF" - sed -i '/[routing]/,$d' "$LND_CONF" + sed -i '/routing/,$d' "$LND_CONF" if [[ $NETWORK == "testnet" ]]; then cat <> "$LND_CONF" [routing] diff --git a/images/lndltc/entrypoint.sh b/images/lndltc/entrypoint.sh index 006f830f6..a0a5f25ff 100755 --- a/images/lndltc/entrypoint.sh +++ b/images/lndltc/entrypoint.sh @@ -17,7 +17,7 @@ fi echo "[entrypoint] Enabling $MODE mode" if [[ $MODE == "light" || $MODE == "neutrino" ]]; then sed -i "s/litecoin.node.*/litecoin.node=neutrino/g" "$LND_CONF" - sed -i '/[routing]/,$d' "$LND_CONF" + sed -i '/routing/,$d' "$LND_CONF" if [[ $NETWORK == "testnet" ]]; then cat <> "$LND_CONF" [routing] From eabcd739906291f689b2f9c85df12a3b1bc20128 Mon Sep 17 00:00:00 2001 From: Yang Yang Date: Wed, 16 Sep 2020 21:55:53 +0800 Subject: [PATCH 3/5] fix script --- images/lndbtc/lnd.conf | 2 -- images/lndltc/entrypoint.sh | 2 +- images/lndltc/lnd.conf | 3 --- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/images/lndbtc/lnd.conf b/images/lndbtc/lnd.conf index a9fcd335f..7a55e910a 100644 --- a/images/lndbtc/lnd.conf +++ b/images/lndbtc/lnd.conf @@ -22,5 +22,3 @@ autopilot.active=false tor.active=1 tor.socks=9050 tor.streamisolation=1 - - diff --git a/images/lndltc/entrypoint.sh b/images/lndltc/entrypoint.sh index a0a5f25ff..e9e7d4ca2 100755 --- a/images/lndltc/entrypoint.sh +++ b/images/lndltc/entrypoint.sh @@ -7,7 +7,7 @@ SCRIPT_PATH=$(dirname "$0") cd "$SCRIPT_PATH" || exit 1 LND_DIR="/root/.lnd" -LND_CONF="$LND_CONF/lnd.conf" +LND_CONF="$LND_DIR/lnd.conf" mkdir -p $LND_DIR if [[ ! -e "$LND_CONF" ]]; then diff --git a/images/lndltc/lnd.conf b/images/lndltc/lnd.conf index 93933e006..059ac208a 100644 --- a/images/lndltc/lnd.conf +++ b/images/lndltc/lnd.conf @@ -22,6 +22,3 @@ autopilot.active=false tor.active=1 tor.socks=9050 tor.streamisolation=1 - -[routing] -routing.assumechanvalid=1 From 87084bbe235382112f42c81203c08f385e6a58fc Mon Sep 17 00:00:00 2001 From: Yang Yang Date: Wed, 16 Sep 2020 22:15:07 +0800 Subject: [PATCH 4/5] remove neutrino options when in other modes --- images/lndbtc/entrypoint.sh | 2 ++ images/lndltc/entrypoint.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/images/lndbtc/entrypoint.sh b/images/lndbtc/entrypoint.sh index 409dbaae5..e78fb5299 100755 --- a/images/lndbtc/entrypoint.sh +++ b/images/lndbtc/entrypoint.sh @@ -39,6 +39,7 @@ neutrino.addpeer=thun.droidtech.it:8333 EOF fi elif [[ $MODE == "native" ]]; then + sed -i '/routing/,$d' "$LND_CONF" sed -i "s/bitcoin.node=.*/bitcoin.node=bitcoind/g" "$LND_CONF" sed -i "s/rpchost.*/rpchost=bitcoind/g" "$LND_CONF" sed -i "s/rpcuser.*/rpcuser=xu/g" "$LND_CONF" @@ -46,6 +47,7 @@ elif [[ $MODE == "native" ]]; then sed -i "s|zmqpubrawblock.*|zmqpubrawblock=tcp://bitcoind:28332|g" "$LND_CONF" sed -i "s|zmqpubrawtx.*|zmqpubrawtx=tcp://bitcoind:28333|g" "$LND_CONF" elif [[ $MODE == "external" ]]; then + sed -i '/routing/,$d' "$LND_CONF" sed -i "s/bitcoin.node=.*/bitcoin.node=bitcoind/g" "$LND_CONF" sed -i "s/rpchost.*/rpchost=$RPCHOST/g" "$LND_CONF" sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" "$LND_CONF" diff --git a/images/lndltc/entrypoint.sh b/images/lndltc/entrypoint.sh index e9e7d4ca2..6ee7bd739 100755 --- a/images/lndltc/entrypoint.sh +++ b/images/lndltc/entrypoint.sh @@ -38,6 +38,7 @@ neutrino.connect=ltc.kilrau.com:9333 EOF fi elif [[ $MODE == "native" ]]; then + sed -i '/routing/,$d' "$LND_CONF" sed -i "s/litecoin.node=.*/litecoin.node=litecoind/g" "$LND_CONF" sed -i "s/rpchost.*/rpchost=litecoind/g" "$LND_CONF" sed -i "s/rpcuser.*/rpcuser=xu/g" "$LND_CONF" @@ -45,6 +46,7 @@ elif [[ $MODE == "native" ]]; then sed -i "s|zmqpubrawblock.*|zmqpubrawblock=tcp://bitcoind:28332|g" "$LND_CONF" sed -i "s|zmqpubrawtx.*|zmqpubrawtx=tcp://bitcoind:28333|g" "$LND_CONF" elif [[ $MODE == "external" ]]; then + sed -i '/routing/,$d' "$LND_CONF" sed -i "s/litecoin.node=.*/litecoin.node=litecoind/g" "$LND_CONF" sed -i "s/rpchost.*/rpchost=$RPCHOST/g" "$LND_CONF" sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" "$LND_CONF" From feb96431b0c5db195ffe97f3165953f5da3d9376 Mon Sep 17 00:00:00 2001 From: Yang Yang Date: Wed, 16 Sep 2020 22:17:59 +0800 Subject: [PATCH 5/5] fix bitcoind hostname in lndltc --- images/lndltc/entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/lndltc/entrypoint.sh b/images/lndltc/entrypoint.sh index 6ee7bd739..4f9410cb1 100755 --- a/images/lndltc/entrypoint.sh +++ b/images/lndltc/entrypoint.sh @@ -43,8 +43,8 @@ elif [[ $MODE == "native" ]]; then sed -i "s/rpchost.*/rpchost=litecoind/g" "$LND_CONF" sed -i "s/rpcuser.*/rpcuser=xu/g" "$LND_CONF" sed -i "s/rpcpass.*/rpcpass=xu/g" "$LND_CONF" - sed -i "s|zmqpubrawblock.*|zmqpubrawblock=tcp://bitcoind:28332|g" "$LND_CONF" - sed -i "s|zmqpubrawtx.*|zmqpubrawtx=tcp://bitcoind:28333|g" "$LND_CONF" + sed -i "s|zmqpubrawblock.*|zmqpubrawblock=tcp://litecoind:28332|g" "$LND_CONF" + sed -i "s|zmqpubrawtx.*|zmqpubrawtx=tcp://litecoind:28333|g" "$LND_CONF" elif [[ $MODE == "external" ]]; then sed -i '/routing/,$d' "$LND_CONF" sed -i "s/litecoin.node=.*/litecoin.node=litecoind/g" "$LND_CONF"