diff --git a/home.admin/70initLND.sh b/home.admin/70initLND.sh index 24449d0a2..8878d213c 100755 --- a/home.admin/70initLND.sh +++ b/home.admin/70initLND.sh @@ -379,7 +379,8 @@ Looks good :) LND was able to recover the wallet. IMPORTANT: Please dont reboot the RaspiBlitz until the LND was able to rescan the Blockchain again. - " 10 53 + " 10 60 + else whiptail --title " FAIL " --msgbox " Something went wrong - see info below: @@ -396,9 +397,6 @@ ${errMore} fi fi - clear - /home/admin/70initLND.sh - fi # END OLD WALLET else @@ -406,12 +404,8 @@ else fi echo "waiting ." -sleep 10 -echo "waiting .." -sleep 10 -echo "waiting ..." -sleep 10 -dialog --pause " Waiting for LND - please wait .." 8 58 30 +sleep 15 +dialog --pause " Waiting for LND - please wait .." 8 58 45 ############################ # Copy LND macaroons to admin @@ -435,18 +429,11 @@ if [ ${macaroonExists} -eq 0 ]; then echo "You may want try again with starting ./70initLND.sh" exit 1 fi -macaroonExists=$(sudo ls -la /home/admin/.lnd/data/chain/${network}/${chain}net/ | grep -c admin.macaroon) -if [ ${macaroonExists} -eq 0 ]; then - sudo mkdir /home/admin/.lnd - sudo mkdir /home/admin/.lnd/data - sudo mkdir /home/admin/.lnd/data/chain - sudo mkdir /home/admin/.lnd/data/chain/${network} - sudo mkdir /home/admin/.lnd/data/chain/${network}/${chain}net - sudo cp /home/bitcoin/.lnd/tls.cert /home/admin/.lnd - sudo cp /home/bitcoin/.lnd/lnd.conf /home/admin/.lnd - sudo cp /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon /home/admin/.lnd/data/chain/${network}/${chain}net - sudo chown -R admin:admin /home/admin/.lnd/ - echo "OK - LND Macaroons created" + + # copy macaroons to all needed users + sudo /home/admin/config.scripts/lnd.check.sh update-credentials + + echo "OK - LND Macaroons created and copied" echo "" else echo "OK - Macaroons are already copied" @@ -475,8 +462,6 @@ if [ ${setupStep} -lt 100 ]; then else - dialog --pause " Starting LND - please wait .." 8 58 300 - # its important that RaspiBlitz dont get rebooted # before LND rescan is finished whiptail --title "RESET DONE" --msgbox " diff --git a/home.admin/_bootstrap.sh b/home.admin/_bootstrap.sh index b94827ab3..536025d8c 100644 --- a/home.admin/_bootstrap.sh +++ b/home.admin/_bootstrap.sh @@ -437,35 +437,8 @@ sudo chown bitcoin:bitcoin -R /mnt/hdd/bitcoin 2>/dev/null source ${configFile} if [ ${#network} -gt 0 ] && [ ${#chain} -gt 0 ]; then - echo "making sure LND blockchain RPC password is set correct in lnd.conf" >> $logFile - source <(sudo cat /mnt/hdd/${network}/${network}.conf 2>/dev/null | grep "rpcpass" | sed 's/^[a-z]*\./lnd/g') - if [ ${#rpcpassword} -gt 0 ]; then - sudo sed -i "s/^${network}d.rpcpass=.*/${network}d.rpcpass=${rpcpassword}/g" /mnt/hdd/lnd/lnd.conf 2>/dev/null - else - echo "WARN: could not get value 'rpcuser' from blockchain conf" >> $logFile - fi - - echo "updating/cleaning admin user LND data" >> $logFile - sudo rm -R /home/admin/.lnd 2>/dev/null - sudo mkdir -p /home/admin/.lnd/data/chain/${network}/${chain}net 2>/dev/null - sudo cp /mnt/hdd/lnd/lnd.conf /home/admin/.lnd/lnd.conf 2>> $logFile - sudo cp /mnt/hdd/lnd/tls.cert /home/admin/.lnd/tls.cert 2>> $logFile - sudo sh -c "cat /mnt/hdd/lnd/data/chain/${network}/${chain}net/admin.macaroon > /home/admin/.lnd/data/chain/${network}/${chain}net/admin.macaroon" 2>> $logFile - sudo chown admin:admin -R /home/admin/.lnd 2>> $logFile - - echo "updating/cleaning pi user LND data (just read & invoice)" >> $logFile - sudo rm -R /home/pi/.lnd 2>/dev/null - sudo mkdir -p /home/pi/.lnd/data/chain/${network}/${chain}net/ 2>> $logFile - sudo cp /mnt/hdd/lnd/tls.cert /home/pi/.lnd/tls.cert 2>> $logFile - sudo sh -c "cat /mnt/hdd/lnd/data/chain/${network}/${chain}net/readonly.macaroon > /home/pi/.lnd/data/chain/${network}/${chain}net/readonly.macaroon" 2>> $logFile - sudo sh -c "cat /mnt/hdd/lnd/data/chain/${network}/${chain}net/invoice.macaroon > /home/pi/.lnd/data/chain/${network}/${chain}net/invoice.macaroon" 2>> $logFile - sudo chown pi:pi -R /home/pi/.lnd 2>> $logFile - - if [ "${LNBits}" = "on" ]; then - echo "updating macaroons for LNBits fresh on start" >> $logFile - sudo -u admin /home/admin/config.scripts/bonus.lnbits.sh write-macaroons >> $logFile - sudo chown admin:admin -R /mnt/hdd/app-data/LNBits - fi + echo "running LND user credentials update" >> $logFile + sudo /home/admin/config.scripts/lnd.check.sh update-credentials >> $logFile else echo "skipping admin user LND data update" >> $logFile diff --git a/home.admin/config.scripts/lnd.check.sh b/home.admin/config.scripts/lnd.check.sh index d01343e61..46c0a6387 100644 --- a/home.admin/config.scripts/lnd.check.sh +++ b/home.admin/config.scripts/lnd.check.sh @@ -3,10 +3,12 @@ if [ $# -eq 0 ]; then echo "# script to check LND states" echo "# lnd.check.sh basic-setup" + echo "# lnd.check.sh update-credentials" exit 1 fi # load raspiblitz conf +source /home/admin/raspiblitz.info source /mnt/hdd/raspiblitz.conf # check basic LND setup @@ -173,6 +175,46 @@ if [ "$1" == "basic-setup" ]; then fi echo "rpcpasscorrect=${rpcpasscorrect}" +# enforce basic LND credentials for users +elif [ "$1" == "update-credentials" ]; then + + echo "# making sure LND blockchain RPC password is set correct in lnd.conf" + source <(sudo cat /mnt/hdd/${network}/${network}.conf 2>/dev/null | grep "rpcpass" | sed 's/^[a-z]*\./lnd/g') + if [ ${#rpcpassword} -gt 0 ]; then + sudo sed -i "s/^${network}d.rpcpass=.*/${network}d.rpcpass=${rpcpassword}/g" /mnt/hdd/lnd/lnd.conf 2>/dev/null + else + echo "# WARN: could not get value 'rpcuser' from blockchain conf" + fi + + echo "# make sure admin user LND data dirs exist" + sudo mkdir -p /home/admin/.lnd + sudo mkdir -p /home/admin/.lnd/data + sudo mkdir -p /home/admin/.lnd/data/chain + sudo mkdir -p /home/admin/.lnd/data/chain/${network} + sudo mkdir -p /home/admin/.lnd/data/chain/${network}/${chain}net + + echo "# updating/cleaning admin user LND data" + sudo rm -R /home/admin/.lnd 2>/dev/null + sudo mkdir -p /home/admin/.lnd/data/chain/${network}/${chain}net 2>/dev/null + sudo cp /mnt/hdd/lnd/lnd.conf /home/admin/.lnd/lnd.conf + sudo cp /mnt/hdd/lnd/tls.cert /home/admin/.lnd/tls.cert + sudo sh -c "cat /mnt/hdd/lnd/data/chain/${network}/${chain}net/admin.macaroon > /home/admin/.lnd/data/chain/${network}/${chain}net/admin.macaroon" + sudo chown admin:admin -R /home/admin/.lnd + + echo "# updating/cleaning pi user LND data (just read & invoice)" + sudo rm -R /home/pi/.lnd 2>/dev/null + sudo mkdir -p /home/pi/.lnd/data/chain/${network}/${chain}net/ + sudo cp /mnt/hdd/lnd/tls.cert /home/pi/.lnd/tls.cert + sudo sh -c "cat /mnt/hdd/lnd/data/chain/${network}/${chain}net/readonly.macaroon > /home/pi/.lnd/data/chain/${network}/${chain}net/readonly.macaroon" + sudo sh -c "cat /mnt/hdd/lnd/data/chain/${network}/${chain}net/invoice.macaroon > /home/pi/.lnd/data/chain/${network}/${chain}net/invoice.macaroon" + sudo chown pi:pi -R /home/pi/.lnd + + if [ "${LNBits}" = "on" ]; then + echo "# updating macaroons for LNBits fresh on start" + sudo -u admin /home/admin/config.scripts/bonus.lnbits.sh write-macaroons + sudo chown admin:admin -R /mnt/hdd/app-data/LNBits + fi + else echo "# FAIL: parameter not known" fi \ No newline at end of file