2021-08-04 00:18:30 +02:00
#!/bin/bash
# command info
if [ $# -eq 0 ] || [ " $1 " = "-h" ] || [ " $1 " = "-help" ] ; then
2021-09-22 16:06:37 +01:00
echo
echo "---------------------------------------------------"
2021-09-26 10:30:09 +01:00
echo "CL RESCUE FILE (tar.gz of complete cl directory)"
2021-09-22 16:06:37 +01:00
echo "---------------------------------------------------"
2021-09-26 10:30:09 +01:00
echo "cl.backup.sh cl-export"
echo "cl.backup.sh cl-export-gui"
echo "cl.backup.sh cl-import [file]"
echo "cl.backup.sh cl-import-gui [setup|production] [?resultfile]"
2021-09-22 16:06:37 +01:00
echo "---------------------------------------------------"
echo "SEED WORDS"
echo "---------------------------------------------------"
2022-01-25 12:07:11 +01:00
echo "cl.backup.sh seed-export-gui [clseeddata]"
2021-09-26 10:30:09 +01:00
echo "cl.backup.sh seed-import-gui [resultfile]"
2022-01-25 12:07:11 +01:00
echo "---------------------------------------------------"
echo "RECOVERY"
echo "---------------------------------------------------"
echo "cl.backup.sh [mainnet|signet|testnet] recoverymode [on|off|status] <-rescanbockheight|rescandepth>"
2021-09-22 16:06:37 +01:00
echo
2021-08-04 00:18:30 +02:00
exit 1
fi
2022-01-25 12:07:11 +01:00
# 1st PARAMETER [mainnet|signet|testnet]
if [ " $1 " = = "mainnet" ] || [ " $1 " = = "testnet" ] || [ " $1 " = = "signet" ] ; then
# prepare all chain dependent variables
source <( /home/admin/config.scripts/network.aliases.sh getvars cl $1 )
mode = " $2 "
################################
# RECOVERY
################################
# c-lightning is considered in "recoverymode" when it is scanning the chain
# and getinfo -H shows: 'warning_lightningd_sync=Still loading latest blocks from bitcoind.'
# and 'blockheight=lower-than-in-bitcoind'
if [ ${ mode } = "recoverymode" ] ; then
# check if started with sudo
if [ " $EUID " -ne 0 ] ; then
echo "error='run as root'"
exit 1
fi
# status
recoverymodeStatus = $( grep -c "^rescan=" < " ${ CLCONF } " )
if [ " $3 " = = "status" ] ; then
if [ ${ recoverymodeStatus } -gt 0 ] ; then
echo "recoverymode=1"
else
echo "recoverymode=0"
fi
exit 0
fi
# on
if [ " $3 " = = "on" ] ; then
if [ ${ recoverymodeStatus } -gt 0 ] ; then
echo "# recoverymode already on"
exit 0
fi
# clean
sed -i 's/^rescan=.*//g' " ${ CLCONF } "
sed -i 's/^log-level=.*//g' " ${ CLCONF } "
# activate rescan in cl config
if [ $# -gt 3 ] ; then
scanFrom = " $4 "
else
# scan from block 700000 by default
scanFrom = "-700000"
fi
echo "# activating recovery mode ..."
echo " rescan= ${ scanFrom } " | tee -a " ${ CLCONF } "
echo "# setting log-level=debug ..."
echo "log-level=debug" | tee -a " ${ CLCONF } "
echo " # OK - restart/reboot needed for: ${ netprefix } lightningd.service "
exit 0
fi
# off
if [ " $3 " = = "off" ] ; then
if [ ${ recoverymodeStatus } -eq 0 ] ; then
echo "# recoverymode already off"
exit 0
fi
# remove --reset-wallet-transactions parameter in systemd service
echo "# deactivating recovery mode ..."
sed -i 's/^rescan=.*//g' " ${ CLCONF } "
sed -i 's/^log-level=.*//g' " ${ CLCONF } "
echo "# setting log-level=info (default) ..."
echo "log-level=info" | tee -a " ${ CLCONF } "
echo " # OK - restart/reboot needed for: ${ netprefix } lightningd.service "
exit 0
fi
# parameter fallback
echo "error='unknown parameter'"
exit 1
fi
fi
2021-08-04 00:18:30 +02:00
# 1st PARAMETER action
mode = " $1 "
################################
2021-09-26 10:30:09 +01:00
# CL RESCUE FILE - EXPORT
2021-08-04 00:18:30 +02:00
################################
2021-09-26 10:30:09 +01:00
if [ ${ mode } = "cl-export" ] ; then
2021-08-04 00:18:30 +02:00
2021-09-26 10:30:09 +01:00
echo "# *** CL.RESCUE --> BACKUP"
2021-08-04 00:18:30 +02:00
downloadPath = "/home/admin"
fileowner = "admin"
2021-08-31 12:57:34 +01:00
# stop
2021-09-26 10:30:09 +01:00
echo "# Stopping cl..."
2021-08-04 00:18:30 +02:00
sudo systemctl stop lightningd 1>/dev/null
2021-09-26 10:30:09 +01:00
if grep -Eq "^tcl=on" /mnt/hdd/raspiblitz.conf; then
echo "# stopping tcl..."
2021-08-31 12:57:34 +01:00
sudo systemctl stop tlightningd 1>/dev/null
fi
2021-09-26 10:30:09 +01:00
if grep -Eq "^scl=on" /mnt/hdd/raspiblitz.conf; then
echo "# stopping scl..."
2021-08-31 12:57:34 +01:00
sudo systemctl stop slightningd 1>/dev/null
fi
2021-08-04 00:18:30 +02:00
sleep 5
echo "# OK"
echo
2021-09-26 10:30:09 +01:00
# add cl version info into lnd dir (to detect needed updates later)
clVersion = $( sudo -u bitcoin lightning-cli --version | cut -d '-' -f1 | cut -d 'v' -f2)
2021-08-04 00:18:30 +02:00
sudo rm /mnt/hdd/app-data/.lightning/version.info 2>/dev/null
2021-09-26 10:30:09 +01:00
echo " ${ clVersion } " > /home/admin/cl.version.info
sudo mv /home/admin/cl.version.info /mnt/hdd/app-data/.lightning/version.info
2021-08-04 00:18:30 +02:00
sudo chown bitcoin:bitcoin /mnt/hdd/app-data/.lightning/version.info
# zip it
2021-09-26 10:30:09 +01:00
sudo tar -zcvf ${ downloadPath } /cl-rescue.tar.gz /mnt/hdd/app-data/.lightning 1>& 2
sudo chown ${ fileowner } :${ fileowner } ${ downloadPath } /cl-rescue.tar.gz 1>& 2
2021-08-04 00:18:30 +02:00
# delete old backups
2022-07-21 16:36:23 +01:00
# rm ${downloadPath}/cl-rescue-*.tar.gz 2>/dev/null 1>/dev/null
2021-08-04 00:18:30 +02:00
# name with md5 checksum
2021-09-26 10:30:09 +01:00
md5checksum = $( md5sum ${ downloadPath } /cl-rescue.tar.gz | head -n1 | cut -d " " -f1)
mv ${ downloadPath } /cl-rescue.tar.gz ${ downloadPath } /cl-rescue-${ md5checksum } .tar.gz 1>& 2
byteSize = $( ls -l ${ downloadPath } /cl-rescue-${ md5checksum } .tar.gz | awk '{print $5}' )
2021-08-04 00:18:30 +02:00
# check file size
if [ ${ byteSize } -lt 100 ] ; then
echo "error='backup is empty'"
exit 1
fi
# output result data
2021-09-26 10:30:09 +01:00
echo "# cl service is stopped for security"
echo " filename=' ${ downloadPath } /cl-rescue- ${ md5checksum } .tar.gz' "
2021-08-04 00:18:30 +02:00
echo " fileowner=' ${ fileowner } ' "
echo " size= ${ byteSize } "
exit 0
fi
2021-09-26 10:30:09 +01:00
if [ ${ mode } = "cl-export-gui" ] ; then
2021-10-11 14:39:24 +01:00
echo "# Create the CL rescue file ..."
2021-09-26 10:30:09 +01:00
source <( /home/admin/config.scripts/cl.backup.sh cl-export)
2021-08-04 00:18:30 +02:00
if [ " ${ error } " != "" ] ; then
echo " error=' ${ error } ' "
exit 1
fi
# get local ip info
source <( /home/admin/config.scripts/internet.sh status local )
2022-09-29 13:56:23 -05:00
# offer SFTP for download
2021-08-04 00:18:30 +02:00
clear
echo
2022-07-27 08:29:16 +02:00
echo "*******************************************"
echo "* DOWNLOAD THE CORE LIGHTNING RESCUE FILE *"
echo "*******************************************"
2021-08-04 00:18:30 +02:00
echo
echo "ON YOUR MAC & LINUX LAPTOP - RUN IN NEW TERMINAL:"
v1.9.0rc3 Merge (#3742)
* cln: use default normal feerate to withdraw all
* Bugfix: bad subsititution (#3668)
Fix for error:
/home/admin/config.scripts/bonus.go.sh: line 31: ${goOSversion{}: bad substitution
* whiptail one line
* fix syntax
* lnproxy: fix api access through nginx (#3671)
* lnproxy: fix api access through nginx
* fix tor config and fit the menu
* add to the menu and provision
* merge #3682
* cln update to v23.02, backup-plugin update, add poetry (#3684)
* cln backup-plugin update, add poetry
* fix mkdir error, remove commented code, fmt #3677
* poetry and path fixes
* add terminal feedback, format #3676
* detect the full name of the plugin
* install pyln-client tqdm with pip
* git-verify: add --keyid-format LONG
to recognise if the signing key is not the main key
* cln update to v23.02
* cln-grpc: add protobuf-compiler dep
* rtl update to v0.13.6 and formatting
* C-lightningREST update to v0.10.1
* CLN FAQ update (#3666)
* improve the detection of existing cln aliases
* add the emergencyrecover instructions to CLN FAQ
* update help entries
* Update Tallycoin to version 1.8.0 (#3693)
* add tallycoin update info to CHANGES
* Fix typo in README.md (#3699)
excepted -> accepted
* #3694 add LCD info
* #3664 att timeout 30s to ln monitor calls (#3665)
* fix setting LND_REST_ENDPOINT (#3689)
* btcpay update v1.8.2, postgres database fix (#3697)
* btcpay update v1.8.0, postgres database fix
* btcpayserver update to v1.8.2
* update lnbits to 0.10.2 and use poetry instead of venv (#3703)
* fix apt update Key error for influx repo (#3711)
Co-authored-by: Patrick Scheich <patrick.scheich@syscovery.de>
* fix missing timeout value for nc cmnd (#3712)
Co-authored-by: Patrick Scheich <patrick.scheich@syscovery.de>
* #3706 Update CLN v23.02.2 (#3716)
* used patched/rolledback 23.02.2 release
* check rusty sig
* fix typo
* fix default lightning setting
* #3683 Update LIT to 0.8.6 (#3717)
* update LIT to 0.8.6
* activate lnd rpcmiddleware
* CHANGES.md
* #3667 change all up/download from sftp tp scp (#3718)
* #3722 add no hostkeys available detection (#3723)
* #1186 FinTS/HBCI interface (#3704)
* #1186 FinTS install script first draft
* only start app when blitz is ready
* improve menu
* improve dit lnbits config
* preserve edit
* improve edit
* improve edit
* fix insertion
* dont use fingerprint
* now use main repo
* add port
* show local ip
* fix typo
* show port SSL
* Update bonus.lndg.sh (#3725)
* Update bonus.lndg.sh
Changes version to v1.6.0.
Fixes update menu bug.
Cleans up code a bit (removes tabs and changes to spaces to match raspiblitz formats).
* Update bonus.lndg.sh
Cleaned up code, added requirements.txt install to updates (needed for this update, may be needed in future).
* #3725 update lndg version in CHANGES
* #3692 update lnd to v0.16.0-beta (#3732)
* update SD CARD base image info
* Clenaup CHANGES info
* RTL install fix (#3739)
* c-lightning-REST update to 0.10.2, fmt
* rtl: npm insatll with --legacy-peer-deps
* purge c-lightning-REST as well with RTL
* jam update to v0.1.5 (#3736)
* 3733 CLN GRPC > JRPC (#3741)
* change exit code
* change to cln_jrpc
* deactivate the cln_grpc settings
* set v1.9.0rc3 version
---------
Co-authored-by: openoms <oms@tuta.io>
Co-authored-by: Metallicc <72348+metallicc@users.noreply.github.com>
Co-authored-by: openoms <43343391+openoms@users.noreply.github.com>
Co-authored-by: DJ Booth <djbooth007@gmail.com>
Co-authored-by: Yuck Fou <115867254+YuckFouBTC@users.noreply.github.com>
Co-authored-by: dni ⚡ <office@dnilabs.com>
Co-authored-by: PatrickScheich <50054697+PatrickScheich@users.noreply.github.com>
Co-authored-by: Patrick Scheich <patrick.scheich@syscovery.de>
Co-authored-by: allyourbankarebelongtous <100060902+allyourbankarebelongtous@users.noreply.github.com>
2023-04-08 23:10:01 +02:00
echo " scp ' ${ fileowner } @ ${ localip } : ${ filename } ' ./ "
2023-02-05 23:11:49 +01:00
echo "ON WINDOWS - RUN IN CMD:"
v1.9.0rc3 Merge (#3742)
* cln: use default normal feerate to withdraw all
* Bugfix: bad subsititution (#3668)
Fix for error:
/home/admin/config.scripts/bonus.go.sh: line 31: ${goOSversion{}: bad substitution
* whiptail one line
* fix syntax
* lnproxy: fix api access through nginx (#3671)
* lnproxy: fix api access through nginx
* fix tor config and fit the menu
* add to the menu and provision
* merge #3682
* cln update to v23.02, backup-plugin update, add poetry (#3684)
* cln backup-plugin update, add poetry
* fix mkdir error, remove commented code, fmt #3677
* poetry and path fixes
* add terminal feedback, format #3676
* detect the full name of the plugin
* install pyln-client tqdm with pip
* git-verify: add --keyid-format LONG
to recognise if the signing key is not the main key
* cln update to v23.02
* cln-grpc: add protobuf-compiler dep
* rtl update to v0.13.6 and formatting
* C-lightningREST update to v0.10.1
* CLN FAQ update (#3666)
* improve the detection of existing cln aliases
* add the emergencyrecover instructions to CLN FAQ
* update help entries
* Update Tallycoin to version 1.8.0 (#3693)
* add tallycoin update info to CHANGES
* Fix typo in README.md (#3699)
excepted -> accepted
* #3694 add LCD info
* #3664 att timeout 30s to ln monitor calls (#3665)
* fix setting LND_REST_ENDPOINT (#3689)
* btcpay update v1.8.2, postgres database fix (#3697)
* btcpay update v1.8.0, postgres database fix
* btcpayserver update to v1.8.2
* update lnbits to 0.10.2 and use poetry instead of venv (#3703)
* fix apt update Key error for influx repo (#3711)
Co-authored-by: Patrick Scheich <patrick.scheich@syscovery.de>
* fix missing timeout value for nc cmnd (#3712)
Co-authored-by: Patrick Scheich <patrick.scheich@syscovery.de>
* #3706 Update CLN v23.02.2 (#3716)
* used patched/rolledback 23.02.2 release
* check rusty sig
* fix typo
* fix default lightning setting
* #3683 Update LIT to 0.8.6 (#3717)
* update LIT to 0.8.6
* activate lnd rpcmiddleware
* CHANGES.md
* #3667 change all up/download from sftp tp scp (#3718)
* #3722 add no hostkeys available detection (#3723)
* #1186 FinTS/HBCI interface (#3704)
* #1186 FinTS install script first draft
* only start app when blitz is ready
* improve menu
* improve dit lnbits config
* preserve edit
* improve edit
* improve edit
* fix insertion
* dont use fingerprint
* now use main repo
* add port
* show local ip
* fix typo
* show port SSL
* Update bonus.lndg.sh (#3725)
* Update bonus.lndg.sh
Changes version to v1.6.0.
Fixes update menu bug.
Cleans up code a bit (removes tabs and changes to spaces to match raspiblitz formats).
* Update bonus.lndg.sh
Cleaned up code, added requirements.txt install to updates (needed for this update, may be needed in future).
* #3725 update lndg version in CHANGES
* #3692 update lnd to v0.16.0-beta (#3732)
* update SD CARD base image info
* Clenaup CHANGES info
* RTL install fix (#3739)
* c-lightning-REST update to 0.10.2, fmt
* rtl: npm insatll with --legacy-peer-deps
* purge c-lightning-REST as well with RTL
* jam update to v0.1.5 (#3736)
* 3733 CLN GRPC > JRPC (#3741)
* change exit code
* change to cln_jrpc
* deactivate the cln_grpc settings
* set v1.9.0rc3 version
---------
Co-authored-by: openoms <oms@tuta.io>
Co-authored-by: Metallicc <72348+metallicc@users.noreply.github.com>
Co-authored-by: openoms <43343391+openoms@users.noreply.github.com>
Co-authored-by: DJ Booth <djbooth007@gmail.com>
Co-authored-by: Yuck Fou <115867254+YuckFouBTC@users.noreply.github.com>
Co-authored-by: dni ⚡ <office@dnilabs.com>
Co-authored-by: PatrickScheich <50054697+PatrickScheich@users.noreply.github.com>
Co-authored-by: Patrick Scheich <patrick.scheich@syscovery.de>
Co-authored-by: allyourbankarebelongtous <100060902+allyourbankarebelongtous@users.noreply.github.com>
2023-04-08 23:10:01 +02:00
echo " scp ${ fileowner } @ ${ localip } : ${ filename } . "
2021-12-19 18:35:27 +00:00
echo
2021-08-04 00:18:30 +02:00
echo "Use password A to authenticate file transfer."
echo " Check for correct file size after transfer: ${ size } byte "
echo
echo "BEWARE: Your Lightning node is now stopped. It's safe to backup the data and"
echo "restore it on a fresh RaspiBlitz. But once this Lightning node gets started"
echo "again or rebooted, it's not advised to restore the backup file because"
echo "it would contain outdated channel data and can lead to loss of channel funds."
exit 0
fi
################################
2021-09-26 10:30:09 +01:00
# CL RESCUE FILE - IMPORT
2021-08-04 00:18:30 +02:00
################################
2021-09-26 10:30:09 +01:00
if [ ${ mode } = "cl-import" ] ; then
2021-08-04 00:18:30 +02:00
# 2nd PARAMETER: file to import (expect that the file was valid checked from calling script)
filename = $2
if [ " ${ filename } " = = "" ] ; then
echo "error='filename missing'"
exit 1
fi
fileExists = $( sudo ls ${ filename } 2>/dev/null | grep -c " ${ filename } " )
if [ " ${ fileExists } " != "1" ] ; then
echo "error='filename not found'"
exit 1
fi
2021-08-31 12:57:34 +01:00
# stop
2021-09-26 10:30:09 +01:00
echo "# stopping cl..."
2021-08-04 00:18:30 +02:00
sudo systemctl stop lightningd 1>/dev/null
2021-09-26 10:30:09 +01:00
if grep -Eq "^tcl=on" /mnt/hdd/raspiblitz.conf; then
echo "# stopping tcl..."
2021-08-31 12:57:34 +01:00
sudo systemctl stop tlightningd 1>/dev/null
fi
2021-09-26 10:30:09 +01:00
if grep -Eq "^scl=on" /mnt/hdd/raspiblitz.conf; then
echo "# stopping scl..."
2021-08-31 12:57:34 +01:00
sudo systemctl stop slightningd 1>/dev/null
fi
2021-08-04 00:18:30 +02:00
sleep 5
# clean DIR
2021-09-26 10:30:09 +01:00
echo "# cleaning old CL data ..."
2021-08-04 00:18:30 +02:00
sudo rm -r /mnt/hdd/app-data/.lightning/* 1>/dev/null 2>/dev/null
# unpack zip
2021-09-26 10:30:09 +01:00
echo " # restoring CL data from ${ filename } ... "
2021-08-04 00:18:30 +02:00
sudo tar -xf ${ filename } -C / 1>/dev/null
sudo chown -R bitcoin:bitcoin /mnt/hdd/app-data/.lightning 1>/dev/null
echo "# DONE - lightningd service is still stopped - start manually with command:"
echo "# sudo systemctl start lightningd"
exit 0
fi
2021-09-26 10:30:09 +01:00
if [ ${ mode } = "cl-import-gui" ] ; then
2021-08-04 00:18:30 +02:00
# get by second parameter if this call if happening during setup or production
scenario = $2
if [ " ${ scenario } " != "setup" ] && [ " ${ scenario } " != "production" ] ; then
2021-12-21 15:30:45 +00:00
echo "error='missing parameter'"
2021-08-04 00:18:30 +02:00
exit 1
fi
# scenario setup needs a 3rd parameter - the RESULTFILE to store results in
if [ " ${ scenario } " = = "setup" ] ; then
RESULTFILE = $3
if [ " ${ RESULTFILE } " = = "" ] ; then
2021-09-07 14:12:51 +01:00
echo "error='missing parameter'"
2021-08-04 00:18:30 +02:00
exit 1
fi
fi
# determine password info based on scenario
if [ " ${ scenario } " = = "setup" ] ; then
passwordInfo = "password 'raspiblitz'"
else
passwordInfo = "your Password A"
fi
# get defaultUploadPath, localIP, etc
source <( sudo /home/admin/config.scripts/blitz.upload.sh prepare-upload)
filename = ""
while [ " ${ filename } " = = "" ]
do
clear
2022-07-27 08:29:16 +02:00
echo "*****************************************"
echo "* UPLOAD THE CORE LIGHTNING RESCUE FILE *"
echo "*****************************************"
2021-09-26 10:30:09 +01:00
echo "If you have a cl-rescue backup file on your laptop you can now"
2022-07-27 08:29:16 +02:00
echo "upload it and restore your latest Core Lightning state."
2021-08-04 00:18:30 +02:00
echo
2021-12-19 18:35:27 +00:00
echo "CAUTION: Don't restore outdated states - risk of loosing funds!"
2021-08-04 00:18:30 +02:00
echo
echo "To make upload open a new terminal on your laptop,"
2021-09-26 10:30:09 +01:00
echo "change into the directory where your cl-rescue file is and"
2021-08-04 00:18:30 +02:00
echo "COPY, PASTE AND EXECUTE THE FOLLOWING COMMAND:"
v1.9.0rc3 Merge (#3742)
* cln: use default normal feerate to withdraw all
* Bugfix: bad subsititution (#3668)
Fix for error:
/home/admin/config.scripts/bonus.go.sh: line 31: ${goOSversion{}: bad substitution
* whiptail one line
* fix syntax
* lnproxy: fix api access through nginx (#3671)
* lnproxy: fix api access through nginx
* fix tor config and fit the menu
* add to the menu and provision
* merge #3682
* cln update to v23.02, backup-plugin update, add poetry (#3684)
* cln backup-plugin update, add poetry
* fix mkdir error, remove commented code, fmt #3677
* poetry and path fixes
* add terminal feedback, format #3676
* detect the full name of the plugin
* install pyln-client tqdm with pip
* git-verify: add --keyid-format LONG
to recognise if the signing key is not the main key
* cln update to v23.02
* cln-grpc: add protobuf-compiler dep
* rtl update to v0.13.6 and formatting
* C-lightningREST update to v0.10.1
* CLN FAQ update (#3666)
* improve the detection of existing cln aliases
* add the emergencyrecover instructions to CLN FAQ
* update help entries
* Update Tallycoin to version 1.8.0 (#3693)
* add tallycoin update info to CHANGES
* Fix typo in README.md (#3699)
excepted -> accepted
* #3694 add LCD info
* #3664 att timeout 30s to ln monitor calls (#3665)
* fix setting LND_REST_ENDPOINT (#3689)
* btcpay update v1.8.2, postgres database fix (#3697)
* btcpay update v1.8.0, postgres database fix
* btcpayserver update to v1.8.2
* update lnbits to 0.10.2 and use poetry instead of venv (#3703)
* fix apt update Key error for influx repo (#3711)
Co-authored-by: Patrick Scheich <patrick.scheich@syscovery.de>
* fix missing timeout value for nc cmnd (#3712)
Co-authored-by: Patrick Scheich <patrick.scheich@syscovery.de>
* #3706 Update CLN v23.02.2 (#3716)
* used patched/rolledback 23.02.2 release
* check rusty sig
* fix typo
* fix default lightning setting
* #3683 Update LIT to 0.8.6 (#3717)
* update LIT to 0.8.6
* activate lnd rpcmiddleware
* CHANGES.md
* #3667 change all up/download from sftp tp scp (#3718)
* #3722 add no hostkeys available detection (#3723)
* #1186 FinTS/HBCI interface (#3704)
* #1186 FinTS install script first draft
* only start app when blitz is ready
* improve menu
* improve dit lnbits config
* preserve edit
* improve edit
* improve edit
* fix insertion
* dont use fingerprint
* now use main repo
* add port
* show local ip
* fix typo
* show port SSL
* Update bonus.lndg.sh (#3725)
* Update bonus.lndg.sh
Changes version to v1.6.0.
Fixes update menu bug.
Cleans up code a bit (removes tabs and changes to spaces to match raspiblitz formats).
* Update bonus.lndg.sh
Cleaned up code, added requirements.txt install to updates (needed for this update, may be needed in future).
* #3725 update lndg version in CHANGES
* #3692 update lnd to v0.16.0-beta (#3732)
* update SD CARD base image info
* Clenaup CHANGES info
* RTL install fix (#3739)
* c-lightning-REST update to 0.10.2, fmt
* rtl: npm insatll with --legacy-peer-deps
* purge c-lightning-REST as well with RTL
* jam update to v0.1.5 (#3736)
* 3733 CLN GRPC > JRPC (#3741)
* change exit code
* change to cln_jrpc
* deactivate the cln_grpc settings
* set v1.9.0rc3 version
---------
Co-authored-by: openoms <oms@tuta.io>
Co-authored-by: Metallicc <72348+metallicc@users.noreply.github.com>
Co-authored-by: openoms <43343391+openoms@users.noreply.github.com>
Co-authored-by: DJ Booth <djbooth007@gmail.com>
Co-authored-by: Yuck Fou <115867254+YuckFouBTC@users.noreply.github.com>
Co-authored-by: dni ⚡ <office@dnilabs.com>
Co-authored-by: PatrickScheich <50054697+PatrickScheich@users.noreply.github.com>
Co-authored-by: Patrick Scheich <patrick.scheich@syscovery.de>
Co-authored-by: allyourbankarebelongtous <100060902+allyourbankarebelongtous@users.noreply.github.com>
2023-04-08 23:10:01 +02:00
echo " scp -r ./cl-rescue-*.tar.gz ${ defaultUploadUser } @ ${ localip } : ${ defaultUploadPath } / "
2021-12-19 18:35:27 +00:00
echo
2021-08-04 00:18:30 +02:00
echo " Use ${ passwordInfo } to authenticate file transfer. "
echo "PRESS ENTER when upload is done"
read key
# check upload (will return filename or error)
2021-09-26 10:30:09 +01:00
source <( sudo /home/admin/config.scripts/blitz.upload.sh check-upload cl-rescue)
2021-08-04 00:18:30 +02:00
if [ " ${ filename } " != "" ] ; then
echo " OK - File found: ${ filename } "
echo "PRESS ENTER to continue."
read key
elif [ " ${ error } " = = "not-found" ] ; then
2022-07-18 21:07:14 +01:00
echo "# WARNING #"
2021-08-04 00:18:30 +02:00
echo " There was no upload found in ${ defaultUploadPath } "
echo "PRESS ENTER to continue & retry ... or 'x'+ ENTER to cancel"
read keyRetry
elif [ " ${ error } " = = "multiple" ] ; then
2022-07-18 21:07:14 +01:00
echo "# WARNING #"
2021-09-26 10:30:09 +01:00
echo " There are multiple cl-rescue files in directory ${ defaultUploadPath } "
2021-08-04 00:18:30 +02:00
echo "Make sure you upload only one tar.gz-file and start again."
echo "PRESS ENTER to continue & retry ... or 'x'+ ENTER to cancel"
read keyRetry
elif [ " ${ error } " = = "invalid" ] ; then
2022-07-18 21:07:14 +01:00
echo "# WARNING #"
2021-08-04 00:18:30 +02:00
echo "The file uploaded is not a valid (complete upload failed or not correct file)."
echo "PRESS ENTER to continue & retry ... or 'x'+ ENTER to cancel"
read keyRetry
else
# create no result file and exit
2022-07-18 21:07:14 +01:00
echo "# WARNING # Unknown State (report to devs)"
2021-08-04 00:18:30 +02:00
exit 1
fi
if [ " ${ keyRetry } " = = "x" ] || [ " ${ keyRetry } " = = "X" ] || [ " ${ keyRetry } " = = "'x'" ] ; then
# create no result file and exit
echo "# USER CANCEL"
exit 1
fi
done
2022-02-09 11:48:25 +00:00
# in setup scenario the final import is happening during provision
2021-08-04 00:18:30 +02:00
if [ " ${ scenario } " = = "setup" ] ; then
2021-09-26 10:30:09 +01:00
# just add clrescue filename to give file
2021-08-04 00:18:30 +02:00
echo " # result in: ${ RESULTFILE } (remember to make clean delete once processed) "
2021-09-26 10:30:09 +01:00
echo " clrescue=' ${ filename } ' " >> $RESULTFILE
2021-08-04 00:18:30 +02:00
exit 0
fi
2021-12-23 17:21:36 +00:00
# in production now start restoring CL data based on file
2021-08-04 00:18:30 +02:00
source /mnt/hdd/raspiblitz.conf
# ask security question before deleting old wallet
2022-07-27 08:29:16 +02:00
echo "WARNING: This will delete/overwrite the Core Lightning state/funds of this RaspiBlitz."
2021-08-04 00:18:30 +02:00
echo
echo "Write the word 'override' and press ENTER to CONTINUE:"
read securityInput
if [ " ${ securityInput } " != "override" ] && [ " ${ securityInput } " != "'override'" ] ; then
2022-01-25 12:07:11 +01:00
echo
echo "CANCELED import of uploaded rescue file"
exit 1
2021-08-04 00:18:30 +02:00
fi
echo
# run import process
2021-09-26 10:30:09 +01:00
echo "OK deleting old CL data & restoring imported rescue file ..."
source <( sudo /home/admin/config.scripts/cl.backup.sh cl-import ${ filename } )
2021-08-04 00:18:30 +02:00
2021-09-26 10:30:09 +01:00
# TODO: check if update of CL is needed (see detailes in cl-import) for edge case
2021-08-04 00:18:30 +02:00
# turn off auto-unlock if activated because password c might now change
2021-09-26 10:30:09 +01:00
/home/admin/config.scripts/cl.hsmtool.sh autounlock-off
2021-09-02 19:49:23 +01:00
# detect if the imported hsm_secret is encrypted
# use the variables for the default network
2021-09-26 10:30:09 +01:00
source <( /home/admin/config.scripts/network.aliases.sh getvars cl)
2021-09-02 19:49:23 +01:00
hsmSecretPath = " /home/bitcoin/.lightning/ ${ CLNETWORK } /hsm_secret "
# check if encrypted
trap 'rm -f "$output"' EXIT
output = $( mktemp -p /dev/shm/)
2021-09-12 17:59:44 +01:00
echo "test" | sudo -u bitcoin lightning-hsmtool decrypt " $hsmSecretPath " \
2> " $output "
2021-09-02 19:49:23 +01:00
if [ " $( grep -c "hsm_secret is not encrypted" < " $output " ) " -gt 0 ] ; then
echo "# The hsm_secret is not encrypted"
echo "# Record in raspiblitz.conf"
2021-12-14 23:34:35 +01:00
/home/admin/config.scripts/blitz.conf.sh set ${ netprefix } clEncryptedHSM "off"
2021-09-02 19:49:23 +01:00
else
cat $output
2022-12-07 23:29:00 +00:00
echo " # Starting cl.hsmtool.sh unlock ${ CHAIN } "
/home/admin/config.scripts/cl.hsmtool.sh unlock ${ CHAIN }
2021-09-02 19:49:23 +01:00
fi
2021-09-08 09:02:02 +01:00
2021-09-16 22:15:54 +01:00
# set the lightningd service file on each active network
2021-09-26 10:30:09 +01:00
# init backup plugin, restart cl
if [ " ${ cl } " = = "on" ] || [ " ${ cl } " = = "1" ] ; then
/home/admin/config.scripts/cl.install-service.sh mainnet
/home/admin/config.scripts/cl-plugin.backup.sh on mainnet
2021-09-16 22:15:54 +01:00
fi
2021-09-26 10:30:09 +01:00
if [ " ${ tcl } " = = "on" ] || [ " ${ tcl } " = = "1" ] ; then
/home/admin/config.scripts/cl.install-service.sh testnet
/home/admin/config.scripts/cl-plugin.backup.sh on testnet
2021-09-16 22:15:54 +01:00
fi
2021-09-26 10:30:09 +01:00
if [ " ${ scl } " = = "on" ] || [ " ${ scl } " = = "1" ] ; then
/home/admin/config.scripts/cl.install-service.sh signet
/home/admin/config.scripts/cl-plugin.backup.sh on signet
2021-09-16 22:15:54 +01:00
fi
# give final info
2021-09-02 19:49:23 +01:00
echo
echo "# DONE - lightningd is now starting"
2021-09-26 10:30:09 +01:00
echo "# Check that CL is starting up correctly and your old channels & funds are restored."
2021-09-02 19:49:23 +01:00
echo "# Take into account that some channels might have been force closed in the meanwhile."
echo
2021-08-04 00:18:30 +02:00
exit 0
fi
####################################
# SEED WORDS - GUI PARTS
####################################
if [ ${ mode } = "seed-export-gui" ] ; then
# use text snippet for testing:
#
2022-01-25 12:07:11 +01:00
# 2nd PARAMETER: cl seed data
2021-08-04 00:18:30 +02:00
seedwords6x4 = $2
if [ " ${ seedwords6x4 } " = = "" ] ; then
echo "error='missing parameter'"
exit 1
fi
ack = 0
while [ ${ ack } -eq 0 ]
do
2022-07-27 08:37:36 +02:00
whiptail --title "IMPORTANT SEED WORDS - PLEASE WRITE DOWN" --msgbox " Created a new Core Lightning wallet. Store these numbered 24 words in a safe location:\n\n ${ seedwords6x4 } " 13 76
2021-08-04 00:18:30 +02:00
whiptail --title "Please Confirm" --yes-button "Show Again" --no-button "CONTINUE" --yesno " Are you sure that you wrote down the word list?" 8 55
if [ $? -eq 1 ] ; then
ack = 1
fi
done
2022-01-25 12:07:11 +01:00
exit 0
2021-08-04 00:18:30 +02:00
fi
# Results will be stored on memory cache:
# /var/cache/raspiblitz/seed-import.results
if [ ${ mode } = "seed-import-gui" ] ; then
# fake seed 24 words for testing input:
# eins zwei polizei drei vier great idea fünf sechs alte keks sieben auch gute nacht ja ja ja was ist los was ist das
# scenario setup needs a 3rd parameter - the RESULTFILE to store results in
RESULTFILE = $2
if [ " ${ RESULTFILE } " = = "" ] ; then
echo "error='missing parameter'"
exit 1
fi
# prepare seed result file
sudo rm /var/cache/raspiblitz/seed-import.results 2>/dev/null
sudo touch /var/cache/raspiblitz/seed-import.results
sudo chown admin:admin /var/cache/raspiblitz/seed-import.results
# input loop for seed words
wordsCorrect = 0
while [ ${ wordsCorrect } -eq 0 ]
do
# prepare temp file
sudo rm /var/cache/raspiblitz/.seed.tmp 2>/dev/null
sudo touch /var/cache/raspiblitz/.seed.tmp
sudo chown admin:admin /var/cache/raspiblitz/.seed.tmp
# dialog to enter
2022-07-27 08:37:36 +02:00
dialog --backtitle "RaspiBlitz - Recover from Core Lightning seed" --inputbox "Please enter/paste the SEED WORD LIST:\n(just the words, seperated by spaces, in correct order as numbered)" 9 78 2>/var/cache/raspiblitz/.seed.tmp
2021-08-04 00:18:30 +02:00
wordstring = $( cat /var/cache/raspiblitz/.seed.tmp | sed 's/[^a-zA-Z0-9 ]//g' )
sudo shred -u /var/cache/raspiblitz/.seed.tmp 2>/dev/null
echo "processing ..."
# check correct number of words
wordcount = $( echo " ${ wordstring } " | wc -w)
if [ ${ wordcount } -eq 24 ] ; then
# check if words are valid seed
source <( python /home/admin/config.scripts/blitz.mnemonic.py test " ${ wordstring } " )
if [ " ${ valid } " = = "0" ] ; then
whiptail --title " WARNING " --yes-button "Try Again" --no-button "Cancel" --yesno "
The word list has 24 words BUT its not a
valid seed word list by our test.
Please check for typos.
" 12 52
if [ $? -eq 1 ] ; then
clear
echo " # CANCEL empty results in: ${ RESULTFILE } "
exit 1
fi
else
echo "OK - 24 words"
wordsCorrect = 1
fi
else
whiptail --title " WARNING " \
--yes-button "Try Again" \
--no-button "Cancel" \
--yesno "
The word list has ${ wordcount } words. But it must be 24.
Please check your list and try again.
Best is to write words in external editor
and then copy and paste them into dialog.
2022-01-17 09:57:27 +00:00
The word list should look like this:
wordone wordtwo wordthree ...
2021-08-04 00:18:30 +02:00
" 16 52
if [ $? -eq 1 ] ; then
clear
echo " # CANCEL empty results in: ${ RESULTFILE } "
exit 1
fi
fi
done
2021-09-26 10:30:09 +01:00
# dont ask for password D (seed password) because raspiblitz never had that option for cl
2021-08-04 00:18:30 +02:00
passwordD = ""
# writing result file data
clear
echo " # result in: ${ RESULTFILE } (remember to make clean delete once processed) "
echo " seedWords=' ${ wordstring } ' " >> $RESULTFILE
echo " seedPassword=' ${ passwordD } ' " >> $RESULTFILE
exit 0
fi
echo "error='unknown parameter'"
exit 1