Skip to content

Commit c435e3c

Browse files
committed
fix: lnd backend mode switching bug
1 parent 2636c0d commit c435e3c

File tree

5 files changed

+86
-99
lines changed

5 files changed

+86
-99
lines changed

images/lndbtc/entrypoint.sh

Lines changed: 39 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7,61 +7,53 @@ SCRIPT_PATH=$(dirname "$0")
77
cd "$SCRIPT_PATH" || exit 1
88

99
LND_DIR="/root/.lnd"
10+
LND_CONF="$LND_DIR/lnd.conf"
1011
mkdir -p $LND_DIR
1112

12-
if [[ ! -e $LND_DIR/lnd.conf ]]; then
13-
cp /root/lnd.conf $LND_DIR/lnd.conf
13+
if [[ ! -e $LND_CONF ]]; then
14+
cp /root/lnd.conf "$LND_CONF"
1415
fi
1516

16-
NEUTRINO=${NEUTRINO:-}
17+
echo "[entrypoint] Enabling $MODE mode"
18+
if [[ $MODE == "light" || $MODE == "neutrino" ]]; then
19+
sed -i "s/bitcoin.node.*/bitcoin.node=neutrino/g" "$LND_CONF"
20+
sed -i '/[routing]/,$d' "$LND_CONF"
21+
if [[ $NETWORK == "testnet" ]]; then
22+
cat <<EOF >> "$LND_CONF"
23+
[routing]
24+
routing.assumechanvalid=1
1725
18-
if [ ! -z ${NEUTRINO} ]; then
19-
PEERS="[neutrino]\n"
26+
[neutrino]
27+
neutrino.addpeer=bitcoin.michael1011.at:18333
28+
neutrino.addpeer=btc.kilrau.com:18333
29+
EOF
30+
elif [[ $NETWORK == "mainnet" ]]; then
31+
cat << EOF >> "$LND_CONF"
32+
[routing]
33+
routing.assumechanvalid=1
2034
21-
case $CHAIN in
22-
bitcoin)
23-
case $NETWORK in
24-
testnet)
25-
PEERS="${PEERS}neutrino.addpeer=bitcoin.michael1011.at:18333\nneutrino.addpeer=btc.kilrau.com:18333"
26-
;;
27-
mainnet)
28-
PEERS="${PEERS}neutrino.addpeer=bitcoin.michael1011.at:8333\nneutrino.addpeer=btc.kilrau.com:8333\nneutrino.addpeer=thun.droidtech.it:8333"
29-
;;
30-
esac
31-
;;
32-
litecoin)
33-
case $NETWORK in
34-
testnet)
35-
PEERS="${PEERS}neutrino.connect=ltcd.michael1011.at:19335\nneutrino.connect=ltc.kilrau.com:19335"
36-
;;
37-
mainnet)
38-
PEERS="${PEERS}neutrino.connect=ltcd.michael1011.at:9333\nneutrino.connect=ltc.kilrau.com:9333"
39-
;;
40-
esac
41-
;;
42-
esac
43-
44-
echo "[DEBUG] Enabling neutrino"
45-
case $CHAIN in
46-
bitcoin)
47-
sed -i "s/bitcoin.node=bitcoind/bitcoin.node=neutrino\n\n${PEERS}\n\n[routing]\nrouting.assumechanvalid=1/g" $LND_DIR/lnd.conf
48-
;;
49-
litecoin)
50-
sed -i "s/litecoin.node=litecoind/litecoin.node=neutrino\n\n${PEERS}\n\n[routing]\nrouting.assumechanvalid=1/g" $LND_DIR/lnd.conf
51-
;;
52-
esac
35+
[neutrino]
36+
neutrino.addpeer=bitcoin.michael1011.at:8333
37+
neutrino.addpeer=btc.kilrau.com:8333
38+
neutrino.addpeer=thun.droidtech.it:8333
39+
EOF
40+
fi
41+
elif [[ $MODE == "native" ]]; then
42+
sed -i "s/bitcoin.node=.*/bitcoin.node=bitcoind/g" "$LND_CONF"
43+
sed -i "s/rpchost.*/rpchost=bitcoind/g" "$LND_CONF"
44+
sed -i "s/rpcuser.*/rpcuser=xu/g" "$LND_CONF"
45+
sed -i "s/rpcpass.*/rpcpass=xu/g" "$LND_CONF"
46+
sed -i "s|zmqpubrawblock.*|zmqpubrawblock=tcp://bitcoind:28332|g" "$LND_CONF"
47+
sed -i "s|zmqpubrawtx.*|zmqpubrawtx=tcp://bitcoind:28333|g" "$LND_CONF"
48+
elif [[ $MODE == "external" ]]; then
49+
sed -i "s/bitcoin.node=.*/bitcoin.node=bitcoind/g" "$LND_CONF"
50+
sed -i "s/rpchost.*/rpchost=$RPCHOST/g" "$LND_CONF"
51+
sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" "$LND_CONF"
52+
sed -i "s/rpcpass.*/rpcpass=$RPCPASS/g" "$LND_CONF"
53+
sed -i "s|zmqpubrawblock.*|zmqpubrawblock=$ZMQPUBRAWBLOCK|g" "$LND_CONF"
54+
sed -i "s|zmqpubrawtx.*|zmqpubrawtx=$ZMQPUBRAWTX|g" "$LND_CONF"
5355
fi
5456

