2018-12-05 00:07:58 +01:00
|
|
|
#!/bin/bash
|
2018-07-17 13:12:03 +02:00
|
|
|
echo ""
|
|
|
|
|
2018-12-06 14:36:02 +01:00
|
|
|
## get basic info
|
|
|
|
source /home/admin/raspiblitz.info 2>/dev/null
|
2018-08-08 17:36:04 +02:00
|
|
|
|
2018-07-17 13:12:03 +02:00
|
|
|
# verify that bitcoin is running
|
2018-07-29 01:33:54 +02:00
|
|
|
echo "*** Checking ${network} ***"
|
2018-08-24 03:26:57 +02:00
|
|
|
bitcoinRunning=$(systemctl status ${network}d.service 2>/dev/null | grep -c running)
|
2018-08-24 12:42:18 +02:00
|
|
|
if [ ${bitcoinRunning} -eq 0 ]; then
|
2018-08-24 12:40:22 +02:00
|
|
|
#doublecheck
|
2019-01-15 15:24:29 +01:00
|
|
|
bitcoinRunning=$(sudo -u bitcoin ${network}-cli -datadir=/home/bitcoin/.${network} getblockchaininfo | grep -c verificationprogress)
|
2018-08-24 12:40:22 +02:00
|
|
|
fi
|
2018-07-17 13:12:03 +02:00
|
|
|
if [ ${bitcoinRunning} -eq 0 ]; then
|
|
|
|
# HDD is not available yet
|
2018-07-29 01:33:54 +02:00
|
|
|
echo "FAIL - ${network}d is not running"
|
2018-07-17 13:12:03 +02:00
|
|
|
echo "recheck with orignal tutorial -->"
|
|
|
|
echo "https://github.com/Stadicus/guides/blob/master/raspibolt/raspibolt_30_bitcoin.md"
|
|
|
|
fi
|
2018-07-29 01:33:54 +02:00
|
|
|
echo "OK - ${network}d is running"
|
2018-07-17 13:12:03 +02:00
|
|
|
echo ""
|
|
|
|
|
2018-09-17 10:33:11 +02:00
|
|
|
# verify that chainnetwork is ready
|
|
|
|
chainIsReady=0
|
2018-12-10 16:31:09 +01:00
|
|
|
loopCount=0
|
|
|
|
echo "*** Wait until ${network}d is ready ..."
|
2018-09-17 10:33:11 +02:00
|
|
|
while [ ${chainIsReady} -eq 0 ]
|
|
|
|
do
|
2018-12-10 16:31:09 +01:00
|
|
|
loopCount=$(($loopCount +1))
|
2019-01-15 15:24:29 +01:00
|
|
|
result=$(sudo -u bitcoin ${network}-cli -datadir=/home/bitcoin/.${network} getblockchaininfo 2>error.out)
|
2018-09-17 10:33:11 +02:00
|
|
|
error=`cat error.out`
|
|
|
|
rm error.out
|
|
|
|
if [ ${#error} -gt 0 ]; then
|
2018-12-10 17:37:45 +01:00
|
|
|
if [ ${loopCount} -gt 33 ]; then
|
2018-12-10 16:31:09 +01:00
|
|
|
echo "*** TAKES LONGER THEN EXCEPTED ***"
|
|
|
|
date +%s
|
|
|
|
echo "result(${result})"
|
|
|
|
echo "error(${error})"
|
|
|
|
testnetAdd=""
|
|
|
|
if [ "${chain}" = "test" ]; then
|
|
|
|
testnetAdd="testnet3/"
|
|
|
|
fi
|
|
|
|
sudo tail -n 5 /mnt/hdd/${network}/${testnetAdd}debug.log
|
|
|
|
echo "If you see an error -28 relax, just give it some time."
|
|
|
|
echo "Waiting 1 minute and then trying again ..."
|
|
|
|
sleep 60
|
|
|
|
else
|
|
|
|
echo "(${loopCount}/33) still waiting .."
|
|
|
|
sleep 10
|
2018-09-21 15:53:49 +02:00
|
|
|
fi
|
2018-09-17 10:33:11 +02:00
|
|
|
else
|
|
|
|
echo "OK - chainnetwork is working"
|
2018-11-11 10:38:34 +01:00
|
|
|
echo ""
|
2018-09-17 10:33:11 +02:00
|
|
|
chainIsReady=1
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
2018-07-17 13:12:03 +02:00
|
|
|
|
|
|
|
###### LND Config
|
|
|
|
echo "*** LND Config ***"
|
|
|
|
configExists=$( sudo ls /mnt/hdd/lnd/ | grep -c lnd.conf )
|
|
|
|
if [ ${configExists} -eq 0 ]; then
|
2018-07-31 20:13:08 +02:00
|
|
|
sudo cp /home/admin/assets/lnd.${network}.conf /mnt/hdd/lnd/lnd.conf
|
2018-07-17 13:12:03 +02:00
|
|
|
sudo chown bitcoin:bitcoin /mnt/hdd/lnd/lnd.conf
|
|
|
|
if [ -d /home/bitcoin/.lnd ]; then
|
|
|
|
echo "OK - LND config written"
|
|
|
|
else
|
|
|
|
echo "FAIL - Was not able to setup LND"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "OK - exists"
|
|
|
|
fi
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
###### Start LND
|
|
|
|
echo "*** Starting LND ***"
|
2019-01-29 12:24:37 +00:00
|
|
|
lndRunning=$(sudo systemctl status lnd.service 2>/dev/null | grep -c running)
|
2018-07-17 13:12:03 +02:00
|
|
|
if [ ${lndRunning} -eq 0 ]; then
|
2018-07-29 12:21:52 +02:00
|
|
|
sed -i "5s/.*/Wants=${network}d.service/" ./assets/lnd.service
|
|
|
|
sed -i "6s/.*/After=${network}d.service/" ./assets/lnd.service
|
|
|
|
sudo cp /home/admin/assets/lnd.service /etc/systemd/system/lnd.service
|
2018-08-07 14:03:59 +02:00
|
|
|
sudo chmod +x /etc/systemd/system/lnd.service
|
2018-07-17 13:12:03 +02:00
|
|
|
sudo systemctl enable lnd
|
|
|
|
sudo systemctl start lnd
|
2019-01-16 21:17:44 +01:00
|
|
|
echo ""
|
|
|
|
dialog --pause " Starting LND - please wait .." 8 58 120
|
2018-07-17 13:12:03 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
###### Check LND is running
|
2018-08-23 21:54:37 +02:00
|
|
|
lndRunning=0
|
|
|
|
while [ ${lndRunning} -eq 0 ]
|
|
|
|
do
|
2019-01-29 12:24:37 +00:00
|
|
|
lndRunning=$(sudo systemctl status lnd.service | grep -c running)
|
2018-08-23 21:54:37 +02:00
|
|
|
if [ ${lndRunning} -eq 0 ]; then
|
|
|
|
date +%s
|
|
|
|
echo "LND not ready yet ... waiting another 60 seconds."
|
|
|
|
echo "If this takes too long (more then 10min total) --> CTRL+c and report Problem"
|
|
|
|
sleep 60
|
|
|
|
fi
|
|
|
|
done
|
2018-07-17 13:12:03 +02:00
|
|
|
echo "OK - LND is running"
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
###### Instructions on Creating LND Wallet
|
2018-08-08 19:50:46 +02:00
|
|
|
walletExists=$(sudo ls /mnt/hdd/lnd/data/chain/${network}/${chain}net/wallet.db 2>/dev/null | grep wallet.db -c)
|
2018-08-09 11:54:15 +02:00
|
|
|
echo "walletExists(${walletExists})"
|
2018-08-09 12:04:31 +02:00
|
|
|
sleep 2
|
2018-08-08 17:36:04 +02:00
|
|
|
if [ ${walletExists} -eq 0 ]; then
|
2018-08-09 02:22:27 +02:00
|
|
|
|
2018-07-17 13:12:03 +02:00
|
|
|
# setup state signals, that no wallet has been created yet
|
2018-08-09 11:54:15 +02:00
|
|
|
dialog --backtitle "RaspiBlitz - LND Lightning Wallet (${network}/${chain})" --msgbox "
|
2018-07-29 01:33:54 +02:00
|
|
|
${network} and Lighthing Services are installed.
|
2018-07-17 13:12:03 +02:00
|
|
|
You now need to setup your Lightning Wallet:
|
|
|
|
|
|
|
|
We will now call the command: lncli create
|
|
|
|
lncli = Lightning Network Command Line Interface
|
|
|
|
Learn more: https://api.lightning.community
|
|
|
|
Press OK and follow the 'Helping Instructions'.
|
|
|
|
" 14 52
|
|
|
|
clear
|
|
|
|
echo "****************************************************************************"
|
|
|
|
echo "Helping Instructions --> for creating a new LND Wallet"
|
|
|
|
echo "****************************************************************************"
|
|
|
|
echo "A) For 'Wallet Password' use your PASSWORD C --> !! minimum 8 characters !!"
|
|
|
|
echo "B) Answere 'n' because you dont have a 'cipher seed mnemonic' (24 words) yet"
|
|
|
|
echo "C) For 'passphrase' to encrypt your 'cipher seed' use PASSWORD D (optional)"
|
|
|
|
echo "****************************************************************************"
|
|
|
|
echo ""
|
2018-08-27 11:08:04 +02:00
|
|
|
echo "lncli --chain=${network} create"
|
2018-08-09 10:48:51 +02:00
|
|
|
|
|
|
|
# execute command and monitor error
|
|
|
|
_error="./.error.out"
|
2018-08-27 11:08:04 +02:00
|
|
|
sudo -u bitcoin /usr/local/bin/lncli --chain=${network} create 2>$_error
|
2018-08-09 10:48:51 +02:00
|
|
|
error=`cat ${_error}`
|
|
|
|
|
|
|
|
if [ ${#error} -gt 0 ]; then
|
|
|
|
echo ""
|
|
|
|
echo "!!! FAIL !!! SOMETHING WENT WRONG:"
|
|
|
|
echo "${error}"
|
|
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
|
|
echo ""
|
|
|
|
echo "Press ENTER to retry ... or CTRL-c to EXIT"
|
|
|
|
read key
|
2018-08-09 11:34:37 +02:00
|
|
|
echo "Starting RETRY ..."
|
2018-08-09 10:48:51 +02:00
|
|
|
./70initLND.sh
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2018-07-17 13:12:03 +02:00
|
|
|
echo ""
|
|
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
|
|
echo "!!! Make sure to write down the 24 words (cipher seed mnemonic) !!!"
|
|
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
|
|
echo "If you are ready. Press ENTER."
|
|
|
|
read key
|
2018-08-24 23:29:22 +02:00
|
|
|
|
2018-12-06 03:32:19 +01:00
|
|
|
sudo sed -i "s/^setupStep=.*/setupStep=65/g" /home/admin/raspiblitz.info
|
2018-07-17 13:12:03 +02:00
|
|
|
fi
|
2018-08-08 17:36:04 +02:00
|
|
|
|
2019-01-16 21:17:44 +01:00
|
|
|
dialog --pause " Waiting for LND - please wait .." 8 58 60
|
2018-07-17 13:12:03 +02:00
|
|
|
|
|
|
|
###### Copy LND macaroons to admin
|
|
|
|
echo ""
|
|
|
|
echo "*** Copy LND Macaroons to user admin ***"
|
2018-12-10 17:52:39 +01:00
|
|
|
macaroonExists=$(sudo -u bitcoin ls -la /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon 2>/dev/null | grep -c admin.macaroon)
|
2018-08-09 12:04:31 +02:00
|
|
|
if [ ${macaroonExists} -eq 0 ]; then
|
2018-08-09 12:08:28 +02:00
|
|
|
./AAunlockLND.sh
|
2018-08-09 12:04:31 +02:00
|
|
|
sleep 3
|
|
|
|
fi
|
2018-12-10 17:52:39 +01:00
|
|
|
macaroonExists=$(sudo -u bitcoin ls -la /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon 2>/dev/null | grep -c admin.macaroon)
|
2018-07-17 13:12:03 +02:00
|
|
|
if [ ${macaroonExists} -eq 0 ]; then
|
2018-08-24 21:57:13 +02:00
|
|
|
sudo -u bitcoin ls -la /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon
|
2018-07-17 13:12:03 +02:00
|
|
|
echo ""
|
|
|
|
echo "FAIL - LND Macaroons not created"
|
|
|
|
echo "Please check the following LND issue:"
|
|
|
|
echo "https://github.com/lightningnetwork/lnd/issues/890"
|
2018-08-07 16:28:15 +02:00
|
|
|
echo "You may want try again with starting ./70initLND.sh"
|
2018-07-17 13:12:03 +02:00
|
|
|
exit 1
|
|
|
|
fi
|
2018-08-24 22:59:39 +02:00
|
|
|
macaroonExists=$(sudo ls -la /home/admin/.lnd/data/chain/${network}/${chain}net/ | grep -c admin.macaroon)
|
2018-07-17 13:12:03 +02:00
|
|
|
if [ ${macaroonExists} -eq 0 ]; then
|
|
|
|
sudo mkdir /home/admin/.lnd
|
2018-08-24 20:35:55 +02:00
|
|
|
sudo mkdir /home/admin/.lnd/data
|
2018-08-24 22:59:39 +02:00
|
|
|
sudo mkdir /home/admin/.lnd/data/chain
|
|
|
|
sudo mkdir /home/admin/.lnd/data/chain/${network}
|
2018-12-04 20:59:36 +01:00
|
|
|
sudo mkdir /home/admin/.lnd/data/chain/${network}/${chain}net
|
2018-07-17 13:12:03 +02:00
|
|
|
sudo cp /home/bitcoin/.lnd/tls.cert /home/admin/.lnd
|
2018-08-25 13:25:44 +02:00
|
|
|
sudo cp /home/bitcoin/.lnd/lnd.conf /home/admin/.lnd
|
2018-08-24 21:57:13 +02:00
|
|
|
sudo cp /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon /home/admin/.lnd/data/chain/${network}/${chain}net
|
2018-07-17 13:12:03 +02:00
|
|
|
sudo chown -R admin:admin /home/admin/.lnd/
|
|
|
|
echo "OK - LND Macaroons created"
|
2018-11-11 11:26:25 +01:00
|
|
|
echo ""
|
2018-07-17 13:12:03 +02:00
|
|
|
else
|
|
|
|
echo "OK - Macaroons are already copied"
|
2018-11-11 11:26:25 +01:00
|
|
|
echo ""
|
2018-07-17 13:12:03 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
###### Unlock Wallet (if needed)
|
|
|
|
echo "*** Check Wallet Lock ***"
|
2018-07-29 01:33:54 +02:00
|
|
|
locked=$(sudo tail -n 1 /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log | grep -c unlock)
|
2018-07-17 13:12:03 +02:00
|
|
|
if [ ${locked} -gt 0 ]; then
|
|
|
|
echo "OK - Wallet is locked ... starting unlocking dialog"
|
2018-08-09 12:08:28 +02:00
|
|
|
./AAunlockLND.sh
|
2018-07-17 13:12:03 +02:00
|
|
|
else
|
|
|
|
echo "OK - Wallet is already unlocked"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# set SetupState (scan is done - so its 80%)
|
2018-12-06 03:32:19 +01:00
|
|
|
sudo sed -i "s/^setupStep=.*/setupStep=80/g" /home/admin/raspiblitz.info
|
2018-07-17 13:12:03 +02:00
|
|
|
|
2018-07-25 11:40:50 -04:00
|
|
|
###### finishSetup
|
2018-12-10 16:09:45 +01:00
|
|
|
sudo ./90finishSetup.sh
|
|
|
|
sudo ./95finalSetup.sh
|