raspiblitz/home.admin/XXchainInSync.sh

65 lines
1.6 KiB
Bash
Raw Normal View History

#!/bin/bash
# Check if lnd is synced to chain and channels are open
# If it isn't, wait until it is
# exits with 1 if it isn't.
network=$1
chain=$2
2021-05-23 11:00:39 +01:00
# LNTYPE is lnd | cln
if [ $# -gt 2 ];then
LNTYPE=$3
else
LNTYPE=lnd
fi
source /home/admin/config.scripts/_functions.lightning.sh
getLNvars $LNTYPE ${chain}net
getLNaliases
2021-05-23 11:00:39 +01:00
# check if chain is in sync
2021-05-23 11:00:39 +01:00
if [ $LNTYPE = cln ];then
lncommand="lightning-cli"
BLOCKHEIGHT=$($bitcoincli_alias getblockchaininfo|grep blocks|awk '{print $2}'|cut -d, -f1)
CLHEIGHT=$($lightningcli_alias getinfo | jq .blockheight)
2021-05-23 11:00:39 +01:00
if [ $BLOCKHEIGHT -eq $CLHEIGHT ];then
cmdChainInSync=1
else
cmdChainInSync=0
fi
elif [ $LNTYPE = lnd ];then
lncommand="lncli"
cmdChainInSync="lncli_alias getinfo | grep '"synced_to_chain": true' -c"
fi
chainInSync=${cmdChainInSync}
2020-02-17 13:55:57 +01:00
while [ "${chainInSync}" == "0" ]; do
dialog --title "Fail: not in sync" \
--ok-label "Try now" \
--cancel-label "Give up" \
2021-05-23 11:00:39 +01:00
--pause "\n\n'$lncommand getinfo' shows 'synced_to_chain': false\n\nTry again in a few seconds." 15 60 5
if [ $? -gt 0 ]; then
exit 1
fi
chainInSync=${cmdChainInSync}
done
# check number of connected peers
echo "check for open channels"
2021-05-23 11:00:39 +01:00
if [ $LNTYPE = cln ];then
openChannels=$($lightningcli_alias listpeers | grep -c '"CHANNELD_NORMAL:Funding transaction locked. Channel announced."')
2021-05-23 11:00:39 +01:00
elif [ $LNTYPE = lnd ];then
openChannels=$($lncli_alias listchannels 2>/dev/null | grep chan_id -c)
2021-05-23 11:00:39 +01:00
fi
if [ ${openChannels} -eq 0 ]; then
2021-05-23 11:00:39 +01:00
echo
echo "!!!!!!!!!!!!!!!!!!!"
echo "FAIL - You have NO ESTABLISHED CHANNELS .. open a channel first."
echo "!!!!!!!!!!!!!!!!!!!"
2021-05-23 11:00:39 +01:00
echo
exit 1
fi
exit 0