55-
set +e
56-
57-
[[ -n ${RPCHOST:-} ]] && sed -i "s/rpchost.*/rpchost=$RPCHOST/g" $LND_DIR/lnd.conf
58-
[[ -n ${RPCUSER:-} ]] && sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" $LND_DIR/lnd.conf
59-
[[ -n ${RPCPASS:-} ]] && sed -i "s/rpcpass.*/rpcpass=$RPCPASS/g" $LND_DIR/lnd.conf
60-
[[ -n ${ZMQPUBRAWBLOCK:-} ]] && sed -i "s|zmqpubrawblock.*|zmqpubrawblock=$ZMQPUBRAWBLOCK|g" $LND_DIR/lnd.conf
61-
[[ -n ${ZMQPUBRAWTX:-} ]] && sed -i "s|zmqpubrawtx.*|zmqpubrawtx=$ZMQPUBRAWTX|g" $LND_DIR/lnd.conf
62-
63-
set -e
64-
6557
LND_HOSTNAME="$HOME/.lnd/tor/hostname"
6658
echo "Waiting for lnd-$CHAIN onion address..."
6759

images/lndbtc/lnd.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ autopilot.active=false
2222
tor.active=1
2323
tor.socks=9050
2424
tor.streamisolation=1
25+
26+

images/lndltc/entrypoint.sh

Lines changed: 38 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7,61 +7,52 @@ SCRIPT_PATH=$(dirname "$0")
77
cd "$SCRIPT_PATH" || exit 1
88

99
LND_DIR="/root/.lnd"
10+
LND_CONF="$LND_CONF/lnd.conf"
1011
mkdir -p $LND_DIR
1112

12-
if [[ ! -e $LND_DIR/lnd.conf ]]; then
13-
cp /root/lnd.conf $LND_DIR/lnd.conf
13+
if [[ ! -e "$LND_CONF" ]]; then
14+
cp /root/lnd.conf "$LND_CONF"
1415
fi
1516

