diff --git a/home.admin/_provision.update.sh b/home.admin/_provision.update.sh index c8184dfbf..4df22f739 100755 --- a/home.admin/_provision.update.sh +++ b/home.admin/_provision.update.sh @@ -47,6 +47,12 @@ if [ ${#hostname} -eq 0 ]; then exit 1 fi +# check if config files contain lightning (lnd is default) +if [ "${lightning}" == "" ]; then + lightning="lnd" + echo "lightning=${lightning}" >> ${configFile} +fi + # load codeVersion source /home/admin/_version.info @@ -130,84 +136,6 @@ else echo "WARN: /mnt/hdd/bitcoin/bitcoin.conf not found" >> ${logFile} fi -# if old lnd.conf exists ... -configExists=$(sudo ls /mnt/hdd/lnd/lnd.conf | grep -c '.conf') -if [ ${configExists} -eq 1 ]; then - - # remove RPC user & pass from lnd.conf ... since v1.7 - # https://github.com/rootzoll/raspiblitz/issues/2160 - echo "- #2160 lnd.conf --> make sure contains no RPC user/pass for bitcoind" >> ${logFile} - sudo sed -i '/^\[Bitcoind\]/d' /mnt/hdd/lnd/lnd.conf - sudo sed -i '/^bitcoind.rpchost=/d' /mnt/hdd/lnd/lnd.conf - sudo sed -i '/^bitcoind.rpcpass=/d' /mnt/hdd/lnd/lnd.conf - sudo sed -i '/^bitcoind.rpcuser=/d' /mnt/hdd/lnd/lnd.conf - sudo sed -i '/^bitcoind.zmqpubrawblock=/d' /mnt/hdd/lnd/lnd.conf - sudo sed -i '/^bitcoind.zmqpubrawtx=/d' /mnt/hdd/lnd/lnd.conf - - # make sure additional values are added to [Application Options] since v1.7 - echo "- lnd.conf --> checking additional [Application Options] since v1.7" >> ${logFile} - applicationOptionsLineNumber=$(sudo grep -n "\[Application Options\]" /mnt/hdd/lnd/lnd.conf | cut -d ":" -f1) - if [ "${applicationOptionsLineNumber}" != "" ]; then - applicationOptionsLineNumber="$(($applicationOptionsLineNumber+1))" - - # Avoid historical graph data sync - # ignore-historical-gossip-filters=1 - configParamExists=$(sudo grep -c "^ignore-historical-gossip-filters=" /mnt/hdd/lnd/lnd.conf) - if [ "${configParamExists}" == "0" ]; then - echo " - ADDING 'ignore-historical-gossip-filters'" >> ${logFile} - sudo sed -i "${applicationOptionsLineNumber}iignore-historical-gossip-filters=1" /mnt/hdd/lnd/lnd.conf - else - echo " - OK 'ignore-historical-gossip-filters' exists (${configParamExists})" >> ${logFile} - fi - - # Avoid slow startup time - # sync-freelist=1 - configParamExists=$(sudo grep -c "^sync-freelist=" /mnt/hdd/lnd/lnd.conf) - if [ "${configParamExists}" == "0" ]; then - echo " - ADDING 'sync-freelist'" >> ${logFile} - sudo sed -i "${applicationOptionsLineNumber}isync-freelist=1" /mnt/hdd/lnd/lnd.conf - else - echo " - OK 'sync-freelist' exists (${configParamExists})" >> ${logFile} - fi - - # Avoid high startup overhead - # stagger-initial-reconnect=1 - configParamExists=$(sudo grep -c "^stagger-initial-reconnect=" /mnt/hdd/lnd/lnd.conf) - if [ "${configParamExists}" == "0" ]; then - echo " - ADDING 'stagger-initial-reconnect'" >> ${logFile} - sudo sed -i "${applicationOptionsLineNumber}istagger-initial-reconnect=1" /mnt/hdd/lnd/lnd.conf - else - echo " - OK 'stagger-initial-reconnect' exists (${configParamExists})" >> ${logFile} - fi - - # Delete and recreate RPC TLS certificate when details change or cert expires - # tlsautorefresh=1 - configParamExists=$(sudo grep -c "^tlsautorefresh=" /mnt/hdd/lnd/lnd.conf) - if [ "${configParamExists}" == "0" ]; then - echo " - ADDING 'tlsautorefresh'" >> ${logFile} - sudo sed -i "${applicationOptionsLineNumber}itlsautorefresh=1" /mnt/hdd/lnd/lnd.conf - else - echo " - OK 'tlsautorefresh' exists (${configParamExists})" >> ${logFile} - fi - - # Do not include IPs in the RPC TLS certificate - # tlsdisableautofill=1 - configParamExists=$(sudo grep -c "^tlsdisableautofill=" /mnt/hdd/lnd/lnd.conf) - if [ "${configParamExists}" == "0" ]; then - echo " - ADDING 'tlsdisableautofill'" >> ${logFile} - sudo sed -i "${applicationOptionsLineNumber}itlsdisableautofill=1" /mnt/hdd/lnd/lnd.conf - else - echo " - OK 'tlsdisableautofill' exists (${configParamExists})" >> ${logFile} - fi - - else - echo " - WARN: section '[Application Options]' not found in lnd.conf" >> ${logFile} - fi - -else - echo "WARN: /mnt/hdd/lnd/lnd.conf not found" >> ${logFile} -fi - echo "Version Code: ${codeVersion}" >> ${logFile} echo "Version Data: ${raspiBlitzVersion}" >> ${logFile} @@ -231,10 +159,117 @@ sudo systemctl daemon-reload >> ${logFile} sudo systemctl enable ${network}d.service >> ${logFile} sudo systemctl start ${network}d.service >> ${logFile} -# start lightning service -echo "Starting LND Service ..." >> ${logFile} -sudo systemctl enable lnd >> ${logFile} -sudo systemctl start lnd >> ${logFile} +# INSTALL LND on Upadte/Recovery +if [ "${lightning}" == "lnd" ]; then + + # prepare lnd service + sed -i "5s/.*/Wants=${network}d.service/" /home/admin/assets/lnd.service >> ${logFile} 2>&1 + sed -i "6s/.*/After=${network}d.service/" /home/admin/assets/lnd.service >> ${logFile} 2>&1 + sudo cp /home/admin/assets/lnd.service /etc/systemd/system/lnd.service >> ${logFile} 2>&1 + + # if old lnd.conf exists ... + configExists=$(sudo ls /mnt/hdd/lnd/lnd.conf | grep -c '.conf') + if [ ${configExists} -eq 1 ]; then + + # remove RPC user & pass from lnd.conf ... since v1.7 + # https://github.com/rootzoll/raspiblitz/issues/2160 + echo "- #2160 lnd.conf --> make sure contains no RPC user/pass for bitcoind" >> ${logFile} + sudo sed -i '/^\[Bitcoind\]/d' /mnt/hdd/lnd/lnd.conf + sudo sed -i '/^bitcoind.rpchost=/d' /mnt/hdd/lnd/lnd.conf + sudo sed -i '/^bitcoind.rpcpass=/d' /mnt/hdd/lnd/lnd.conf + sudo sed -i '/^bitcoind.rpcuser=/d' /mnt/hdd/lnd/lnd.conf + sudo sed -i '/^bitcoind.zmqpubrawblock=/d' /mnt/hdd/lnd/lnd.conf + sudo sed -i '/^bitcoind.zmqpubrawtx=/d' /mnt/hdd/lnd/lnd.conf + + # make sure additional values are added to [Application Options] since v1.7 + echo "- lnd.conf --> checking additional [Application Options] since v1.7" >> ${logFile} + applicationOptionsLineNumber=$(sudo grep -n "\[Application Options\]" /mnt/hdd/lnd/lnd.conf | cut -d ":" -f1) + if [ "${applicationOptionsLineNumber}" != "" ]; then + applicationOptionsLineNumber="$(($applicationOptionsLineNumber+1))" + + # Avoid historical graph data sync + # ignore-historical-gossip-filters=1 + configParamExists=$(sudo grep -c "^ignore-historical-gossip-filters=" /mnt/hdd/lnd/lnd.conf) + if [ "${configParamExists}" == "0" ]; then + echo " - ADDING 'ignore-historical-gossip-filters'" >> ${logFile} + sudo sed -i "${applicationOptionsLineNumber}iignore-historical-gossip-filters=1" /mnt/hdd/lnd/lnd.conf + else + echo " - OK 'ignore-historical-gossip-filters' exists (${configParamExists})" >> ${logFile} + fi + + # Avoid slow startup time + # sync-freelist=1 + configParamExists=$(sudo grep -c "^sync-freelist=" /mnt/hdd/lnd/lnd.conf) + if [ "${configParamExists}" == "0" ]; then + echo " - ADDING 'sync-freelist'" >> ${logFile} + sudo sed -i "${applicationOptionsLineNumber}isync-freelist=1" /mnt/hdd/lnd/lnd.conf + else + echo " - OK 'sync-freelist' exists (${configParamExists})" >> ${logFile} + fi + + # Avoid high startup overhead + # stagger-initial-reconnect=1 + configParamExists=$(sudo grep -c "^stagger-initial-reconnect=" /mnt/hdd/lnd/lnd.conf) + if [ "${configParamExists}" == "0" ]; then + echo " - ADDING 'stagger-initial-reconnect'" >> ${logFile} + sudo sed -i "${applicationOptionsLineNumber}istagger-initial-reconnect=1" /mnt/hdd/lnd/lnd.conf + else + echo " - OK 'stagger-initial-reconnect' exists (${configParamExists})" >> ${logFile} + fi + + # Delete and recreate RPC TLS certificate when details change or cert expires + # tlsautorefresh=1 + configParamExists=$(sudo grep -c "^tlsautorefresh=" /mnt/hdd/lnd/lnd.conf) + if [ "${configParamExists}" == "0" ]; then + echo " - ADDING 'tlsautorefresh'" >> ${logFile} + sudo sed -i "${applicationOptionsLineNumber}itlsautorefresh=1" /mnt/hdd/lnd/lnd.conf + else + echo " - OK 'tlsautorefresh' exists (${configParamExists})" >> ${logFile} + fi + + # Do not include IPs in the RPC TLS certificate + # tlsdisableautofill=1 + configParamExists=$(sudo grep -c "^tlsdisableautofill=" /mnt/hdd/lnd/lnd.conf) + if [ "${configParamExists}" == "0" ]; then + echo " - ADDING 'tlsdisableautofill'" >> ${logFile} + sudo sed -i "${applicationOptionsLineNumber}itlsdisableautofill=1" /mnt/hdd/lnd/lnd.conf + else + echo " - OK 'tlsdisableautofill' exists (${configParamExists})" >> ${logFile} + fi + + else + echo " - WARN: section '[Application Options]' not found in lnd.conf" >> ${logFile} + fi + else + echo "WARN: /mnt/hdd/lnd/lnd.conf not found" >> ${logFile} + fi + + # start LND service + echo "Starting LND Service ..." >> ${logFile} + sudo systemctl enable lnd >> ${logFile} + sudo systemctl start lnd >> ${logFile} + + +elif [ "${lightning}" == "cln" ]; then + + echo "Install C-lightning on update" >> ${logFile} + sudo sed -i "s/^message=.*/message='C-Lightning Install'/g" ${infoFile} + sudo /home/admin/config.scripts/cln.install.sh on mainnet >> ${logFile} + sudo sed -i "s/^message=.*/message='C-Lightning Setup'/g" ${infoFile} + +elif [ "${lightning}" == "none" ]; then + + echo "No Lightnig" >> ${logFile} + +else + + sed -i "s/^state=.*/state=error/g" ${infoFile} + sed -i "s/^message=.*/message='unknown lightning (${lightning})'/g" ${infoFile} + echo "FAIL see ${logFile}" + echo "FAIL: unknown lightning (${lightning}) in (${configFile})!" >> ${logFile} + exit 1 + +fi echo "END Migration/Init" >> ${logFile} diff --git a/home.admin/_provision_.sh b/home.admin/_provision_.sh index fa0808dc7..a22e535a4 100755 --- a/home.admin/_provision_.sh +++ b/home.admin/_provision_.sh @@ -149,14 +149,11 @@ sudo cp -r /mnt/hdd/lnd/data/chain /home/admin/.lnd/data/chain >> ${logFile} 2>& sudo chown -R admin:admin /home/admin/.${network} >> ${logFile} 2>&1 sudo chown -R admin:admin /home/admin/.lnd >> ${logFile} 2>&1 sudo cp /home/admin/assets/${network}d.service /etc/systemd/system/${network}d.service >> ${logFile} 2>&1 -sed -i "5s/.*/Wants=${network}d.service/" /home/admin/assets/lnd.service >> ${logFile} 2>&1 -sed -i "6s/.*/After=${network}d.service/" /home/admin/assets/lnd.service >> ${logFile} 2>&1 -sudo cp /home/admin/assets/lnd.service /etc/systemd/system/lnd.service >> ${logFile} 2>&1 - sudo cp /home/admin/assets/tmux.conf.local /mnt/hdd/.tmux.conf.local >> ${logFile} 2>&1 sudo chown admin:admin /mnt/hdd/.tmux.conf.local >> ${logFile} 2>&1 sudo ln -s -f /mnt/hdd/.tmux.conf.local /home/admin/.tmux.conf.local >> ${logFile} 2>&1 + # backup LND dir (especially for macaroons and tlscerts) # https://github.com/rootzoll/raspiblitz/issues/324 echo "*** Make backup of LND directory" >> ${logFile} diff --git a/home.admin/setup.scripts/controlSetupDialog.sh b/home.admin/setup.scripts/controlSetupDialog.sh index faa19db87..74f6768ed 100755 --- a/home.admin/setup.scripts/controlSetupDialog.sh +++ b/home.admin/setup.scripts/controlSetupDialog.sh @@ -234,7 +234,7 @@ if [ "${setupPhase}" == "setup" ]; then lightningWalletDone=0 source ${SETUPFILE} - if [ "${lightning}" == "" ]; then lightningWalletDone=1; fi + if [ "${lightning}" == "none" ]; then lightningWalletDone=1; fi while [ "${lightningWalletDone}" == "0" ] do diff --git a/home.admin/setup.scripts/dialogBlockchainLightning.sh b/home.admin/setup.scripts/dialogBlockchainLightning.sh index 7299332f2..dece24760 100644 --- a/home.admin/setup.scripts/dialogBlockchainLightning.sh +++ b/home.admin/setup.scripts/dialogBlockchainLightning.sh @@ -73,7 +73,7 @@ if [ "${network}" == "bitcoin" ]; then lightning="cln" ;; NONE) - lightning="" + lightning="none" ;; *) clear