mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2024-11-20 02:09:15 +01:00
seperate gui & process lnd backup
This commit is contained in:
parent
30b1cf804f
commit
fcc1dae6ba
4
FAQ.md
4
FAQ.md
@ -234,7 +234,7 @@ If you still can SSH in and HDD is readable, we can try to rescue/export your LN
|
||||
To rescue/export your Lightning data from a RaspiBlitz (since v1.1):
|
||||
|
||||
* SSH into your RaspiBlitz and EXIT to terminal from the menu.
|
||||
* then run: `/home/admin/config.scripts/lnd.rescue.sh backup`
|
||||
* then run: `/home/admin/config.scripts/lnd.backup.sh lnd-export-gui`
|
||||
* follow the instructions of the script.
|
||||
|
||||
This will create a lnd-rescue file (ends on gz.tar) that contains all the data from the LND. The script offers you a command to transfer the lnd-rescue file to your laptop. If the transfer was successful you can now setup a fresh RaspiBlitz. Do all the setup until you have a clean new Lightning node running - just without any funding or channels.
|
||||
@ -242,7 +242,7 @@ This will create a lnd-rescue file (ends on gz.tar) that contains all the data f
|
||||
Then to restore your old LND data and to recover your funds and channels:
|
||||
|
||||
* SSH into your new RaspiBlitz and EXIT to terminal from the menu.
|
||||
* then run: `/home/admin/config.scripts/lnd.rescue.sh restore`
|
||||
* then run: `/home/admin/config.scripts/lnd.backup.sh lnd-import-gui`
|
||||
* follow the instructions of the script.
|
||||
|
||||
This script will offer you a way to transfer the lnd-rescue file from your laptop to the new RaspiBlitz and will restore the old data. LND then gets restarted for you, and after some time it should show you the status screen again with your old funds and channels.
|
||||
|
@ -47,13 +47,13 @@ if [ "${migrationOS}" == "raspiblitz" ]; then
|
||||
echo "migrationOS='${migrationOS}'" >> $SETUPFILE
|
||||
echo "migrationVersion='${migrationVersion}'" >> $SETUPFILE
|
||||
|
||||
# get defaultZipPath, localIP, etc
|
||||
# get defaultUploadPath, localIP, etc
|
||||
source <(sudo /home/admin/config.scripts/blitz.migration.sh status)
|
||||
|
||||
# make sure that temp directory exists, is clear and can be written by user bitcoin
|
||||
sudo mkdir -p ${defaultZipPath} 2>/dev/null
|
||||
sudo mkdir -p ${defaultUploadPath} 2>/dev/null
|
||||
sudo rm /mnt/hdd/temp/migration/* 2>/dev/null
|
||||
sudo chown -R bitcoin:bitcoin ${defaultZipPath} 2>/dev/null
|
||||
sudo chown -R bitcoin:bitcoin ${defaultUploadPath} 2>/dev/null
|
||||
|
||||
# scp upload info
|
||||
clear
|
||||
@ -67,17 +67,17 @@ if [ "${migrationOS}" == "raspiblitz" ]; then
|
||||
echo "ON YOUR LAPTOP open a new terminal and change into"
|
||||
echo "the directory where your migration file is and"
|
||||
echo "COPY, PASTE AND EXECUTE THE FOLLOWING COMMAND:"
|
||||
echo "scp -r ./raspiblitz-*.tar.gz bitcoin@${localip}:${defaultZipPath}"
|
||||
echo "scp -r ./raspiblitz-*.tar.gz bitcoin@${localip}:${defaultUploadPath}"
|
||||
echo ""
|
||||
echo "Use password 'raspiblitz' to authenticate file transfer."
|
||||
echo "PRESS ENTER when upload is done."
|
||||
read key
|
||||
|
||||
countZips=$(sudo ls ${defaultZipPath}/raspiblitz-*.tar.gz 2>/dev/null | grep -c 'raspiblitz-')
|
||||
countZips=$(sudo ls ${defaultUploadPath}/raspiblitz-*.tar.gz 2>/dev/null | grep -c 'raspiblitz-')
|
||||
|
||||
# in case no upload found
|
||||
if [ ${countZips} -eq 0 ]; then
|
||||
echo "FAIL: Was not able to detect uploaded file in ${defaultZipPath}"
|
||||
echo "FAIL: Was not able to detect uploaded file in ${defaultUploadPath}"
|
||||
echo "Shutting down ... please make a fresh sd card & try again."
|
||||
sleep 3
|
||||
echo "shutdown=1" >> $SETUPFILE
|
||||
@ -86,7 +86,7 @@ if [ "${migrationOS}" == "raspiblitz" ]; then
|
||||
|
||||
# in case of multiple files
|
||||
if [ ${countZips} -gt 1 ]; then
|
||||
echo "# FAIL: Multiple possible files detected in ${defaultZipPath}"
|
||||
echo "# FAIL: Multiple possible files detected in ${defaultUploadPath}"
|
||||
echo "Shutting down ... please make a fresh sd card & try again."
|
||||
sleep 3
|
||||
echo "shutdown=1" >> $SETUPFILE
|
||||
@ -95,7 +95,7 @@ if [ "${migrationOS}" == "raspiblitz" ]; then
|
||||
|
||||
# further checks and unpacking will be done when migration is processed (not part of dialog)
|
||||
echo "OK: Migration data was imported - will process after password reset"
|
||||
echo "migrationFile='${defaultZipPath}'" >> $SETUPFILE
|
||||
echo "migrationFile='${defaultUploadPath}'" >> $SETUPFILE
|
||||
sleep 4
|
||||
|
||||
# user needs to reset password A
|
||||
|
@ -113,37 +113,56 @@ if [ "${CHOICE}" == "NEW" ]; then
|
||||
|
||||
elif [ "${CHOICE}" == "OLD" ]; then
|
||||
|
||||
# get more details what kind of old lightning wallet user has
|
||||
OPTIONS=()
|
||||
OPTIONS+=(LNDRESCUE "LND tar.gz-Backupfile (BEST)")
|
||||
OPTIONS+=(SEED+SCB "Seed & channel.backup file (OK)")
|
||||
OPTIONS+=(ONLYSEED "Only Seed Word List (FALLBACK)")
|
||||
CHOICE=$(dialog --backtitle "RaspiBlitz" --clear --title "RECOVER LND DATA & WALLET" --menu "Data you have to recover from?" 11 60 6 "${OPTIONS[@]}" 2>&1 >/dev/tty)
|
||||
CHOICE=""
|
||||
while [ "${CHOICESUB}" == "" ]
|
||||
do
|
||||
|
||||
if [ "${CHOICE}" == "LNDRESCUE" ]; then
|
||||
# get more details what kind of old lightning wallet user has
|
||||
OPTIONS=()
|
||||
OPTIONS+=(LNDRESCUE "LND tar.gz-Backupfile (BEST)")
|
||||
OPTIONS+=(SEED+SCB "Seed & channel.backup file (OK)")
|
||||
OPTIONS+=(ONLYSEED "Only Seed Word List (FALLBACK)")
|
||||
CHOICESUB=$(dialog --backtitle "RaspiBlitz" --clear --title "RECOVER LND DATA & WALLET" --menu "Data you have to recover from?" 11 60 6 "${OPTIONS[@]}" 2>&1 >/dev/tty)
|
||||
|
||||
# just activate LND rescue upload
|
||||
uploadLNDRESCUE=1
|
||||
if [ "${CHOICESUB}" == "LNDRESCUE" ]; then
|
||||
|
||||
# dont set password c anymore later on
|
||||
setPasswordC=0
|
||||
# just activate LND rescue upload
|
||||
uploadLNDRESCUE=1
|
||||
|
||||
elif [ "${CHOICE}" == "SEED+SCB" ]; then
|
||||
# dont set password c anymore later on
|
||||
setPasswordC=0
|
||||
|
||||
# activate SEED input & SCB upload
|
||||
enterSEED=1
|
||||
uploadSCB=1
|
||||
elif [ "${CHOICESUB}" == "SEED+SCB" ]; then
|
||||
|
||||
elif [ "${CHOICE}" == "ONLYSEED" ]; then
|
||||
# activate SEED input & SCB upload
|
||||
enterSEED=1
|
||||
uploadSCB=1
|
||||
|
||||
# activate SEED input & SCB upload
|
||||
enterSEED=1
|
||||
elif [ "${CHOICESUB}" == "ONLYSEED" ]; then
|
||||
|
||||
else
|
||||
echo "# you selected cancel - exited to terminal"
|
||||
echo "# use command 'restart' to reboot & start again"
|
||||
exit 1
|
||||
fi
|
||||
# let people know about the difference between SEED & SEED+SCB
|
||||
whiptail --title "IMPORTANT INFO" --yes-button "JUST SEED" --no-button "Go Back" --yesno "
|
||||
Using JUST SEED WORDS will only recover your on-chain funds.
|
||||
To also try to recover the open channel funds you need the
|
||||
channel.backup file (since RaspiBlitz v1.2 / LND 0.6-beta)
|
||||
or having a complete LND rescue-backup from your old node.
|
||||
" 11 65
|
||||
|
||||
if [ $? -eq 1 ]; then
|
||||
# when user wants to go back
|
||||
CHOICESUB=""
|
||||
else
|
||||
# activate SEED input & SCB upload
|
||||
enterSEED=1
|
||||
fi
|
||||
|
||||
else
|
||||
echo "# you selected cancel - exited to terminal"
|
||||
echo "# use command 'restart' to reboot & start again"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
else
|
||||
echo "# you selected cancel - exited to terminal"
|
||||
@ -153,11 +172,10 @@ fi
|
||||
|
||||
# UPLOAD LND RESCUE FILE dialog (if activated by dialogs above)
|
||||
if [ ${uploadLNDRESCUE} -eq 1 ]; then
|
||||
echo "TODO: UPLOAD LND RESCUE FILE"
|
||||
/home/admin/config.scripts/lnd.backup.sh lnd-import-gui setup $SETUPFILE
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# INPUT LIGHTNING SEED dialog (if activated by dialogs above)
|
||||
if [ ${enterSEED} -eq 1 ]; then
|
||||
echo "TODO: INPUT LIGHTNING SEED"
|
||||
@ -166,8 +184,7 @@ fi
|
||||
|
||||
# UPLOAD STATIC CHANNEL BACKUP FILE dialog (if activated by dialogs above)
|
||||
if [ ${uploadSCB} -eq 1 ]; then
|
||||
echo "TODO: UPLOAD STATIC CHANNEL BACKUP FILE"
|
||||
exit 1
|
||||
/home/admin/config.scripts/lnd.backup.sh scb-import-gui setup $SETUPFILE
|
||||
fi
|
||||
|
||||
###################
|
||||
|
@ -454,7 +454,6 @@ case $CHOICE in
|
||||
if [ "$?" = "1" ]; then
|
||||
echo
|
||||
echo "# clean and unmount for next try"
|
||||
sudo rm -f ${defaultZipPath}/raspiblitz-*.tar.gz 2>/dev/null
|
||||
sudo umount /mnt/hdd 2>/dev/null
|
||||
sudo umount /mnt/storage 2>/dev/null
|
||||
sudo umount /mnt/temp 2>/dev/null
|
||||
|
@ -33,7 +33,7 @@ elif [ "${CHOICE}" = "REINDEX" ]; then
|
||||
sudo /home/admin/config.scripts/network.reindex.sh
|
||||
|
||||
elif [ "${CHOICE}" = "BACKUP" ]; then
|
||||
sudo /home/admin/config.scripts/lnd.rescue.sh backup
|
||||
sudo /home/admin/config.scripts/lnd.backup.sh lnd-export-gui
|
||||
echo "PRESS ENTER to continue."
|
||||
read key
|
||||
|
||||
|
@ -20,7 +20,7 @@ Download LND Data Backup now?
|
||||
echo "*************************************"
|
||||
echo "please wait .."
|
||||
sleep 2
|
||||
/home/admin/config.scripts/lnd.rescue.sh backup
|
||||
/home/admin/config.scripts/lnd.backup.sh lnd-export-gui
|
||||
echo
|
||||
echo "PRESS ENTER to continue once you are done downloading."
|
||||
read key
|
||||
@ -31,7 +31,7 @@ Download LND Data Backup now?
|
||||
echo "*************************************"
|
||||
echo "please wait .."
|
||||
sleep 2
|
||||
/home/admin/config.scripts/lnd.rescue.sh backup no-download
|
||||
/home/admin/config.scripts/lnd.backup.sh lnd-export
|
||||
fi
|
||||
}
|
||||
|
||||
@ -189,7 +189,7 @@ case $CHOICE in
|
||||
read key
|
||||
;;
|
||||
BACKUP-LND)
|
||||
sudo /home/admin/config.scripts/lnd.rescue.sh backup
|
||||
sudo /home/admin/config.scripts/lnd.backup.sh lnd-export-gui
|
||||
echo
|
||||
echo "Press ENTER when your backup download is done to shutdown."
|
||||
read key
|
||||
|
@ -38,7 +38,7 @@ Do you want to download LND Data Backup now?
|
||||
echo "*************************************"
|
||||
echo "please wait .."
|
||||
sleep 2
|
||||
/home/admin/config.scripts/lnd.rescue.sh backup
|
||||
/home/admin/config.scripts/lnd.backup.sh lnd-export-gui
|
||||
echo
|
||||
echo "PRESS ENTER to continue once you're done downloading."
|
||||
read key
|
||||
@ -49,7 +49,7 @@ Do you want to download LND Data Backup now?
|
||||
echo "*************************************"
|
||||
echo "please wait .."
|
||||
sleep 2
|
||||
/home/admin/config.scripts/lnd.rescue.sh backup no-download
|
||||
/home/admin/config.scripts/lnd.backup.sh lnd-export
|
||||
fi
|
||||
|
||||
whiptail --title "READY TO UPDATE?" --yes-button "START UPDATE" --no-button "Cancel" --yesno "If you start the update: The RaspiBlitz will power down.
|
||||
|
@ -111,8 +111,9 @@ if [ ${action} = "check-upload" ]; then
|
||||
|
||||
fi
|
||||
|
||||
# ok looks good - return filename
|
||||
# ok looks good - return filename & more info
|
||||
echo "filename=${filename}"
|
||||
echo "bytesize=${byteSize}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
547
home.admin/config.scripts/lnd.backup.sh
Executable file
547
home.admin/config.scripts/lnd.backup.sh
Executable file
@ -0,0 +1,547 @@
|
||||
#!/bin/bash
|
||||
|
||||
# command info
|
||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# LND RESCUE FILE (tar.gz of complete lnd directory)"
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# lnd.backup.sh lnd-export"
|
||||
echo "# lnd.backup.sh lnd-export-gui"
|
||||
echo "# lnd.backup.sh lnd-import [file]"
|
||||
echo "# lnd.backup.sh lnd-import-gui [setup|production]"
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# STATIC CHANNEL BACKUP"
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# lnd.backup.sh scb-export"
|
||||
echo "# lnd.backup.sh scb-export-gui"
|
||||
echo "# lnd.backup.sh scb-import [file]"
|
||||
echo "# lnd.backup.sh scb-import-gui [setup|production]"
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# SEED WORDS"
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# lnd.backup.sh seed-export-gui [lndseeddata]"
|
||||
echo "# lnd.backup.sh seed-import-gui"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1st PRAMETER action
|
||||
mode="$1"
|
||||
|
||||
################################
|
||||
# LND RESCUE FILE - EXPORT
|
||||
################################
|
||||
|
||||
if [ ${mode} = "lnd-export" ]; then
|
||||
|
||||
echo "# *** LND.RESCUE --> BACKUP"
|
||||
downloadPath="/home/admin"
|
||||
fileowner="admin"
|
||||
|
||||
# stop LND
|
||||
echo "# Stopping lnd..."
|
||||
sudo systemctl stop lnd
|
||||
sleep 5
|
||||
echo "# OK"
|
||||
echo
|
||||
|
||||
# add lnd version info into lnd dir (to detect needed updates later)
|
||||
lndVersion=$(sudo -u bitcoin lncli getinfo | jq -r ".version" | cut -d ' ' -f1)
|
||||
sudo rm /mnt/hdd/lnd/version.info 2>/dev/null
|
||||
echo "${lndVersion}" > /home/admin/lnd.version.info
|
||||
sudo mv /home/admin/lnd.version.info /mnt/hdd/lnd/version.info
|
||||
sudo chown bitcoin:bitcoin /mnt/hdd/lnd/version.info
|
||||
|
||||
# zip it
|
||||
sudo tar -zcvf ${downloadPath}/lnd-rescue.tar.gz /mnt/hdd/lnd 1>&2
|
||||
sudo chown ${fileowner}:${fileowner} ${downloadPath}/lnd-rescue.tar.gz 1>&2
|
||||
|
||||
# delete old backups
|
||||
rm ${downloadPath}/lnd-rescue-*.tar.gz 2>/dev/null 1>/dev/null
|
||||
|
||||
# name with md5 checksum
|
||||
md5checksum=$(md5sum ${downloadPath}/lnd-rescue.tar.gz | head -n1 | cut -d " " -f1)
|
||||
mv ${downloadPath}/lnd-rescue.tar.gz ${downloadPath}/lnd-rescue-${md5checksum}.tar.gz 1>&2
|
||||
byteSize=$(ls -l ${downloadPath}/lnd-rescue-${md5checksum}.tar.gz | awk '{print $5}')
|
||||
|
||||
# check file size
|
||||
if [ ${byteSize} -lt 100 ]; then
|
||||
echo "error='backup is empty'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# output result data
|
||||
echo "# lnd service is stopped for security"
|
||||
echo "filename='${downloadPath}/lnd-rescue-${md5checksum}.tar.gz'"
|
||||
echo "fileowner='${fileowner}'"
|
||||
echo "size=${byteSize}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ${mode} = "lnd-export-gui" ]; then
|
||||
|
||||
# create lnd rescue file
|
||||
source <(/home/admin/config.scripts/lnd.backup.sh lnd-export)
|
||||
if [ "${error}" != "" ]; then
|
||||
echo "error='${error}'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# get local ip info
|
||||
source <(/home/admin/config.scripts/internet.sh status local)
|
||||
|
||||
# offer SCP for download
|
||||
clear
|
||||
echo
|
||||
echo "****************************"
|
||||
echo "* DOWNLOAD THE RESCUE FILE *"
|
||||
echo "****************************"
|
||||
echo
|
||||
echo "ON YOUR MAC & LINUX LAPTOP - RUN IN NEW TERMINAL:"
|
||||
echo "scp '${fileowner}@${localip}:${filename}' ./"
|
||||
echo "ON WINDOWS USE:"
|
||||
echo "scp ${fileowner}@${localip}:${filename} ."
|
||||
echo ""
|
||||
echo "Use password A to authenticate file transfer."
|
||||
echo "Check for correct file size after transfer: ${byteSize} 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
|
||||
|
||||
################################
|
||||
# LND RESCUE FILE - IMPORT
|
||||
################################
|
||||
|
||||
if [ ${mode} = "lnd-import" ]; then
|
||||
|
||||
# 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
|
||||
|
||||
# stop LND
|
||||
echo "# stopping lnd..."
|
||||
sudo systemctl stop lnd 1>/dev/null
|
||||
sleep 5
|
||||
|
||||
# clean DIR
|
||||
echo "# cleaning old LND data ..."
|
||||
sudo rm -r /mnt/hdd/lnd/* 1>/dev/null 2>/dev/null
|
||||
|
||||
# unpack zip
|
||||
echo "# restoring LND data from ${filename} ..."
|
||||
sudo tar -xf ${filename} -C / 1>/dev/null
|
||||
sudo chown -R bitcoin:bitcoin /mnt/hdd/lnd 1>/dev/null
|
||||
|
||||
# lnd version of LND rescue file (thats packed as extra info in the file)
|
||||
# its included since RaspiBlitz v1.7.1 /mnt/hdd/lnd/version.info
|
||||
# this can happen if someone uses the manual LND update and then uploads to an old default LND
|
||||
# if so just signal this in the output
|
||||
|
||||
echo "# DONE - lnd service is still stopped - start manually with command:"
|
||||
echo "# sudo systemctl start lnd"
|
||||
exit 0
|
||||
|
||||
fi
|
||||
|
||||
if [ ${mode} = "lnd-import-gui" ]; then
|
||||
|
||||
# get by second parameter if this call if happening during setup or production
|
||||
scenario=$2
|
||||
if [ "${scenario}" != "setup" ] && [ "${scenario}" != "production" ]; then
|
||||
echo "error='mising parameter'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# scenario setup needs a 3rd parameter - the SETUPFILE to store results in
|
||||
if [ "${scenario}" == "setup" ]; then
|
||||
SETUPFILE=$3
|
||||
if [ "${SETUPFILE}" == "" ]; then
|
||||
echo "error='mising parameter'"
|
||||
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
|
||||
echo "**************************"
|
||||
echo "* UPLOAD THE RESCUE FILE *"
|
||||
echo "**************************"
|
||||
echo "If you have a lnd-rescue backup file on your laptop you can now"
|
||||
echo "upload it and restore the your latest LND state."
|
||||
echo
|
||||
echo "CAUTION: Dont restore old LND states - risk of loosing funds!"
|
||||
echo
|
||||
echo "To make upload open a new terminal on your laptop,"
|
||||
echo "change into the directory where your lnd-rescue file is and"
|
||||
echo "COPY, PASTE AND EXECUTE THE FOLLOWING COMMAND:"
|
||||
echo "scp -r ./lnd-rescue-*.tar.gz ${defaultUploadUser}@${localip}:${defaultUploadPath}/"
|
||||
echo ""
|
||||
echo "Use ${passwordInfo} to authenticate file transfer."
|
||||
echo "PRESS ENTER when upload is done"
|
||||
read key
|
||||
|
||||
# check upload (will return filename or error)
|
||||
source <(sudo /home/admin/config.scripts/blitz.upload.sh check-upload lnd-rescue)
|
||||
if [ "${filename}" != "" ]; then
|
||||
echo "OK - File found: ${filename}"
|
||||
echo "PRESS ENTER to continue."
|
||||
read key
|
||||
elif [ "${error}" == "not-found" ]; then
|
||||
echo "!! WARNING !!"
|
||||
echo "There was no upload found in ${defaultUploadPath}"
|
||||
echo "Make sure you upload only one tar.gz-file and start again."
|
||||
echo "PRESS ENTER to continue & retry"
|
||||
read key
|
||||
elif [ "${error}" == "multiple" ]; then
|
||||
echo "!! WARNING !!"
|
||||
echo "There are multiple lnd-rescue files in directory ${defaultUploadPath}"
|
||||
echo "Make sure you upload only one tar.gz-file and start again."
|
||||
echo "PRESS ENTER to continue & retry"
|
||||
read key
|
||||
elif [ "${error}" == "invalid" ]; then
|
||||
echo "!! WARNING !!"
|
||||
echo "The file uploaded is not a valid (complete upload failed or not correct file)."
|
||||
echo "PRESS ENTER to continue & retry"
|
||||
read key
|
||||
else
|
||||
echo "!! WARNING !! Unknown State (report to devs)"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# in setup scenario the final import is happening during provison
|
||||
if [ "${scenario}" == "setup" ]; then
|
||||
# just add lndrescue filename to give file
|
||||
echo "lndrescue='${filename}'" >> $SETUPFILE
|
||||
echo ""
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# in production now start restoring LND data based on file
|
||||
source /mnt/hdd/raspiblitz.conf
|
||||
|
||||
# ask security question before deleting old wallet
|
||||
echo "WARNING: This will delete/overwrite the LND state/funds of this RaspiBlitz."
|
||||
echo
|
||||
echo "Write the word 'override' and press ENTER to CONTINUE:"
|
||||
read securityInput
|
||||
if [ "${securityInput}" != "override" ] && [ "${securityInput}" != "'override'" ]; then
|
||||
echo
|
||||
echo "CANCELED import of uploaded rescue file"
|
||||
exit 1
|
||||
fi
|
||||
echo
|
||||
|
||||
# run import process
|
||||
echo "OK deleting old LND data & restoring imported rescue file ..."
|
||||
source <(sudo /home/admin/config.scripts/lnd.backup.sh lnd-import ${filename})
|
||||
|
||||
# TODO: check if update of LND is needed (see detailes in lnd-import) for edge case
|
||||
|
||||
# turn off auto-unlock if activated because password c might now change
|
||||
if [ "${autoUnlock}" == "on" ]; then
|
||||
/home/admin/config.scripts/lnd.autounlock.sh off
|
||||
fi
|
||||
|
||||
# restarting lnd & give final info
|
||||
sudo systemctl start lnd
|
||||
echo "DONE - lnd is now restarting .. Password C is now like within your rescue file"
|
||||
echo "Check that LND is starting up correctly and your old channel & funds are restored."
|
||||
echo "Take into account that some channels might have been force closed in the meanwhile."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
####################################
|
||||
# STATIC CHANEL BACKUP FILE - EXPORT
|
||||
####################################
|
||||
|
||||
if [ ${mode} = "scb-export" ]; then
|
||||
|
||||
# get file info
|
||||
source /mnt/hdd/raspiblitz.conf
|
||||
echo "filename='/mnt/hdd/lnd/data/chain/${network}/${chain}net/channel.backup'"
|
||||
echo "fileuser='bitcoin'"
|
||||
|
||||
# localip
|
||||
source <(/home/admin/config.scripts/internet.sh status local)
|
||||
echo "localip='${localip}'"
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ${mode} = "scb-export-gui" ]; then
|
||||
|
||||
# get the scb info
|
||||
source <(sudo /home/admin/config.scripts/lnd.backup.sh scb-export)
|
||||
|
||||
# show download info
|
||||
clear
|
||||
echo "**************************************"
|
||||
echo "* DOWNLOAD STATIC CHANEL BACKUP FILE *"
|
||||
echo "**************************************"
|
||||
echo
|
||||
echo "RUN THE FOLLOWING COMMAND ON YOUR LAPTOP IN NEW TERMINAL:"
|
||||
echo "scp -r ${fileuser}@${localip}:${filename} ./"
|
||||
echo ""
|
||||
echo "Use password A to authenticate file transfer."
|
||||
echo
|
||||
echo "NOTE: Use this file when setting up a fresh RaspiBlitz by choosing"
|
||||
echo "option OLD WALLET and then SCB+SEED -> Seed & channel.backup file"
|
||||
echo "Will just recover on-chain & channel-funds, but closing all channels"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
####################################
|
||||
# STATIC CHANEL BACKUP FILE - IMPORT
|
||||
####################################
|
||||
|
||||
if [ ${mode} = "scb-import" ]; then
|
||||
|
||||
# 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
|
||||
|
||||
# place the the file at '/home/admin/channel.backup'
|
||||
sudo mv ${filename} /home/admin/channel.backup
|
||||
sudo chmod 777 /home/admin/channel.backup
|
||||
sudo chown admin:admin /home/admin/channel.backup
|
||||
echo "# OK - placed SCB file at /home/admin/channel.backup"
|
||||
|
||||
fi
|
||||
|
||||
if [ ${mode} = "scb-import-gui" ]; then
|
||||
|
||||
# get by second parameter if this call if happening during setup or production
|
||||
scenario=$2
|
||||
if [ "${scenario}" != "setup" ] && [ "${scenario}" != "production" ]; then
|
||||
echo "error='mising parameter'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# scenario setup needs a 3rd parameter - the SETUPFILE to store results in
|
||||
if [ "${scenario}" == "setup" ]; then
|
||||
SETUPFILE=$3
|
||||
if [ "${SETUPFILE}" == "" ]; then
|
||||
echo "error='mising parameter'"
|
||||
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
|
||||
echo "**********************************"
|
||||
echo "* UPLOAD THE channel.backup FILE *"
|
||||
echo "**********************************"
|
||||
echo
|
||||
echo "If you have the channel.backup file on your laptop or on"
|
||||
echo "another server you can now upload it to the RaspiBlitz."
|
||||
echo
|
||||
echo "To make upload open a new terminal and change,"
|
||||
echo "into the directory where your lnd-rescue file is and"
|
||||
echo "COPY, PASTE AND EXECUTE THE FOLLOWING COMMAND:"
|
||||
echo "scp ./*.backup ${defaultUploadUser}@${localip}:${defaultUploadPath}/"
|
||||
echo ""
|
||||
echo "Use ${passwordInfo} to authenticate file transfer."
|
||||
echo "PRESS ENTER when upload is done."
|
||||
read key
|
||||
|
||||
# check upload (will return filename or error)
|
||||
source <(sudo /home/admin/config.scripts/blitz.upload.sh check-upload scb)
|
||||
if [ "${filename}" != "" ]; then
|
||||
echo "OK - File found: ${filename}"
|
||||
echo "PRESS ENTER to continue."
|
||||
read key
|
||||
elif [ "${error}" == "not-found" ]; then
|
||||
echo "!! WARNING !!"
|
||||
echo "There was no upload found in ${defaultUploadPath}"
|
||||
echo "Make sure you upload only one tar.gz-file and start again."
|
||||
echo "PRESS ENTER to continue & retry"
|
||||
read key
|
||||
elif [ "${error}" == "multiple" ]; then
|
||||
echo "!! WARNING !!"
|
||||
echo "There are multiple lnd-rescue files in directory ${defaultUploadPath}"
|
||||
echo "Make sure you upload only one tar.gz-file and start again."
|
||||
echo "PRESS ENTER to continue & retry"
|
||||
read key
|
||||
elif [ "${error}" == "invalid" ]; then
|
||||
echo "!! WARNING !!"
|
||||
echo "The file uploaded is not a valid (complete upload failed or not correct file)."
|
||||
echo "PRESS ENTER to continue & retry"
|
||||
read key
|
||||
else
|
||||
echo "!! WARNING !! Unknown State (report to devs)"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# in setup scenario the final import is happening during provison
|
||||
if [ "${scenario}" == "setup" ]; then
|
||||
# just add staticchannelbackup filename to give file
|
||||
echo "staticchannelbackup='${filename}'" >> $SETUPFILE
|
||||
echo ""
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# run import process
|
||||
echo "OK importing channel.backup file ..."
|
||||
source <(sudo /home/admin/config.scripts/lnd.backup.sh scb-import ${filename})
|
||||
|
||||
# give final info
|
||||
echo "DONE - placed SCB file at /home/admin/channel.backup"
|
||||
echo "Reboot and login to trigger import."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
####################################
|
||||
# SEED WORDS - GUI PARTS
|
||||
####################################
|
||||
|
||||
echo "# lnd.backup.sh seed-export-gui [seedwords6x4]"
|
||||
echo "# lnd.backup.sh seed-import-gui [resultfile]"
|
||||
|
||||
if [ ${mode} = "seed-export-gui" ]; then
|
||||
|
||||
# 2nd PARAMETER: lnd seed data
|
||||
seedwords=$2
|
||||
if [ "${seedwords}" == "" ]; then
|
||||
echo "error='mising parameter'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ack=0
|
||||
while [ ${ack} -eq 0 ]
|
||||
do
|
||||
whiptail --title "IMPORTANT SEED WORDS - PLEASE WRITE DOWN" --msgbox "LND Wallet got created. Store these numbered words in a safe location:\n\n${seedwords6x4}" 12 76
|
||||
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
|
||||
|
||||
fi
|
||||
|
||||
# Results will be stored on memory cache:
|
||||
# /var/cache/raspiblitz/seed-import.results
|
||||
if [ ${mode} = "seed-import-gui" ]; then
|
||||
|
||||
# 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
|
||||
dialog --backtitle "RaspiBlitz - LND Recover" --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
|
||||
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
|
||||
echo "OK - 24 words"
|
||||
wordsCorrect=1
|
||||
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.
|
||||
|
||||
The Word list should look like this:
|
||||
wordone wordtweo wordthree ...
|
||||
|
||||
" 16 52
|
||||
|
||||
if [ $? -eq 1 ]; then
|
||||
# result file is empty on cancel
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# ask if seed was protected by password D
|
||||
passwordD=""
|
||||
dialog --title "SEED PASSWORD" --yes-button "No extra Password" --no-button "Yes" --yesno "
|
||||
Are your seed words protected by an extra password?
|
||||
|
||||
During wallet creation LND offers to set an extra password
|
||||
to protect the seed words. Most users did not set this.
|
||||
" 11 65
|
||||
if [ $? -eq 1 ]; then
|
||||
sudo rm /var/cache/raspiblitz/.pass.tmp 2>/dev/null
|
||||
sudo touch /var/cache/raspiblitz/.pass.tmp
|
||||
sudo chown admin:admin /var/cache/raspiblitz/.pass.tmp
|
||||
sudo /home/admin/config.scripts/blitz.setpassword.sh x "Enter extra Password D" /var/cache/raspiblitz/.pass.tmp empty-allowed
|
||||
passwordD=$(sudo cat /var/cache/raspiblitz/.pass.tmp)
|
||||
sudo shred -u /var/cache/raspiblitz/.pass.tmp 2>/dev/null
|
||||
fi
|
||||
|
||||
# writing result file data
|
||||
clear
|
||||
echo "# result of in mem cache: /var/cache/raspiblitz/seed-import.results"
|
||||
echo "seedwords='${wordstring}'" >> /var/cache/raspiblitz/seed-import.results
|
||||
echo "password='${passwordD}'" >> /var/cache/raspiblitz/seed-import.results
|
||||
exit 0
|
||||
|
||||
fi
|
||||
|
||||
echo "error='unknown parameter'"
|
||||
exit 1
|
@ -1,292 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
source /mnt/hdd/raspiblitz.conf
|
||||
|
||||
# command info
|
||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||
echo "# small rescue script to to backup or restore LND data"
|
||||
echo "# -> basic status:"
|
||||
echo "# lnd.rescue.sh status"
|
||||
echo "# -> backup all LND data in a tar.gz file for download:"
|
||||
echo "# lnd.rescue.sh backup [?no-download]"
|
||||
echo "# -> upload a LND data tar.gz file to replace LND data:"
|
||||
echo "# lnd.rescue.sh restore"
|
||||
echo "# -> download the LND channel.backup file from SD card:"
|
||||
echo "# lnd.rescue.sh scb-down"
|
||||
echo "# -> upload the LND channel.backup to recover wallet:"
|
||||
echo "# lnd.rescue.sh scb-up"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# get local ip
|
||||
source <(/home/admin/config.scripts/internet.sh status local)
|
||||
|
||||
defaultUploadDir="/home/admin"
|
||||
|
||||
mode="$1"
|
||||
|
||||
if [ ${mode} = "status" ]; then
|
||||
|
||||
echo "localip='${localip}'"
|
||||
echo "defaultUploadDir='${defaultUploadDir}'"
|
||||
exit 0
|
||||
|
||||
elif [ ${mode} = "backup" ]; then
|
||||
|
||||
################################
|
||||
# BACKUP
|
||||
################################
|
||||
|
||||
echo "# *** LND.RESCUE --> BACKUP"
|
||||
|
||||
# stop LND
|
||||
echo "# Stopping lnd..."
|
||||
sudo systemctl stop lnd
|
||||
sleep 5
|
||||
echo "# OK"
|
||||
echo
|
||||
|
||||
# zip it
|
||||
sudo tar -zcvf /home/admin/lnd-rescue.tar.gz /mnt/hdd/lnd 1>&2
|
||||
sudo chown admin:admin /home/admin/lnd-rescue.tar.gz 1>&2
|
||||
|
||||
# delete old backups
|
||||
rm /home/admin/lnd-rescue-*.tar.gz 2>/dev/null 1>/dev/null
|
||||
|
||||
# name with md5 checksum
|
||||
md5checksum=$(md5sum /home/admin/lnd-rescue.tar.gz | head -n1 | cut -d " " -f1)
|
||||
mv /home/admin/lnd-rescue.tar.gz /home/admin/lnd-rescue-${md5checksum}.tar.gz 1>&2
|
||||
echo "file='lnd-rescue-${md5checksum}.tar.gz'"
|
||||
echo "path='/home/admin/'"
|
||||
|
||||
byteSize=$(ls -l /home/admin/lnd-rescue-${md5checksum}.tar.gz | awk '{print $5}')
|
||||
echo "size=${byteSize}"
|
||||
|
||||
if [ ${byteSize} -lt 100 ]; then
|
||||
echo "error='backup is empty'"
|
||||
echo
|
||||
echo "# *****************************"
|
||||
echo "# * BACKUP ERROR *"
|
||||
echo "# *****************************"
|
||||
echo "# The byte size of the created rescue-file is too small (${byteSize}) - might be empty!"
|
||||
echo "# If you plan any update or recovery please stop and report this error to dev team. Thx."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# stop here in case of 'no-download' option
|
||||
if [ "${2}" == "no-download" ]; then
|
||||
echo "# No download of LND data requested."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# offer SCP for download
|
||||
clear
|
||||
echo
|
||||
echo "****************************"
|
||||
echo "* DOWNLOAD THE RESCUE FILE *"
|
||||
echo "****************************"
|
||||
echo
|
||||
echo "ON YOUR MAC & LINUX LAPTOP - RUN IN NEW TERMINAL:"
|
||||
echo "scp -r 'admin@${localip}:/home/admin/lnd-rescue-*.tar.gz' ./"
|
||||
echo "ON WINDOWS USE:"
|
||||
echo "scp -r admin@${localip}:/home/admin/lnd-rescue-*.tar.gz ."
|
||||
echo ""
|
||||
echo "Use password A to authenticate file transfer."
|
||||
echo "Check for correct file size after transfer: ${byteSize} 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."
|
||||
|
||||
elif [ ${mode} = "restore" ]; then
|
||||
|
||||
################################
|
||||
# RESTORE
|
||||
################################
|
||||
|
||||
echo "# LND.RESCUE --> RESTORE"
|
||||
echo ""
|
||||
|
||||
# delete old backups
|
||||
rm /home/admin/lnd-rescue-*.tar.gz
|
||||
|
||||
filename=""
|
||||
while [ ${#filename} -eq 0 ]
|
||||
do
|
||||
countZips=$(sudo ls /home/admin/lnd-rescue-*.tar.gz 2>/dev/null | grep -c 'lnd-rescue')
|
||||
if [ ${countZips} -lt 1 ]; then
|
||||
echo "**************************"
|
||||
echo "* UPLOAD THE RESCUE FILE *"
|
||||
echo "**************************"
|
||||
echo "If you have a lnd-rescue backup file on your laptop you can now"
|
||||
echo "upload it and restore the your latest LND state."
|
||||
echo
|
||||
echo "CAUTION: Dont restore old LND states - risk of loosing funds!"
|
||||
echo
|
||||
echo "To make upload open a new terminal on your laptop,"
|
||||
echo "change into the directory where your lnd-rescue file is and"
|
||||
echo "COPY, PASTE AND EXECUTE THE FOLLOWING COMMAND:"
|
||||
echo "scp -r ./lnd-rescue-*.tar.gz admin@${localip}:/home/admin/"
|
||||
echo ""
|
||||
echo "Use password A to authenticate file transfer."
|
||||
echo "PRESS ENTER when upload is done."
|
||||
fi
|
||||
if [ ${countZips} -gt 1 ]; then
|
||||
echo "!! WARNING !!"
|
||||
echo "There are multiple lnd-rescue files in directory /home/admin."
|
||||
echo "Make sure you upload only one tar.gz-file and start again."
|
||||
echo
|
||||
echo "PRESS ENTER to continue."
|
||||
read key
|
||||
exit 1
|
||||
fi
|
||||
if [ ${countZips} -eq 1 ]; then
|
||||
|
||||
clear
|
||||
echo
|
||||
echo "**************************"
|
||||
echo "* RESTORING BACKUP FILE *"
|
||||
echo "**************************"
|
||||
echo
|
||||
|
||||
filename=$(sudo ls /home/admin/lnd-rescue-*.tar.gz)
|
||||
echo "OK -> found file to restore: ${filename}"
|
||||
|
||||
# checksum test
|
||||
md5checksum=$(md5sum ${filename} | head -n1 | cut -d " " -f1)
|
||||
isCorrect=$(echo ${filename} | grep -c ${md5checksum})
|
||||
if [ ${isCorrect} -eq 1 ]; then
|
||||
echo "OK -> checksum looks good: ${md5checksum}"
|
||||
else
|
||||
echo "!!! FAIL -> Checksum not correct."
|
||||
echo "Maybe transfer failed? Continue at your own risk!"
|
||||
echo "It is recommended to abort and upload again!"
|
||||
fi
|
||||
|
||||
# overrride test
|
||||
oldWalletExists=$(sudo ls /mnt/hdd/lnd/data/chain/${network}/${chain}net/wallet.db 2>/dev/null | grep -c "wallet.db")
|
||||
if [ ${oldWalletExists} -gt 0 ]; then
|
||||
echo
|
||||
echo "WARNING: This will delete/overwrite the LND state/funds of this RaspiBlitz."
|
||||
fi
|
||||
echo
|
||||
echo "PRESS ENTER to start restore. Enter x & ENTER to cancel."
|
||||
fi
|
||||
read key
|
||||
if [ "${key}" == "x" ]; then
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# stop LND
|
||||
echo "Stopping lnd..."
|
||||
sudo systemctl stop lnd
|
||||
sleep 5
|
||||
echo "OK"
|
||||
echo
|
||||
|
||||
# clean DIR
|
||||
echo "Cleaning LND data ..."
|
||||
sudo rm -r /mnt/hdd/lnd/*
|
||||
echo "OK"
|
||||
echo
|
||||
|
||||
# unpack zip
|
||||
echo "Restoring LND data from ${filename} ..."
|
||||
sudo tar -xf ${filename} -C /
|
||||
sudo chown -R bitcoin:bitcoin /mnt/hdd/lnd
|
||||
echo "OK"
|
||||
echo
|
||||
|
||||
# check if LND needs update
|
||||
# (if RaspiBlitz has an optional LND version update, then install it
|
||||
# the newer LND version can always handle older data)
|
||||
echo "Checking LND version ..."
|
||||
source <(sudo -u admin /home/admin/config.scripts/lnd.update.sh info)
|
||||
if [ ${lndUpdateInstalled} -eq 0 ]; then
|
||||
echo "Installing available LND update ... (newer version can handle more wallet formats)"
|
||||
sudo -u admin /home/admin/config.scripts/lnd.update.sh verified
|
||||
else
|
||||
echo "OK"
|
||||
fi
|
||||
echo
|
||||
|
||||
# start LND
|
||||
echo "Starting lnd..."
|
||||
sudo systemctl start lnd
|
||||
echo "OK"
|
||||
echo
|
||||
|
||||
echo "DONE - please check if LND starts up correctly with restored state and funds."
|
||||
echo "Keep in mind that some channels maybe forced closed in the meanwhile."
|
||||
echo
|
||||
|
||||
elif [ ${mode} = "scb-down" ]; then
|
||||
|
||||
echo
|
||||
echo "****************************"
|
||||
echo "* DOWNLOAD THE BACKUP FILE *"
|
||||
echo "****************************"
|
||||
echo
|
||||
echo "RUN THE FOLLOWING COMMAND ON YOUR LAPTOP IN NEW TERMINAL:"
|
||||
echo "scp -r admin@${localip}:/home/admin/.lnd/data/chain/${network}/${chain}net/channel.backup ./"
|
||||
echo ""
|
||||
echo "Use password A to authenticate file transfer."
|
||||
echo
|
||||
echo "NOTE: Use this file when setting up a fresh RaspiBlitz by choosing"
|
||||
echo "option OLD WALLET and then SCB+SEED -> Seed & channel.backup file"
|
||||
echo "Will just recover on-chain & channel-funds, but closing all channels"
|
||||
|
||||
elif [ ${mode} = "scb-up" ]; then
|
||||
|
||||
gotFile=-1
|
||||
while [ ${gotFile} -lt 1 ]
|
||||
do
|
||||
|
||||
# show info
|
||||
clear
|
||||
sleep 1
|
||||
echo "**********************************"
|
||||
echo "* UPLOAD THE channel.backup FILE *"
|
||||
echo "**********************************"
|
||||
echo
|
||||
if [ ${gotFile} -eq -1 ]; then
|
||||
echo "If you have the channel.backup file on your laptop or on"
|
||||
echo "another server you can now upload it to the RaspiBlitz."
|
||||
elif [ ${gotFile} -eq 0 ]; then
|
||||
echo "NO channel.backup FOUND IN /home/admin"
|
||||
echo "Please try upload again."
|
||||
fi
|
||||
echo
|
||||
echo "To make upload open a new terminal and change,"
|
||||
echo "into the directory where your lnd-rescue file is and"
|
||||
echo "COPY, PASTE AND EXECUTE THE FOLLOWING COMMAND:"
|
||||
echo "scp ./channel.backup admin@${localip}:/home/admin/"
|
||||
echo ""
|
||||
echo "Use password A to authenticate file transfer."
|
||||
echo "PRESS ENTER when upload is done. Enter x & ENTER to cancel."
|
||||
|
||||
# wait user interaction
|
||||
echo "Please upload file. Press ENTER to try again or (x & ENTER) to cancel."
|
||||
read key
|
||||
if [ "${key}" == "x" ]; then
|
||||
# EXIT with CODE 1 --> USER CANCEL
|
||||
echo "# CANCEL upload"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# test upload
|
||||
gotFile=$(ls /home/admin/channel.backup | grep -c 'channel.backup')
|
||||
|
||||
done
|
||||
|
||||
# EXIT with CODE 1 --> FILE UPLOADED
|
||||
echo
|
||||
echo "# OK channel.backup uploaded"
|
||||
sleep 2
|
||||
exit 0
|
||||
|
||||
else
|
||||
echo "unknown parameter '${mode}' - exit"
|
||||
fi
|
Loading…
Reference in New Issue
Block a user