16-
NEUTRINO=${NEUTRINO:-}
17+
echo "[entrypoint] Enabling $MODE mode"
18+
if [[ $MODE == "light" || $MODE == "neutrino" ]]; then
19+
sed -i "s/litecoin.node.*/litecoin.node=neutrino/g" "$LND_CONF"
20+
sed -i '/[routing]/,$d' "$LND_CONF"
21+
if [[ $NETWORK == "testnet" ]]; then
22+
cat <<EOF >> "$LND_CONF"
23+
[routing]
24+
routing.assumechanvalid=1
1725
18-
if [ ! -z ${NEUTRINO} ]; then
19-
PEERS="[neutrino]\n"
26+
[neutrino]
27+
neutrino.connect=ltcd.michael1011.at:19335
28+
neutrino.connect=ltc.kilrau.com:19335
29+
EOF
30+
elif [[ $NETWORK == "mainnet" ]]; then
31+
cat << EOF >> "$LND_CONF"
32+
[routing]
33+
routing.assumechanvalid=1
2034
21-
case $CHAIN in
22-
bitcoin)
23-
case $NETWORK in
24-
testnet)
25-
PEERS="${PEERS}neutrino.addpeer=bitcoin.michael1011.at:18333\nneutrino.addpeer=btc.kilrau.com:18333"
26-
;;
27-
mainnet)
28-
PEERS="${PEERS}neutrino.addpeer=bitcoin.michael1011.at:8333\nneutrino.addpeer=btc.kilrau.com:8333"
29-
;;
30-
esac
31-
;;
32-
litecoin)
33-
case $NETWORK in
34-
testnet)
35-
PEERS="${PEERS}neutrino.connect=ltcd.michael1011.at:19335\nneutrino.connect=ltc.kilrau.com:19335"
36-
;;
37-
mainnet)
38-
PEERS="${PEERS}neutrino.connect=ltcd.michael1011.at:9333\nneutrino.connect=ltc.kilrau.com:9333"
39-
;;
40-
esac
41-
;;
42-
esac
43-
44-
echo "[DEBUG] Enabling neutrino"
45-
case $CHAIN in
46-
bitcoin)
47-
sed -i "s/bitcoin.node=bitcoind/bitcoin.node=neutrino\n\n${PEERS}\n\n[routing]\nrouting.assumechanvalid=1/g" $LND_DIR/lnd.conf
48-
;;
49-
litecoin)
50-
sed -i "s/litecoin.node=litecoind/litecoin.node=neutrino\n\n${PEERS}\n\n[routing]\nrouting.assumechanvalid=1/g" $LND_DIR/lnd.conf
51-
;;
52-
esac
35+
[neutrino]
36+
neutrino.connect=ltcd.michael1011.at:9333
37+
neutrino.connect=ltc.kilrau.com:9333
38+
EOF
39+
fi
40+
elif [[ $MODE == "native" ]]; then
41+
sed -i "s/litecoin.node=.*/litecoin.node=litecoind/g" "$LND_CONF"
42+
sed -i "s/rpchost.*/rpchost=litecoind/g" "$LND_CONF"
43+
sed -i "s/rpcuser.*/rpcuser=xu/g" "$LND_CONF"
44+
sed -i "s/rpcpass.*/rpcpass=xu/g" "$LND_CONF"
45+
sed -i "s|zmqpubrawblock.*|zmqpubrawblock=tcp://bitcoind:28332|g" "$LND_CONF"
46+
sed -i "s|zmqpubrawtx.*|zmqpubrawtx=tcp://bitcoind:28333|g" "$LND_CONF"
47+
elif [[ $MODE == "external" ]]; then
48+
sed -i "s/litecoin.node=.*/litecoin.node=litecoind/g" "$LND_CONF"
49+
sed -i "s/rpchost.*/rpchost=$RPCHOST/g" "$LND_CONF"
50+
sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" "$LND_CONF"
51+
sed -i "s/rpcpass.*/rpcpass=$RPCPASS/g" "$LND_CONF"
52+
sed -i "s|zmqpubrawblock.*|zmqpubrawblock=$ZMQPUBRAWBLOCK|g" "$LND_CONF"
53+
sed -i "s|zmqpubrawtx.*|zmqpubrawtx=$ZMQPUBRAWTX|g" "$LND_CONF"
5354
fi
5455

55-
set +e
56-
57-
[[ -n ${RPCHOST:-} ]] && sed -i "s/rpchost.*/rpchost=$RPCHOST/g" $LND_DIR/lnd.conf
58-
[[ -n ${RPCUSER:-} ]] && sed -i "s/rpcuser.*/rpcuser=$RPCUSER/g" $LND_DIR/lnd.conf
59-
[[ -n ${RPCPASS:-} ]] && sed -i "s/rpcpass.*/rpcpass=$RPCPASS/g" $LND_DIR/lnd.conf
60-
[[ -n ${ZMQPUBRAWBLOCK:-} ]] && sed -i "s|zmqpubrawblock.*|zmqpubrawblock=$ZMQPUBRAWBLOCK|g" $LND_DIR/lnd.conf
61-
[[ -n ${ZMQPUBRAWTX:-} ]] && sed -i "s|zmqpubrawtx.*|zmqpubrawtx=$ZMQPUBRAWTX|g" $LND_DIR/lnd.conf
62-
63-
set -e
64-
6556
LND_HOSTNAME="$HOME/.lnd/tor/hostname"
6657
echo "Waiting for lnd-$CHAIN onion address..."
6758

images/lndltc/lnd.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,6 @@ autopilot.active=false
2222
tor.active=1
2323
tor.socks=9050
2424
tor.streamisolation=1
25+
26+
[routing]
27+
routing.assumechanvalid=1

images/utils/launcher/node/lnd.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,10 @@ def get_environment(self):
8888
else:
8989
layer1_node = self.config.nodes["litecoind"]
9090

91-
if layer1_node["mode"] == "neutrino" or layer1_node["mode"] == "light":
92-
environment.extend([
93-
f'NEUTRINO=True',
94-
])
95-
elif layer1_node["mode"] == "external":
91+
mode = layer1_node["mode"]
92+
environment.append(f"MODE={mode}")
93+
94+
if mode == "external":
9695
environment.extend([
9796
f'RPCHOST={layer1_node["external_rpc_host"]}',
9897
f'RPCUSER={layer1_node["external_rpc_user"]}',

0 commit comments

Comments
 (0)