diff --git a/home.admin/BBcloseAllChannels.sh b/home.admin/BBcloseAllChannels.sh index 57a8a7f84..9632d7f06 100755 --- a/home.admin/BBcloseAllChannels.sh +++ b/home.admin/BBcloseAllChannels.sh @@ -3,111 +3,42 @@ # load raspiblitz config data (with backup from old config) source /home/admin/raspiblitz.info source /mnt/hdd/raspiblitz.conf -if [ ${#network} -eq 0 ]; then network=$(cat .network); fi +if [ ${#network} -eq 0 ]; then network=`cat .network`; fi if [ ${#network} -eq 0 ]; then network="bitcoin"; fi if [ ${#chain} -eq 0 ]; then chain=$(${network}-cli getblockchaininfo | jq -r '.chain') fi -source <(/home/admin/config.scripts/network.aliases.sh getvars $1 $2) - -if [ $LNTYPE = cl ];then - # https://lightning.readthedocs.io/lightning-close.7.html - peerlist=$($lightningcli_alias listpeers|grep '"id":'|awk '{print $2}'|cut -d, -f1) - # to display - function cl_closeall_command { - for i in $peerlist; do - # close id [unilateraltimeout] [destination] [fee_negotiation_step] [*wrong_funding*] - echo "$lightningcli_alias close $i 30;" - done - } - command=$(cl_closeall_command) - # to run - function cl_closeall { - for i in $peerlist; do - # close id [unilateraltimeout] [destination] [fee_negotiation_step] [*wrong_funding*] - echo "# Attempting a mutual close one-by-one with a 30 seconds timeout" - $lightningcli_alias close $i 30 - done - } -elif [ $LNTYPE = lnd ];then - # precheck: AutoPilot - if [ "${autoPilot}" = "on" ]; then - dialog --title 'Info' --msgbox 'You need to turn OFF the LND AutoPilot first,\nso that closed channels are not opening up again.\nYou find the AutoPilot -----> SERVICES section' 7 55 - exit 0 - fi - - # User choice for close type - close_type=$(dialog --clear \ - --title "LND Channel Close Type" \ - --menu "Choose how to close channels:" \ - 14 54 3 \ - "COOP" "Attempt Cooperative Close" \ - "FORCE" "Force Close Channels" \ - 2>&1 >/dev/tty) - - # Set command based on user choice - if [ "$close_type" = "COOP" ]; then - command="$lncli_alias closeallchannels" - elif [ "$close_type" = "FORCE" ]; then - command="$lncli_alias closeallchannels --force" - else - echo "Invalid choice. Exiting." - exit 1 - fi +# precheck: AutoPilot +if [ "${autoPilot}" = "on" ]; then + dialog --title 'Info' --msgbox 'You need to turn OFF the LND AutoPilot first,\nso that closed channels are not opening up again.\nYou find the AutoPilot -----> SERVICES section' 7 55 + exit 1 fi +command="lncli --chain=${network} --network=${chain}net closeallchannels --force" + clear -echo -echo "# Precheck" # PRECHECK) check if chain is in sync -if [ $LNTYPE = cl ];then - BLOCKHEIGHT=$($bitcoincli_alias getblockchaininfo|grep blocks|awk '{print $2}'|cut -d, -f1) - CLHEIGHT=$($lightningcli_alias getinfo | jq .blockheight) - if [ $BLOCKHEIGHT -eq $CLHEIGHT ];then - chainOutSync=0 - else - chainOutSync=1 - fi -elif [ $LNTYPE = lnd ];then - chainOutSync=$($lncli_alias getinfo | grep '"synced_to_chain": false' -c) -fi -if [ ${chainOutSync} -eq 1 ]; then - if [ $LNTYPE = cl ];then - echo "# FAIL PRECHECK - '${netprefix}lightning-cli getinfo' blockheight is different from '${netprefix}bitcoind getblockchaininfo' - wait until chain is sync " - elif [ $LNTYPE = lnd ];then - echo "# FAIL PRECHECK - ${netprefix}lncli getinfo shows 'synced_to_chain': false - wait until chain is sync " - fi - echo - echo "# PRESS ENTER to return to menu" - read key - exit 0 -else - echo "# OK - the chain is synced" -fi - -# raise high focus on lightning channels next 1 hour -/home/admin/_cache.sh focus ln_${LNTYPE}_${CHAIN}_channels_active 0 3600 -/home/admin/_cache.sh focus ln_${LNTYPE}_${CHAIN}_channels_inactive 0 3600 -/home/admin/_cache.sh focus ln_${LNTYPE}_${CHAIN}_channels_total 0 3600 - -echo "#####################################" -echo "# Closing All Channels (EXPERIMENTAL)" -echo "#####################################" -echo -echo "# COMMAND LINE: " +echo "***********************************" +echo "Closing All Channels (EXPERIMENTAL)" +echo "***********************************" +echo "" +echo "COMMAND LINE: " echo $command -echo -echo "# RESULT:" +echo "" +echo "RESULT:" + +# PRECHECK) check if chain is in sync +chainInSync=$(lncli --chain=${network} --network=${chain}net getinfo | grep '"synced_to_chain": true' -c) +if [ ${chainInSync} -eq 0 ]; then + command="" + result="FAIL PRECHECK - lncli getinfo shows 'synced_to_chain': false - wait until chain is sync " +fi # execute command if [ ${#command} -gt 0 ]; then - if [ $LNTYPE = cl ];then - cl_closeall - elif [ $LNTYPE = lnd ];then - ${command} - fi + ${command} fi - -echo -echo "# OK - please recheck if channels really closed" + +echo "" +echo "OK - please recheck if channels really closed" sleep 5 \ No newline at end of file diff --git a/home.admin/config.scripts/bonus.lnbits.sh b/home.admin/config.scripts/bonus.lnbits.sh index 7bef113ed..334423906 100644 --- a/home.admin/config.scripts/bonus.lnbits.sh +++ b/home.admin/config.scripts/bonus.lnbits.sh @@ -234,6 +234,16 @@ Consider adding a IP2TOR Bridge under OPTIONS." OPTIONS+=(ADMINUI "Deactivate 'Admin UI'") fi + # Allow New Accounts (only if AdminUI is OFF) + allowNewAccountsFalse=$(sudo grep -c "LNBITS_ALLOW_NEW_ACCOUNTS=false" $lnbitsConfig) + if [ ${activatedAdminUI} -eq 0 ]; then + if [ ${allowNewAccountsFalse} -eq 0 ]; then + OPTIONS+=(NEWACCOUNTS "Disable New Accounts") + else + OPTIONS+=(NEWACCOUNTS "Enable New Accounts") + fi + fi + WIDTH=66 CHOICE_HEIGHT=$(("${#OPTIONS[@]}/2+1")) HEIGHT=$((CHOICE_HEIGHT + 7)) @@ -306,7 +316,27 @@ Consider adding a IP2TOR Bridge under OPTIONS." sudo sed -i "/^LNBITS_ADMIN_UI=/d" $lnbitsConfig sudo bash -c "echo 'LNBITS_ADMIN_UI=false' >> ${lnbitsConfig}" fi - echo "Restarting LNbits ..." + echo "Restarting LNbits to activate new setting ..." + sudo systemctl restart lnbits + echo "PRESS ENTER to continue" + read key + exit 0 + ;; + NEWACCOUNTS) + clear + echo + if [ ${allowNewAccountsFalse} -eq 0 ]; then + echo "Disable New Accounts" + sudo sed -i "/^LNBITS_ALLOW_NEW_ACCOUNTS=/d" $lnbitsConfig + sudo sed -i "/^# LNBITS_ALLOW_NEW_ACCOUNTS=/d" $lnbitsConfig + sudo bash -c "echo 'LNBITS_ALLOW_NEW_ACCOUNTS=false' >> ${lnbitsConfig}" + else + echo "Enable New Accounts" + sudo sed -i "/^LNBITS_ALLOW_NEW_ACCOUNTS=/d" $lnbitsConfig + sudo sed -i "/^# LNBITS_ALLOW_NEW_ACCOUNTS=/d" $lnbitsConfig + sudo bash -c "echo 'LNBITS_ALLOW_NEW_ACCOUNTS=true' >> ${lnbitsConfig}" + fi + echo "Restarting LNbits to activate new setting ..." sudo systemctl restart lnbits echo "PRESS ENTER to continue" read key diff --git a/home.admin/config.scripts/bonus.postgresql.sh b/home.admin/config.scripts/bonus.postgresql.sh index 866d9cbbb..1df7764b6 100755 --- a/home.admin/config.scripts/bonus.postgresql.sh +++ b/home.admin/config.scripts/bonus.postgresql.sh @@ -35,6 +35,12 @@ if [ "$command" = "1" ] || [ "$command" = "on" ]; then sudo apt install -y postgresql-$PG_VERSION fi + # make sure en_GB locale is available for now - see #4893 + echo "# temp fixing locale" + sudo sed -i '/^#en_GB.UTF-8 UTF-8/s/^#//' /etc/locale.gen + sudo sed -i '/^# en_GB.UTF-8 UTF-8/s/^# //' /etc/locale.gen + sudo locale-gen + postgres_datadir="/var/lib/postgresql" # default data dir postgres_confdir="/etc/postgresql" # default conf dir diff --git a/home.admin/config.scripts/cl.install.sh b/home.admin/config.scripts/cl.install.sh index 3a03eb6e2..9e1c179f6 100644 --- a/home.admin/config.scripts/cl.install.sh +++ b/home.admin/config.scripts/cl.install.sh @@ -162,7 +162,7 @@ if [ "$1" = "install" ]; then exit 1 fi echo - echo "- OK the installation of Core Lightning v${installed} is successful" + echo "- OK the installation of Core Lightning ${installed} is successful" exit 0 fi diff --git a/home.admin/config.scripts/lnd.monitor.sh b/home.admin/config.scripts/lnd.monitor.sh index 4da140e51..26629ffd5 100755 --- a/home.admin/config.scripts/lnd.monitor.sh +++ b/home.admin/config.scripts/lnd.monitor.sh @@ -259,6 +259,19 @@ if [ "$2" = "wallet" ]; then exit 1 fi + ln_pendingbalance=$($lndcli_alias pendingchannels 2>/dev/null) + if [ "${ln_pendingbalance}" == "" ]; then + echo "error='no data'" + exit 1 + fi + + ln_pendingonchainbalance_sum=$(echo "${ln_pendingbalance}" | jq -r ' + ([ .pending_force_closing_channels[].channel.local_balance, + .pending_closing_channels[].channel.local_balance + ] | map(tonumber) | add // 0)') + + lnd_wallet_onchain_pending=$(( ${lnd_wallet_onchain_pending:-0} + ${ln_pendingonchainbalance_sum:-0} )) + # parse data lnd_wallet_channels_balance=$(echo "$ln_channelbalance" | jq -r '.balance') lnd_wallet_channels_pending=$(echo "$ln_channelbalance" | jq -r '.pending_open_balance')