From 7b163d57a624bb215c2fdbef3243563586d1ff31 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Fri, 15 Feb 2019 23:19:43 +0100 Subject: [PATCH 01/30] dont delete linked directory anymore --- home.admin/50copyHDD.sh | 101 +++++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 47 deletions(-) diff --git a/home.admin/50copyHDD.sh b/home.admin/50copyHDD.sh index 5e57e69da..34a445713 100755 --- a/home.admin/50copyHDD.sh +++ b/home.admin/50copyHDD.sh @@ -17,28 +17,15 @@ if [ "${setupStep}" = "100" ]; then sudo systemctl stop bitcoind fi +# delete all IN bitcoin directory but not itself if it exists +# so that possibel link to /home/bitcoin/.bitcoin nicht beschädigt wird +sudo rm -rfv /mnt/hdd/bitcoin/* 2>/dev/null -# create bitcoin base directory and link with bitcoin user -echo "delete and create new blockchain directory ..." -sudo rm -rf /mnt/hdd/bitcoin 2>/dev/null -sudo rm -rf /home/bitcoin/.bitcoin 2>/dev/null -sudo mkdir /mnt/hdd/bitcoin -sudo chown bitcoin:bitcoin /mnt/hdd/bitcoin -sudo ln -s /mnt/hdd/bitcoin /home/bitcoin/.bitcoin - -# check setup -echo "checking setup ..." -sudo touch /home/bitcoin/.bitcoin/test.txt -createdCorerct=$(sudo ls /mnt/hdd/bitcoin/test.txt | grep -c 'test.txt') -sudo rm /home/bitcoin/.bitcoin/test.txt -if [ ${createdCorerct} -eq 0 ]; then - sudo rm -rf /mnt/hdd/bitcoin - sudo rm -rf /home/bitcoin/.bitcoin - echo "FAILED: sudo ln -s /mnt/hdd/bitcoin /home/bitcoin/.bitcoin" - echo "Press ENTER to get back to menu ..." - read key - exit 1 -fi +# make sure /mnt/hdd/bitcoin exists +sudo mkdir /mnt/hdd/bitcoin 2>/dev/null + +# allow all users write to it () +sudo chmod 777 /mnt/hdd/bitcoin clear echo "************************************************************************************" @@ -56,7 +43,7 @@ echo "blockchain data. You should see directories 'blocks', 'chainstate' & 'inde echo "Make sure the bitcoin client on that computer is stopped." echo "" echo "COPY, PASTE & EXECUTE the following command on the blockchain source computer:" -echo "sudo scp -r ./chainstate ./indexes ./testnet3 ./blocks bitcoin@${localip}:/home/bitcoin/.bitcoin" +echo "sudo scp -r ./chainstate ./indexes ./testnet3 ./blocks bitcoin@${localip}:/mnt/hdd/bitcoin" echo "" echo "This command may ask you first about the admin password of the other computer (because sudo)." echo "Then it will ask for your SSH PASSWORD A from this RaspiBlitz." @@ -100,42 +87,62 @@ if [ ${count} -lt 1500 ]; then quickCheckOK=0 fi +echo "*********************************************" +echo "QUICK CHECK RESULT" +echo "*********************************************" + # just if any data transferred .. if [ ${anyDataAtAll} -eq 1 ]; then # data was invalid - ask user to keep? if [ ${quickCheckOK} -eq 0 ]; then - echo "*********************************************" - echo "There seems to be an invalid transfer." - echo "Wait 5 secs ..." - sleep 5 - dialog --title " INVALID TRANSFER - DELETE DATA?" --yesno "Quickcheck shows the data you transferred is invalid/incomplete. This can lead further RaspiBlitz setup to get stuck in error state.\nDo you want to reset/delete data data?" 8 60 - response=$? - echo "response(${response})" - case $response in - 1) quickCheckOK=1 ;; - esac - fi - if [ ${quickCheckOK} -eq 0 ]; then - echo "Deleting invalid Data ..." - sudo rm -rf /mnt/hdd/bitcoin - sudo rm -rf /home/bitcoin/.bitcoin - sleep 2 + echo "FAIL -> DATA seems incomplete." + + else + + echo "OK -> DATA LOOKS GOOD :D" + fi else + + echo "CANCEL -> NO DATA was copied." + quickCheckOK=0 + +fi +echo "*********************************************" + +# if started after intial setup - quit here +if [ "${setupStep}" = "100" ]; then + "DONE - reboot is needed: sudo shutdown -r now" + exit 0 +fi + +# REACT ON QUICK CHECK DURING INITAL SETUP + + +if [ ${quickCheckOK} -eq 0 ]; then + + echo "*********************************************" + echo "There seems to be an invalid transfer." + + echo "Wait 5 secs ..." + sleep 5 + dialog --title " INVALID TRANSFER - DELETE DATA?" --yesno "Quickcheck shows the data you transferred is invalid/incomplete. This can lead further RaspiBlitz setup to get stuck in error state.\nDo you want to reset/delete data data?" 8 60 + response=$? + echo "response(${response})" + case $response in + 1) quickCheckOK=1 ;; + esac - echo "back to menu ..." - # when no data transferred - just delete bitcoin base dir again +fi + +if [ ${quickCheckOK} -eq 0 ]; then + echo "Deleting invalid Data ... " sudo rm -rf /mnt/hdd/bitcoin sleep 2 - fi -if [ ${setupStep} -lt 100 ]; then - # setup script will decide the next logical step - /home/admin/10setupBlitz.sh -else - "DONE - reboot is needed: sudo shutdown -r now" -fi \ No newline at end of file +# setup script will decide the next logical step +/home/admin/10setupBlitz.sh From 5ee5166070bc4e1bd00872321f5525098fee87dd Mon Sep 17 00:00:00 2001 From: rootzoll Date: Sat, 16 Feb 2019 00:07:43 +0100 Subject: [PATCH 02/30] updated FAQ --- FAQ.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index f3ca03ce7..51efc9729 100644 --- a/FAQ.md +++ b/FAQ.md @@ -71,7 +71,7 @@ If everything of the above is prepared, start the setup of the new RaspiBlitz wi Once you finished all the transferes the Raspiblitz will make a quick-check on the data - but that will not guarantee that everything in detail was OK with the transfere. Check further FAQ answeres if you get stuck or see a final sync with a value below 90%. -**If you want to replace a corrupted blockchain this way:** *Go to terminal - maybe with CTRL+c. `sudo systemctl stop bitcoind` and `sudo systemctl stop lnd` then call `/home/admin/50copyHDD.sh` use the displayed SCP commands to copy over the fresh blockchain. Press ENTER when all is copied, so that the script can quick check the data and set the correct permissions. Then make a reboot `sudo shutdown -r now`* +**If you want to replace a corrupted blockchain this way:** *Go to terminal - maybe with CTRL+c. Then call `/home/admin/50copyHDD.sh` use the displayed SCP commands to copy over the fresh blockchain. Press ENTER when all is copied, so that the script can quick check the data. Then make a reboot `sudo shutdown -r now`* ## How do I clone the Blockchain from a 2nd HDD? @@ -488,3 +488,11 @@ When you put in a sd card with a new/clean RaspiBlitz image the RaspiBlitz will But there might be cases where you want to start a totally fresh/clean RaspiBlitz from the beginning. To do so you need to delete the old data from the HDD. You can do so by formating it on another computer (for example with FAT and name it "NEW"). Or when you can run the script "/home/admin/XXcleanHD.sh -all" on the terminal. When the HDD is clean, then flash a new RaspiBlitz sd card and your setup should start fresh. + +## My blockchain data is corrupted - what can I do? + +You could try to re-index, but that can take some very long time - multiple days or even weeks. + +Another option would be to delete the old blockchain and get a new one. See for details the FAQ question: [I have the full blockchain on another computer. How do I copy it to the RaspiBlitz?](FAQ.md) + +Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md) From 6e9370a24a7911f9ae3a82f620e74a0210e097ed Mon Sep 17 00:00:00 2001 From: rootzoll Date: Sat, 16 Feb 2019 00:09:12 +0100 Subject: [PATCH 03/30] FAQ added links --- FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 51efc9729..89359d453 100644 --- a/FAQ.md +++ b/FAQ.md @@ -493,6 +493,6 @@ When the HDD is clean, then flash a new RaspiBlitz sd card and your setup should You could try to re-index, but that can take some very long time - multiple days or even weeks. -Another option would be to delete the old blockchain and get a new one. See for details the FAQ question: [I have the full blockchain on another computer. How do I copy it to the RaspiBlitz?](FAQ.md) +Another option would be to delete the old blockchain and get a new one. See for details the FAQ question: [I have the full blockchain on another computer. How do I copy it to the RaspiBlitz?](FAQ.md#i-have-the-full-blockchain-on-another-computer-how-do-i-copy-it-to-the-raspiblitz) -Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md) +Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md#how-can-i-recover-my-coins-from-a-failing-raspiblitz) From b44827681f7660b39a94679781ab851956d57491 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Sat, 16 Feb 2019 00:17:27 +0100 Subject: [PATCH 04/30] open SSH info --- FAQ.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 89359d453..27328142e 100644 --- a/FAQ.md +++ b/FAQ.md @@ -495,4 +495,4 @@ You could try to re-index, but that can take some very long time - multiple days Another option would be to delete the old blockchain and get a new one. See for details the FAQ question: [I have the full blockchain on another computer. How do I copy it to the RaspiBlitz?](FAQ.md#i-have-the-full-blockchain-on-another-computer-how-do-i-copy-it-to-the-raspiblitz) -Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md#how-can-i-recover-my-coins-from-a-failing-raspiblitz) +Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md#how-can-i-recover-my-coins-from-a-failing-raspiblitz) \ No newline at end of file diff --git a/README.md b/README.md index 900dd7c61..1285519e9 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ When everything boots up correctly, you should see the local IP address of your ![LCD0](pictures/lcd0-welcome.png) -Now open up a [terminal](https://www.youtube.com/watch?v=5XgBd6rjuDQ) and connect thru SSH with the command displayed by the RaspiBlitz: +Now open up a terminal ([OSX](https://www.youtube.com/watch?v=5XgBd6rjuDQ)/[Win10](https://www.youtube.com/watch?v=xIfzZXHaCzQ)) and connect thru SSH with the command displayed by the RaspiBlitz: `ssh admin@[YOURIP]` → use password: `raspiblitz` From 70635f5b3116fe33a0ae5d91367d8da7721cfc7f Mon Sep 17 00:00:00 2001 From: rootzoll Date: Sat, 16 Feb 2019 00:19:39 +0100 Subject: [PATCH 05/30] info on corrupted data --- home.admin/50copyHDD.sh | 4 +++- home.admin/config.scripts/network.reindex.sh | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/home.admin/50copyHDD.sh b/home.admin/50copyHDD.sh index 34a445713..5fa702888 100755 --- a/home.admin/50copyHDD.sh +++ b/home.admin/50copyHDD.sh @@ -14,7 +14,8 @@ if [ "${setupStep}" = "100" ]; then # make sure services are not running echo "stopping servcies ..." sudo systemctl stop lnd - sudo systemctl stop bitcoind + sudo systemctl stop bitcoind + sudo systemctl disable bitcoind fi # delete all IN bitcoin directory but not itself if it exists @@ -115,6 +116,7 @@ echo "*********************************************" # if started after intial setup - quit here if [ "${setupStep}" = "100" ]; then + sudo systemctl enable bitcoind "DONE - reboot is needed: sudo shutdown -r now" exit 0 fi diff --git a/home.admin/config.scripts/network.reindex.sh b/home.admin/config.scripts/network.reindex.sh index 881e75398..e1c3950cd 100755 --- a/home.admin/config.scripts/network.reindex.sh +++ b/home.admin/config.scripts/network.reindex.sh @@ -50,7 +50,9 @@ while [ ${finished} -eq 0 ] echo "REINDEXING BLOCKCHAIN" echo "*************************" date - echo "THIS CAN TAKE SOME LONG TIME" + echo "THIS CAN TAKE SOME VERY LONG TIME" + echo "See Raspiblitz FAQ: https://github.com/rootzoll/raspiblitz" + echo "On question: My blockchain data is corrupted - what can I do?" echo "If you dont see any progress after 24h keep X pressed to stop." # get blockchain sync progress From df78fd97a0c1bdf3b590ed81dfa27a7c2537c8ed Mon Sep 17 00:00:00 2001 From: rootzoll Date: Sat, 16 Feb 2019 00:39:32 +0100 Subject: [PATCH 06/30] bitcoin.conf after copyHDD --- home.admin/50copyHDD.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/home.admin/50copyHDD.sh b/home.admin/50copyHDD.sh index 5fa702888..ca847d605 100755 --- a/home.admin/50copyHDD.sh +++ b/home.admin/50copyHDD.sh @@ -15,7 +15,7 @@ if [ "${setupStep}" = "100" ]; then echo "stopping servcies ..." sudo systemctl stop lnd sudo systemctl stop bitcoind - sudo systemctl disable bitcoind + sudo systemctl disable bitcoind fi # delete all IN bitcoin directory but not itself if it exists @@ -116,7 +116,9 @@ echo "*********************************************" # if started after intial setup - quit here if [ "${setupStep}" = "100" ]; then - sudo systemctl enable bitcoind + sudo cp /home/admin/assets/bitcoin.conf /mnt/hdd/bitcoin/bitcoin.conf + sudo chown bitcoin:bitcoin /mnt/hdd/bitcoin/bitcoin.conf + sudo systemctl enable bitcoind "DONE - reboot is needed: sudo shutdown -r now" exit 0 fi From 20a63a20b945af35f723e3fb9caead526b142d64 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Sat, 16 Feb 2019 01:17:39 +0100 Subject: [PATCH 07/30] backup bitcoin.conf --- home.admin/50copyHDD.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/home.admin/50copyHDD.sh b/home.admin/50copyHDD.sh index ca847d605..873584f79 100755 --- a/home.admin/50copyHDD.sh +++ b/home.admin/50copyHDD.sh @@ -16,6 +16,7 @@ if [ "${setupStep}" = "100" ]; then sudo systemctl stop lnd sudo systemctl stop bitcoind sudo systemctl disable bitcoind + sudo cp -f /mnt/hdd/bitcoin/bitcoin.conf /home/admin/assets/bitcoin.conf fi # delete all IN bitcoin directory but not itself if it exists From 62c88062c78af3fc326abc5a75ac60fa1830f2d9 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Sat, 16 Feb 2019 11:01:53 +0100 Subject: [PATCH 08/30] repair with torrent --- home.admin/50torrentHDD.sh | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/home.admin/50torrentHDD.sh b/home.admin/50torrentHDD.sh index d95dbf4f8..1dc965bdd 100755 --- a/home.admin/50torrentHDD.sh +++ b/home.admin/50torrentHDD.sh @@ -255,12 +255,21 @@ if [ ${torrentError} -gt 0 ]; then fi +# if setup was done - remove old data +if [ "${setupStep}" = "100" ]; then + echo "stopping servcies ..." + sudo systemctl stop lnd + sudo systemctl stop ${network}d + sudo systemctl disable ${network}d + sudo cp -f /mnt/hdd/${network}/${network}.conf /home/admin/assets/${network}.conf + sudo rm -rfv /mnt/hdd/${network}/* 2>/dev/null +fi + # Download worked / just move, copy on USB2 >4h echo "" echo "*** Moving Files ***" date +%s echo "can take some minutes... please wait" - sudo mkdir /mnt/hdd/${network} 2>/dev/null sudo mv ${targetPath1}/* /mnt/hdd/${network}/ sudo cp -r ${targetPath2}/* /mnt/hdd/${network}/ @@ -268,7 +277,12 @@ sudo rm -r ${targetDir} echo "OK" date +%s -if [ ${setupStep} -lt 100 ]; then +if [ "${setupStep}" = "100" ]; then + sudo cp /home/admin/assets/${network}.conf /mnt/hdd/${network}/${network}.conf + sudo chown -R bitcoin:bitcoin /mnt/hdd/${network}/ + sudo systemctl enable ${network}d + echo "DONE - reboot needed: sudo shutdown -r now" +else # set SetupState sudo sed -i "s/^setupStep=.*/setupStep=50/g" /home/admin/raspiblitz.info # continue setup From fda7a98776430ed2faf82e9b1106c67b8f95b428 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Sat, 16 Feb 2019 23:26:59 +0100 Subject: [PATCH 09/30] added backup info --- FAQ.md | 2 +- home.admin/50copyHDD.sh | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/FAQ.md b/FAQ.md index 27328142e..ddb702d8a 100644 --- a/FAQ.md +++ b/FAQ.md @@ -121,7 +121,7 @@ Recovering the coins that you have in an active channel is a bit more complicate To really have a reliable backup, such feature needs to be part of the LND software. Almost every other solution would not be perfect. Thats why RaspiBlitz is not trying to provide a backup feature at the moment. -But you can try to backup at your own risk. All your Lightning Node data is within the `/mnt/hdd/lnd` directory. Just run a backup of that data when the lnd service is stopped. +But you can try to backup at your own risk. All your Lightning Node data is within the `/mnt/hdd/lnd` directory. Just run a backup of that data when the lnd service is stopped -> `sudo systemctl stop lnd` Then on your laptop you go with the terminal into the directory you want to store the backup in and use the following SCP command to download: `scp -r bitcoin@[LOCAL-IP-OF-RASPIBLITZ]:/mnt/hdd/lnd/ ./` use your password A ## What is this mnemonic seed word list? diff --git a/home.admin/50copyHDD.sh b/home.admin/50copyHDD.sh index 873584f79..302003fb7 100755 --- a/home.admin/50copyHDD.sh +++ b/home.admin/50copyHDD.sh @@ -55,9 +55,6 @@ echo "PRESS ENTER if transfers is done OR if you want to choose another another sleep 2 read key -# unlink bitcoin user (will created later in setup again) -sudo unlink /home/bitcoin/.bitcoin - # make quick check if data is there anyDataAtAll=0 quickCheckOK=1 @@ -120,7 +117,7 @@ if [ "${setupStep}" = "100" ]; then sudo cp /home/admin/assets/bitcoin.conf /mnt/hdd/bitcoin/bitcoin.conf sudo chown bitcoin:bitcoin /mnt/hdd/bitcoin/bitcoin.conf sudo systemctl enable bitcoind - "DONE - reboot is needed: sudo shutdown -r now" + echo "DONE - reboot is needed: sudo shutdown -r now" exit 0 fi From c9295826f044c2e055c4c762291396ceef778096 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Sun, 17 Feb 2019 00:22:42 +0100 Subject: [PATCH 10/30] more details on info --- FAQ.md | 10 +++++++++- home.admin/50torrentHDD.sh | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index ddb702d8a..d1ea40e5a 100644 --- a/FAQ.md +++ b/FAQ.md @@ -464,15 +464,23 @@ Work Nodes for the process of producing a new sd card image release: * Remove `Ubuntu LIVE` USB stick and replace with `Ubuntu AIRGAP` * PowerOn Build Laptop (press F12 for boot menu) * Cut Power of RaspiBlitz, remove sd card and connect with sd card reader to build laptop + +Old: * Open `Disks` manager, select sd card and choose `Create Disk Image` (right upper corner window) * Store image to NTFS USB stick (click to start can take a while - enter password) * Open in File Manager the NTFS USB Stick, context menu the created IMG file `compress` * Name it: `raspiblitz-vX.X-YEAR-MONTH-DAY.img.zip` -* Delete all IMG files from NTFS (just keep zips) + +New: +* open terminal - check name if sd-card writer with `df` +* `dd if=/dev/[sdcarddevice] | gzip > /media/ubuntu/NTFS/raspiblitz-vX.X-YEAR-MONTH-DAY.img.gz` + +* Delete all IMG files from NTFS (just keep zips/gzs) * Context on white space, `Open in Terminal`, run `shasum -a 256 [NEW-ZIP] > sha256.txt` * [Do future author signing here with tools from airgap build machine] * Shutdown build computer * Connect NTFS USB stick to MacOS (its just readonly) +* Check if file can be unzipped on OSX * Run tests with new image * Upload new image to Download Server * Copy SHA256-String into GutHub README and update downloadlink diff --git a/home.admin/50torrentHDD.sh b/home.admin/50torrentHDD.sh index 1dc965bdd..bc44b5beb 100755 --- a/home.admin/50torrentHDD.sh +++ b/home.admin/50torrentHDD.sh @@ -269,7 +269,7 @@ fi echo "" echo "*** Moving Files ***" date +%s -echo "can take some minutes... please wait" +echo "can take 10-60 minutes... please wait" sudo mkdir /mnt/hdd/${network} 2>/dev/null sudo mv ${targetPath1}/* /mnt/hdd/${network}/ sudo cp -r ${targetPath2}/* /mnt/hdd/${network}/ From b3d0db7ba0b1d5739f9ae8c5fdbb5a5101e39d1b Mon Sep 17 00:00:00 2001 From: jodobear <36855907+jodobear@users.noreply.github.com> Date: Sun, 17 Feb 2019 02:41:28 +0100 Subject: [PATCH 11/30] Update FAQ.md Added info on resolving blockchain data corruption. --- FAQ.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/FAQ.md b/FAQ.md index d1ea40e5a..bee9dc25c 100644 --- a/FAQ.md +++ b/FAQ.md @@ -63,13 +63,13 @@ Copying a already synced blockchain from another computer (for example your Lapt One requirement is that the blockchain is from another bitcoin-core client with version greater or equal to 0.17.1 with transaction index switched on (`txindex=1` in the `bitcoin.conf`). -But we dont copy the data via USB to the device, because the HDD needs to be formatted in EXT4 and that is usually not read/writeable by Windows or Mac computers. So I will explain a way to copy the data thru your local network. This should work from Windows, Mac, Linux and even from another already synced RaspiBlitz. +But we dont copy the data via USB to the device, because the HDD needs to be formatted in EXT4 and that is usually not read/writeable by Windows or Mac computers. So I will explain a way to copy the data through your local network. This should work from Windows, Mac, Linux and even from another already synced RaspiBlitz. Both computers (your RaspberryPi and the other computer with the full blockchain on) need to be connected to the same local network. Make sure that bitcoin is stoped on the computer containing the blockchain. If your blockchain source is another RaspiBlitz run on the terminal `sudo systemctl stop bitcoind` and then go to the directory where the blochcian data is with `cd /mnt/hdd/bitcoin` - when copy/transfer is done later reboot a RaspiBlitz source with `sudo shutdown -r now`. -If everything of the above is prepared, start the setup of the new RaspiBlitz with a fresh SD card (like explained in the README) - its OK that there is no blockchain data on your HDD yet - just follow the setup. When you get to the setup-point `Getting the Blockchain` choose the COPY option. Starting from version 1.0 of the RaspiBlitz this will give you further detailed instructions how to transfere the blockchain data onto your RaspiBlitz. In short: On your computer with the blockchain data source you will execute SCP commands, that will copy the data over your Local Network to your RaspiBlitz. +If everything of the above is prepared, start the setup of the new RaspiBlitz with a fresh SD card (like explained in the README) - its OK that there is no blockchain data on your HDD yet - just follow the setup. When you get to the setup-point `Getting the Blockchain` choose the COPY option. Starting from version 1.0 of the RaspiBlitz this will give you further detailed instructions how to transfer the blockchain data onto your RaspiBlitz. In short: On your computer with the blockchain data source you will execute SCP commands, that will copy the data over your Local Network to your RaspiBlitz. -Once you finished all the transferes the Raspiblitz will make a quick-check on the data - but that will not guarantee that everything in detail was OK with the transfere. Check further FAQ answeres if you get stuck or see a final sync with a value below 90%. +Once you finished all the transferes the Raspiblitz will make a quick-check on the data - but that will not guarantee that everything in detail was OK with the transfer. Check further FAQ answeres if you get stuck or see a final sync with a value below 90%. **If you want to replace a corrupted blockchain this way:** *Go to terminal - maybe with CTRL+c. Then call `/home/admin/50copyHDD.sh` use the displayed SCP commands to copy over the fresh blockchain. Press ENTER when all is copied, so that the script can quick check the data. Then make a reboot `sudo shutdown -r now`* @@ -501,6 +501,6 @@ When the HDD is clean, then flash a new RaspiBlitz sd card and your setup should You could try to re-index, but that can take some very long time - multiple days or even weeks. -Another option would be to delete the old blockchain and get a new one. See for details the FAQ question: [I have the full blockchain on another computer. How do I copy it to the RaspiBlitz?](FAQ.md#i-have-the-full-blockchain-on-another-computer-how-do-i-copy-it-to-the-raspiblitz) +Another option would be to delete the old blockchain and get a new one. See for details the FAQ question: [I have the full blockchain on another computer. How do I copy it to the RaspiBlitz?](FAQ.md#i-have-the-full-blockchain-on-another-computer-how-do-i-copy-it-to-the-raspiblitz). And even if you are not able to delete the data, first rename the undeletable folders and then follow the instructions. -Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md#how-can-i-recover-my-coins-from-a-failing-raspiblitz) \ No newline at end of file +Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md#how-can-i-recover-my-coins-from-a-failing-raspiblitz) From 0a85d779634f08c79dc2fe6569c0cb8cc1803094 Mon Sep 17 00:00:00 2001 From: PhoenixAdageyudi <2complacent@protonmail.com> Date: Sun, 17 Feb 2019 00:21:48 -0500 Subject: [PATCH 12/30] Update FAQ.md --- FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index d1ea40e5a..0ea913382 100644 --- a/FAQ.md +++ b/FAQ.md @@ -65,7 +65,7 @@ One requirement is that the blockchain is from another bitcoin-core client with But we dont copy the data via USB to the device, because the HDD needs to be formatted in EXT4 and that is usually not read/writeable by Windows or Mac computers. So I will explain a way to copy the data thru your local network. This should work from Windows, Mac, Linux and even from another already synced RaspiBlitz. -Both computers (your RaspberryPi and the other computer with the full blockchain on) need to be connected to the same local network. Make sure that bitcoin is stoped on the computer containing the blockchain. If your blockchain source is another RaspiBlitz run on the terminal `sudo systemctl stop bitcoind` and then go to the directory where the blochcian data is with `cd /mnt/hdd/bitcoin` - when copy/transfer is done later reboot a RaspiBlitz source with `sudo shutdown -r now`. +Both computers (your RaspberryPi and the other computer with the full blockchain on) need to be connected to the same local network. Make sure that bitcoin is stoped on the computer containing the blockchain. If your blockchain source is another RaspiBlitz run on the terminal `sudo systemctl stop bitcoind` and then go to the directory where the blockchain data is with `cd /mnt/hdd/bitcoin` - when copy/transfer is done later reboot a RaspiBlitz source with `sudo shutdown -r now`. If everything of the above is prepared, start the setup of the new RaspiBlitz with a fresh SD card (like explained in the README) - its OK that there is no blockchain data on your HDD yet - just follow the setup. When you get to the setup-point `Getting the Blockchain` choose the COPY option. Starting from version 1.0 of the RaspiBlitz this will give you further detailed instructions how to transfere the blockchain data onto your RaspiBlitz. In short: On your computer with the blockchain data source you will execute SCP commands, that will copy the data over your Local Network to your RaspiBlitz. @@ -503,4 +503,4 @@ You could try to re-index, but that can take some very long time - multiple days Another option would be to delete the old blockchain and get a new one. See for details the FAQ question: [I have the full blockchain on another computer. How do I copy it to the RaspiBlitz?](FAQ.md#i-have-the-full-blockchain-on-another-computer-how-do-i-copy-it-to-the-raspiblitz) -Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md#how-can-i-recover-my-coins-from-a-failing-raspiblitz) \ No newline at end of file +Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md#how-can-i-recover-my-coins-from-a-failing-raspiblitz) From ae5f331942c4a7e5f59c5cda2e72730e4070ee4d Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 11:27:52 +0100 Subject: [PATCH 13/30] LND backup more instructions --- FAQ.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index d1ea40e5a..2886820c7 100644 --- a/FAQ.md +++ b/FAQ.md @@ -121,7 +121,17 @@ Recovering the coins that you have in an active channel is a bit more complicate To really have a reliable backup, such feature needs to be part of the LND software. Almost every other solution would not be perfect. Thats why RaspiBlitz is not trying to provide a backup feature at the moment. -But you can try to backup at your own risk. All your Lightning Node data is within the `/mnt/hdd/lnd` directory. Just run a backup of that data when the lnd service is stopped -> `sudo systemctl stop lnd` Then on your laptop you go with the terminal into the directory you want to store the backup in and use the following SCP command to download: `scp -r bitcoin@[LOCAL-IP-OF-RASPIBLITZ]:/mnt/hdd/lnd/ ./` use your password A +But you can try to backup at your own risk. All your Lightning Node data is within the `/mnt/hdd/lnd` directory. Just run a backup of that data when the lnd service is stopped -> `sudo systemctl stop lnd` Then on your laptop you go with the terminal into the directory you want to store the backup in and use the following SCP command to download: + +`scp -r bitcoin@[LOCAL-IP-OF-RASPIBLITZ]:/mnt/hdd/lnd/ ./` use your password A + +And if you want to put a LND backup state back. Make a fresh RaspiBlitz (new sd card image and a clean HDD), set it up until its ready (you see the status screen on LCD) and then go to terminal, stop lnd service with `sudo systemctl stop lnd` delete the content of the lnd data dir with `sudo rm -rf /mnt/hdd/lnd/*`. Then on your laptop being in terminal in the same directory you did the backup in (the backuped lnd directory is listed there) run the following SCP command: + +`scp -r ./lnd/* bitcoin@[LOCAL-IP-OF-RASPIBLITZ]:/mnt/hdd/lnd/` use password A + +No run a reboot with: `sudo shutdown -r now` ... LND may need some longer rescan after reboot, but then you should see your old channels and balances. + +**Be aware that if backup is some hours/days old, channels could have been closed by the other party and it may take some time until you see funds back on-chain. If backup is somewhat older also the channel counter parties may have used your offline time to cheat you with an old state. And if your backup was not the latest state and LND is closing channels it could also been happening that you are posting an old channel state (seen as cheating) and funds of that channel get lost as punishment. So again .. this backup method can be risky, use with caution.** ## What is this mnemonic seed word list? @@ -472,8 +482,9 @@ Old: * Name it: `raspiblitz-vX.X-YEAR-MONTH-DAY.img.zip` New: -* open terminal - check name if sd-card writer with `df` -* `dd if=/dev/[sdcarddevice] | gzip > /media/ubuntu/NTFS/raspiblitz-vX.X-YEAR-MONTH-DAY.img.gz` +* Connect and open in Filemenager NTFS - context on white scace -> open terminal +* run `df`to check on sd card reader device name +* `sudo dd if=/dev/[sdcarddevice] | gzip > ./raspiblitz-vX.X-YEAR-MONTH-DAY.img.gz` * Delete all IMG files from NTFS (just keep zips/gzs) * Context on white space, `Open in Terminal`, run `shasum -a 256 [NEW-ZIP] > sha256.txt` From 123d4a81905848cd5b6dcad64223e18a9f5dab07 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 11:32:27 +0100 Subject: [PATCH 14/30] fix "no reboot" after RTL install --- home.admin/00settingsMenuServices.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/home.admin/00settingsMenuServices.sh b/home.admin/00settingsMenuServices.sh index 0f2cfd408..843f77b75 100644 --- a/home.admin/00settingsMenuServices.sh +++ b/home.admin/00settingsMenuServices.sh @@ -170,6 +170,7 @@ choice="off"; check=$(echo "${CHOICES}" | grep -c "5") if [ ${check} -eq 1 ]; then choice="on"; fi if [ "${rtlWebinterface}" != "${choice}" ]; then echo "RTL Webinterface Setting changed .." + anychange=1 sudo /home/admin/config.scripts/bonus.rtl.sh ${choice} if [ "${choice}" = "on" ]; then localip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/') From 906e2229c79adcabe2f9bc4f7ef1185d5b746b62 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 11:45:09 +0100 Subject: [PATCH 15/30] RTL version update --- home.admin/config.scripts/bonus.rtl.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home.admin/config.scripts/bonus.rtl.sh b/home.admin/config.scripts/bonus.rtl.sh index 204cb569e..26781e586 100755 --- a/home.admin/config.scripts/bonus.rtl.sh +++ b/home.admin/config.scripts/bonus.rtl.sh @@ -46,8 +46,8 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then echo "*** Get the RTL Source Code ***" git clone https://github.com/ShahanaFarooqui/RTL.git cd RTL - #git reset --hard v0.1.13-alpha - git reset --hard v0.1.14-alpha + git reset --hard v0.2.1 + #git reset --hard v0.1.14-alpha # install From 92d4395abb870277ca7d6bcaf47357604a0efc0c Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 15:56:55 +0100 Subject: [PATCH 16/30] fixed dynDNS update url parameter --- home.admin/config.scripts/internet.dyndomain.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home.admin/config.scripts/internet.dyndomain.sh b/home.admin/config.scripts/internet.dyndomain.sh index 67f29e33f..4a8ffc40c 100755 --- a/home.admin/config.scripts/internet.dyndomain.sh +++ b/home.admin/config.scripts/internet.dyndomain.sh @@ -15,7 +15,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then turn="on"; fi dynDomain=$2 # 3. parameter [?domainName] -updateDynDomain=$3 +dynUpdateUrl=$3 # run interactive if 'turn on' && no further parameters if [ "${turn}" = "on" ] && [ ${#dynDomain} -eq 0 ]; then From a1d4f20c5784f1ce6d206faf72a19ad4bbb30c9d Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 17:07:20 +0100 Subject: [PATCH 17/30] small UI fix --- home.admin/00infoLCD.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home.admin/00infoLCD.sh b/home.admin/00infoLCD.sh index fe36ef4a7..9b3571d73 100755 --- a/home.admin/00infoLCD.sh +++ b/home.admin/00infoLCD.sh @@ -198,7 +198,7 @@ while : l2="ssh admin@${localip}\n" l3="Waiting for AUTO-UNLOCK" fi - boxwidth=$((${#localip} + 24)) + boxwidth=$((${#localip} + 26)) dialog --backtitle "RaspiBlitz ${codeVersion} (${localip}) - ${hostname}" --infobox "$l1$l2$l3$l4" ${h} ${boxwidth} sleep 5 continue From dc0fd31e07b6c6041b65fc0167c05def50c6b5dc Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 17:23:38 +0100 Subject: [PATCH 18/30] fix scripts parameter --- home.admin/config.scripts/internet.dyndomain.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/home.admin/config.scripts/internet.dyndomain.sh b/home.admin/config.scripts/internet.dyndomain.sh index 4a8ffc40c..ce2be62c2 100755 --- a/home.admin/config.scripts/internet.dyndomain.sh +++ b/home.admin/config.scripts/internet.dyndomain.sh @@ -11,11 +11,17 @@ fi turn="off" if [ "$1" = "1" ] || [ "$1" = "on" ]; then turn="on"; fi +echo "number of args($#)" + # 2. parameter [?domainName] -dynDomain=$2 +if [ $# > 1 ]; then + dynDomain=$2 +fi # 3. parameter [?domainName] -dynUpdateUrl=$3 +if [ $# > 2 ]; then + dynUpdateUrl=$3 +fi # run interactive if 'turn on' && no further parameters if [ "${turn}" = "on" ] && [ ${#dynDomain} -eq 0 ]; then From 2f452ca8a451b03b7ee145b67efe83c9170f4464 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 17:25:43 +0100 Subject: [PATCH 19/30] fix dialog paramter --- home.admin/config.scripts/internet.dyndomain.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home.admin/config.scripts/internet.dyndomain.sh b/home.admin/config.scripts/internet.dyndomain.sh index ce2be62c2..fd9ee5b4e 100755 --- a/home.admin/config.scripts/internet.dyndomain.sh +++ b/home.admin/config.scripts/internet.dyndomain.sh @@ -26,6 +26,10 @@ fi # run interactive if 'turn on' && no further parameters if [ "${turn}" = "on" ] && [ ${#dynDomain} -eq 0 ]; then + # make sure dialog file is writeable + sudp touch ./.tmp + sudo chmod 777 ./.tmp + dialog --backtitle "DynamicDNS" --inputbox "ENTER the Dynamic Domain Name: For more details see chapter in GitHub README From e73372d6aef563de8ada268a357ad567c0edc7d2 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 17:35:34 +0100 Subject: [PATCH 20/30] fixing dynUpdateUrl bug --- home.admin/config.scripts/internet.dyndomain.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/home.admin/config.scripts/internet.dyndomain.sh b/home.admin/config.scripts/internet.dyndomain.sh index fd9ee5b4e..0010d8779 100755 --- a/home.admin/config.scripts/internet.dyndomain.sh +++ b/home.admin/config.scripts/internet.dyndomain.sh @@ -91,7 +91,12 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then # setting value in raspi blitz config sudo sed -i "s/^dynDomain=.*/dynDomain='${dynDomain}'/g" /mnt/hdd/raspiblitz.conf - sudo sed -i "s/^dynUpdateUrl=.*/dynUpdateUrl='${dynUpdateUrl}'/g" /mnt/hdd/raspiblitz.conf + + # setting dynUpdateUrl is a bit cpmplicated because value can contain chars that break sed replacement + # so first remove dynUpdateUrl from config and then add fresh as new line at the end + grep -v "dynUpdateUrl" /mnt/hdd/raspiblitz.conf > /mnt/hdd/raspiblitz.conf + echo "dynUpdateUrl='${dynUpdateUrl}'" >> ${configFile} + #sudo sed -i "s/^dynUpdateUrl=.*/dynUpdateUrl='${dynUpdateUrl}'/g" /mnt/hdd/raspiblitz.conf echo "changing lnd.conf" From fe834f20c4586a828251f5f59d0e7807c25391df Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 17:41:48 +0100 Subject: [PATCH 21/30] fix replacing dynUpdateUrl parameter --- home.admin/config.scripts/internet.dyndomain.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/home.admin/config.scripts/internet.dyndomain.sh b/home.admin/config.scripts/internet.dyndomain.sh index 0010d8779..988c23d31 100755 --- a/home.admin/config.scripts/internet.dyndomain.sh +++ b/home.admin/config.scripts/internet.dyndomain.sh @@ -94,8 +94,11 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then # setting dynUpdateUrl is a bit cpmplicated because value can contain chars that break sed replacement # so first remove dynUpdateUrl from config and then add fresh as new line at the end - grep -v "dynUpdateUrl" /mnt/hdd/raspiblitz.conf > /mnt/hdd/raspiblitz.conf - echo "dynUpdateUrl='${dynUpdateUrl}'" >> ${configFile} + grep -v "dynUpdateUrl" /mnt/hdd/raspiblitz.conf > /mnt/hdd/raspiblitz.conf.new + echo "dynUpdateUrl='${dynUpdateUrl}'" >> /mnt/hdd/raspiblitz.conf.new + sudo rm /mnt/hdd/raspiblitz.conf + sudo mv /mnt/hdd/raspiblitz.conf.new /mnt/hdd/raspiblitz.conf + sudo chmod 777 /mnt/hdd/raspiblitz.conf #sudo sed -i "s/^dynUpdateUrl=.*/dynUpdateUrl='${dynUpdateUrl}'/g" /mnt/hdd/raspiblitz.conf echo "changing lnd.conf" From aca7168a88cd4f1c95ada27b0be700fbc4c4b176 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 17:43:24 +0100 Subject: [PATCH 22/30] dynUpdateUrl fix --- home.admin/config.scripts/internet.dyndomain.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/home.admin/config.scripts/internet.dyndomain.sh b/home.admin/config.scripts/internet.dyndomain.sh index 988c23d31..83cdd30cf 100755 --- a/home.admin/config.scripts/internet.dyndomain.sh +++ b/home.admin/config.scripts/internet.dyndomain.sh @@ -94,10 +94,10 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then # setting dynUpdateUrl is a bit cpmplicated because value can contain chars that break sed replacement # so first remove dynUpdateUrl from config and then add fresh as new line at the end - grep -v "dynUpdateUrl" /mnt/hdd/raspiblitz.conf > /mnt/hdd/raspiblitz.conf.new - echo "dynUpdateUrl='${dynUpdateUrl}'" >> /mnt/hdd/raspiblitz.conf.new + grep -v "dynUpdateUrl" /mnt/hdd/raspiblitz.conf > ./raspiblitz.conf.new + echo "dynUpdateUrl='${dynUpdateUrl}'" >> ./raspiblitz.conf.new sudo rm /mnt/hdd/raspiblitz.conf - sudo mv /mnt/hdd/raspiblitz.conf.new /mnt/hdd/raspiblitz.conf + sudo mv ./raspiblitz.conf.new /mnt/hdd/raspiblitz.conf sudo chmod 777 /mnt/hdd/raspiblitz.conf #sudo sed -i "s/^dynUpdateUrl=.*/dynUpdateUrl='${dynUpdateUrl}'/g" /mnt/hdd/raspiblitz.conf From ba8b71abdfd5ed267bf0595033d516e54a3bc0ac Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 17:57:33 +0100 Subject: [PATCH 23/30] added RaspiBlot credits --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1285519e9..35c87b987 100644 --- a/README.md +++ b/README.md @@ -574,6 +574,8 @@ You have still more questions? Check the [RaspiBlitz-FAQ-Archive](FAQ.md). Everybody is welcome to join, improve and extend the RaspiBlitz - its a work in progress. [Check the issues](https://github.com/rootzoll/raspiblitz/issues) if you wanna help out or add new ideas. You find the scripts used for RaspiBlitz interactions on the device at `/home/admin` or in this git repo in the subfolder `home.admin`. +Also get inspired for a deep-dive with the original "[RaspiBolt](https://github.com/Stadicus/guides/tree/master/raspibolt)" tutorial on how to build a lightning node on the RaspberryPi which was the base work the RaspiBlitz was developed on - so much thx to Stadicus :) + Join me on twitter [@rootzoll](https://twitter.com/rootzoll), visit us at a upcomming [#lightninghackday](https://twitter.com/hashtag/LightningHackday?src=hash) or check by on of our bitcoin meetups in Berlin ... every 1st Thursday evening a month at the room77 bar - feel free to buy me a beer with lightning there :) * [How can I get further help/support?](#support) From 6ee7a162f4b1ce6980c01fb61b7f735ab922dd51 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 18:41:12 +0100 Subject: [PATCH 24/30] added some cool off time after provision/update --- home.admin/_bootstrap.provision.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home.admin/_bootstrap.provision.sh b/home.admin/_bootstrap.provision.sh index cd31025cc..7eb2c1e5b 100644 --- a/home.admin/_bootstrap.provision.sh +++ b/home.admin/_bootstrap.provision.sh @@ -157,4 +157,8 @@ else fi sudo sed -i "s/^message=.*/message='Setup Done'/g" ${infoFile} + +echo "DONE - Give raspi some cool off time after hard building .... 20 secs sleep" >> ${logFile} +sleep 20 + echo "END Provisioning" >> ${logFile} \ No newline at end of file From fd2bed759eb1effb90306de99b3bd70c578cd335 Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 19:13:10 +0100 Subject: [PATCH 25/30] final build notes --- FAQ.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/FAQ.md b/FAQ.md index 7d8ac83d2..7e5f57626 100644 --- a/FAQ.md +++ b/FAQ.md @@ -474,18 +474,9 @@ Work Nodes for the process of producing a new sd card image release: * Remove `Ubuntu LIVE` USB stick and replace with `Ubuntu AIRGAP` * PowerOn Build Laptop (press F12 for boot menu) * Cut Power of RaspiBlitz, remove sd card and connect with sd card reader to build laptop - -Old: -* Open `Disks` manager, select sd card and choose `Create Disk Image` (right upper corner window) -* Store image to NTFS USB stick (click to start can take a while - enter password) -* Open in File Manager the NTFS USB Stick, context menu the created IMG file `compress` -* Name it: `raspiblitz-vX.X-YEAR-MONTH-DAY.img.zip` - -New: * Connect and open in Filemenager NTFS - context on white scace -> open terminal * run `df`to check on sd card reader device name * `sudo dd if=/dev/[sdcarddevice] | gzip > ./raspiblitz-vX.X-YEAR-MONTH-DAY.img.gz` - * Delete all IMG files from NTFS (just keep zips/gzs) * Context on white space, `Open in Terminal`, run `shasum -a 256 [NEW-ZIP] > sha256.txt` * [Do future author signing here with tools from airgap build machine] From 88ebb149a1abb70fdb89429ca04ae4b08515373c Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 20:52:32 +0100 Subject: [PATCH 26/30] added torrent of v1.0 image --- README.md | 5 ++++- raspiblitz-v1.0-2018-02-18.torrent | Bin 0 -> 26375 bytes 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100755 raspiblitz-v1.0-2018-02-18.torrent diff --git a/README.md b/README.md index 35c87b987..5a021cd0a 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,10 @@ Connect the HDD to one of the USB ports. In the end your RaspiBlitz should look Your SD-card needs to contain the RaspiBlitz software. You can take the long road by [building the SD-card image yourself](#build-the-sd-card-image) or use the already prepared SD-Card image: 1. Download SD-Card image - **Version 1.0**: -(PLEASE BE PATIENT - IMAGE v1.0 IS COMING SOON) + +http://wiki.fulmo.org/downloads/raspiblitz-v1.0-2019-02-18.img.gz +SHA-256: 99ca96d214657388305ca117e2343ead45f9d907f185bef36c712a9a3e75568f +Torrent-Download: 2. Write the SD-Card image to your SD Card - if you need details, see here: https://www.raspberrypi.org/documentation/installation/installing-images/README.md diff --git a/raspiblitz-v1.0-2018-02-18.torrent b/raspiblitz-v1.0-2018-02-18.torrent new file mode 100755 index 0000000000000000000000000000000000000000..a1969868e8ec6579530c683b10c991e3b9e497aa GIT binary patch literal 26375 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 z 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 literal 0 HcmV?d00001 From 82449702ac7adde52f1c1b0af38ffa26c0233e2e Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 21:31:10 +0100 Subject: [PATCH 27/30] v1.0 http/torrent image release --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5a021cd0a..5f51077d4 100644 --- a/README.md +++ b/README.md @@ -81,9 +81,9 @@ Your SD-card needs to contain the RaspiBlitz software. You can take the long roa 1. Download SD-Card image - **Version 1.0**: -http://wiki.fulmo.org/downloads/raspiblitz-v1.0-2019-02-18.img.gz +HTTP: http://wiki.fulmo.org/downloads/raspiblitz-v1.0-2019-02-18.img.gz +Torrent: https://github.com/rootzoll/raspiblitz/raw/master/raspiblitz-v1.0-2018-02-18.torrent SHA-256: 99ca96d214657388305ca117e2343ead45f9d907f185bef36c712a9a3e75568f -Torrent-Download: 2. Write the SD-Card image to your SD Card - if you need details, see here: https://www.raspberrypi.org/documentation/installation/installing-images/README.md From e327a404ed13efb8c77dcca50d18423fea0ac0cc Mon Sep 17 00:00:00 2001 From: rootzoll Date: Mon, 18 Feb 2019 21:32:42 +0100 Subject: [PATCH 28/30] v1.0 http/torrent image release --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5f51077d4..5efad32a9 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,9 @@ Your SD-card needs to contain the RaspiBlitz software. You can take the long roa 1. Download SD-Card image - **Version 1.0**: HTTP: http://wiki.fulmo.org/downloads/raspiblitz-v1.0-2019-02-18.img.gz + Torrent: https://github.com/rootzoll/raspiblitz/raw/master/raspiblitz-v1.0-2018-02-18.torrent + SHA-256: 99ca96d214657388305ca117e2343ead45f9d907f185bef36c712a9a3e75568f 2. Write the SD-Card image to your SD Card - if you need details, see here: From 857252e4e219c04bbc6ae1957689440f684c680d Mon Sep 17 00:00:00 2001 From: rootzoll Date: Tue, 19 Feb 2019 13:46:31 +0100 Subject: [PATCH 29/30] torrent file rename --- README.md | 2 +- ...18.torrent => raspiblitz-v1.0-2019-02-18.torrent | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename raspiblitz-v1.0-2018-02-18.torrent => raspiblitz-v1.0-2019-02-18.torrent (100%) diff --git a/README.md b/README.md index 5efad32a9..0f2f367f2 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Your SD-card needs to contain the RaspiBlitz software. You can take the long roa HTTP: http://wiki.fulmo.org/downloads/raspiblitz-v1.0-2019-02-18.img.gz -Torrent: https://github.com/rootzoll/raspiblitz/raw/master/raspiblitz-v1.0-2018-02-18.torrent +Torrent: https://github.com/rootzoll/raspiblitz/raw/master/raspiblitz-v1.0-2019-02-18.torrent SHA-256: 99ca96d214657388305ca117e2343ead45f9d907f185bef36c712a9a3e75568f diff --git a/raspiblitz-v1.0-2018-02-18.torrent b/raspiblitz-v1.0-2019-02-18.torrent similarity index 100% rename from raspiblitz-v1.0-2018-02-18.torrent rename to raspiblitz-v1.0-2019-02-18.torrent From 434b0ebd028b7528b3b63386f737e30f18304a23 Mon Sep 17 00:00:00 2001 From: Christian Rotzoll Date: Tue, 19 Feb 2019 17:47:24 +0100 Subject: [PATCH 30/30] added re-torrent info --- FAQ.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index 7e5f57626..eca7cb2bd 100644 --- a/FAQ.md +++ b/FAQ.md @@ -501,8 +501,16 @@ When the HDD is clean, then flash a new RaspiBlitz sd card and your setup should ## My blockchain data is corrupted - what can I do? -You could try to re-index, but that can take some very long time - multiple days or even weeks. +You could try to re-index, but that can take some very long time - multiple days or even weeks. But there are other options: -Another option would be to delete the old blockchain and get a new one. See for details the FAQ question: [I have the full blockchain on another computer. How do I copy it to the RaspiBlitz?](FAQ.md#i-have-the-full-blockchain-on-another-computer-how-do-i-copy-it-to-the-raspiblitz). And even if you are not able to delete the data, first rename the undeletable folders and then follow the instructions. +1. Copy Blockchain from another Computer -Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD is degrading - maybe this is a good time to replace it. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md#how-can-i-recover-my-coins-from-a-failing-raspiblitz) +You can delete the old blockchain and get a new one. See for details the FAQ question: [I have the full blockchain on another computer. How do I copy it to the RaspiBlitz?](FAQ.md#i-have-the-full-blockchain-on-another-computer-how-do-i-copy-it-to-the-raspiblitz). And even if you are not able to delete the data, first rename the undeletable folders and then follow the instructions. + +2. Re-Torrent download prepared Blockchain + +You can also start a new Torrent-Download and replace the old blockchain with a new download once its finished. Go to terminal and run script `/mnt/hdd/50torrentHDD.sh` + +3. Backup LND Data, make fresh Blitz, Replay LND Data + +You can backup your channel and wallet data, make a complete fresh RaspiBlitz and after that one is setup you replace the LND data with your old one. Also make sure to check again on your power supply - it needs to deliver equal or more then 3A and should deliver a stable current. If you think your HDD or SD card is degrading - maybe this is a good time to replace. See for details the FAQ question: [How can I recover my coins from a failing RaspiBlitz?](FAQ.md#how-can-i-recover-my-coins-from-a-failing-raspiblitz)*