diff --git a/README.md b/README.md index e0740189f..f62bc972c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ -# ![RaspiBlitz](pictures/raspilogo_tile_400px.png) + +# ![RaspiBlitz](pictures/raspilogo_tile_400px.png) _Build your own Lightning & Bitcoin Fullnode on a RaspberryPi with an optional Display._ -`Version 1.10.0rc2 with bitcoin 25.0.0, lnd 0.16.4 & Core Lightning 23.05.2` ([api](https://github.com/fusion44/blitz_api)|[web](https://github.com/cstenglein/raspiblitz-web)) +`Version 1.10.0rc3 with bitcoin 25.0.0, lnd 0.16.4 & Core Lightning 23.05.2` ([api](https://github.com/fusion44/blitz_api)|[web](https://github.com/raspiblitz/raspiblitz-web)) ![RaspiBlitz](pictures/raspiblitz.jpg) @@ -14,25 +15,27 @@ Discover & develop the growing ecosystem of the Lightning Network by becoming a Build it as part of a [workshop](WORKSHOP.md) or as a weekend project yourself. --- + + ## Table of Contents - - [Feature Overview](#feature-overview) - - [Time Estimate to Set Up a RaspiBlitz](#time-estimate-to-set-up-a-raspiblitz) - - [Hardware Needed](#hardware-needed) - - [Assemble your RaspiBlitz](#assemble-your-raspiblitz) - - [Downloading the Software](#downloading-the-software) - - [Write the SD-Card image to your SD Card](#write-the-sd-card-image-to-your-sd-card) - - [Boot your RaspiBlitz](#boot-your-raspiblitz) - - [Support](#support) - - [Setup Process (Detailed Documentation)](#setup-process-detailed-documentation) - - [Import a Migration File](#import-a-migration-file) - - [Make a RaspiBlitz out of your Umbrel, Citadel or MyNode](#make-a-raspiblitz-out-of-your-umbrel-citadel-or-mynode) - - [Interface / APIs](#interface--apis) - - [Updating RaspiBlitz to new Version](#updating-raspiblitz-to-new-version) - - [Build the SD Card Image](#build-the-sd-card-image) - - [FAQ](#faq) - - [Community Development](#community-development) +- [Feature Overview](#feature-overview) +- [Time Estimate to Set Up a RaspiBlitz](#time-estimate-to-set-up-a-raspiblitz) +- [Hardware Needed](#hardware-needed) +- [Assemble your RaspiBlitz](#assemble-your-raspiblitz) +- [Downloading the Software](#downloading-the-software) +- [Write the SD-Card image to your SD Card](#write-the-sd-card-image-to-your-sd-card) +- [Boot your RaspiBlitz](#boot-your-raspiblitz) +- [Support](#support) +- [Setup Process (Detailed Documentation)](#setup-process-detailed-documentation) +- [Import a Migration File](#import-a-migration-file) +- [Make a RaspiBlitz out of your Umbrel, Citadel or MyNode](#make-a-raspiblitz-out-of-your-umbrel-citadel-or-mynode) +- [Interface / APIs](#interface--apis) +- [Updating RaspiBlitz to new Version](#updating-raspiblitz-to-new-version) +- [Build the SD Card Image](#build-the-sd-card-image) +- [FAQ](#faq) +- [Community Development](#community-development) --- @@ -132,7 +135,7 @@ _If the above mentioned LCD screen is sold out you can also use these different - Quimat 3,5'' Zoll Inch Touch - ELEGOO Display 3.5" Zoll TFT LCD -- kuman 3.5 Inch Touch Screen TFT Monitor +- kuman 3.5 Inch Touch Screen TFT Monitor - Waveshare 3.5inch Display for Raspberry Pi With all LCD screen models dont use the ones that have an HDMI port/connector - what you need is a 3.5 inch LCD screen model (resolution of 480×320) that connects only thru the GPIO ports (SPI) and has an XPT2046 touch controller. @@ -164,11 +167,11 @@ In this section you find the latest ready-to-use RaspiBlitz SDcard images. Basic This is the sd card image you should choose if your at the beginning of your RaspiBlitz journey or you are a casual node runner wanna download the next update/upgrade - with WebUI & fast installing bonus apps. -*WARNING: THIS IS STILL A RELEASE CANDIDATE VERSION
-JUST USE FOR TESTING, HIGHER RISK OF LOSING FUNDS!* +_WARNING: THIS IS STILL A RELEASE CANDIDATE VERSION
+JUST USE FOR TESTING, HIGHER RISK OF LOSING FUNDS!_ -- __FATPACK SD CARD IMAGE ⮕ [raspiblitz-fat-v1.10.0rc2-2023-08-02.img.gz](https://raspiblitz.fulmo.org/images/raspiblitz-fat-v1.10.0rc2-2023-08-02.img.gz)__ -- SHA-256: a1a187a655a7b9b9ba6b3b1609d555a801f6be754d6fd209dfede9ff9e7379b8 +- **FATPACK SD CARD IMAGE ⮕ [raspiblitz-fat-v1.10.0rc3-2023-08-13.img.gz](https://raspiblitz.fulmo.org/images/raspiblitz-fat-v1.10.0rc3-2023-08-13.img.gz)** +- SHA-256: 8ba43f92ebe62535c419b83b08e86362599d029def5a81920c14f68a96ce7adf @@ -178,11 +181,11 @@ JUST USE FOR TESTING, HIGHER RISK OF LOSING FUNDS!* This is the sd card image for RaspiBlitz users that are already more experienced and want to use just a limited set of features of the RaspiBlitz. This image has just the bare minimum of features pre-installed - LCD & HDMI output is off by default. Setup, Update or Recovery needs to be done thru SSH login - API & WebUI are later available but are not preinstalled/activated by default. The RaspiBlitz will download & compile just the tools that are in your ´raspiblitz.conf´ - this will take longer but as a trade-off this RaspiBlitz then just runs with a reduced set of dependencies and so a minimalized attack vector and better performance. Its for the serious & experienced node runners. -*WARNING: THIS IS STILL A RELEASE CANDIDATE VERSION
-JUST USE FOR TESTING, HIGHER RISK OF LOSING FUNDS!* +_WARNING: THIS IS STILL A RELEASE CANDIDATE VERSION
+JUST USE FOR TESTING, HIGHER RISK OF LOSING FUNDS!_ -- __MINIMAL SD CARD IMAGE ⮕ [raspiblitz-min-v1.10.0rc2-2023-08-02.img.gz](https://raspiblitz.fulmo.org/images/raspiblitz-min-v1.10.0rc2-2023-08-02.img.gz)__ -- SHA-256: d2775524f5e51770294d873a9418b445041d98b97606c4510c3e322a180f9806 +- **MINIMAL SD CARD IMAGE ⮕ [raspiblitz-min-v1.10.0rc3-2023-08-13.img.gz](https://raspiblitz.fulmo.org/images/raspiblitz-min-v1.10.0rc3-2023-08-13.img.gz)** +- SHA-256: 1303c5c3b5657658b683df0caeb50989cdad5437037ae678a6ec5a4d1c04a5f9 @@ -1296,7 +1299,7 @@ Run the command below to generate root SSH keys: `sudo /home/admin/config.scripts/blitz.ssh.sh root-get` The public key is found in the `sshPubKey=` section of the above output. For manual setup, use the value after the = without the single quotes. -Copy the generated keys from above to the remote server (note, if your remote server doesn't allow password authentication, you will have to copy it manually). +Copy the generated keys from above to the remote server (note, if your remote server doesn't allow password authentication, you will have to copy it manually). `sudo /home/admin/config.scripts/blitz.ssh.sh root-transfer myuser@myserver` Note: If you do not copy the public key to your remote server, these backups will not work. diff --git a/home.admin/_background.scan.sh b/home.admin/_background.scan.sh index 4df91a4a2..6ff8fec58 100755 --- a/home.admin/_background.scan.sh +++ b/home.admin/_background.scan.sh @@ -78,17 +78,17 @@ usermod -G bitcoin root #################################################################### # init values -/home/admin/_cache.sh set system_temp_celsius "0" NX -/home/admin/_cache.sh set system_temp_fahrenheit "0" NX -/home/admin/_cache.sh set system_count_longscan "0" NX -/home/admin/_cache.sh set system_count_undervoltage "0" NX -/home/admin/_cache.sh set system_count_start_blockchain "0" NX -/home/admin/_cache.sh set system_count_start_lightning "0" NX -/home/admin/_cache.sh set system_count_start_tui "0" NX -/home/admin/_cache.sh set btc_default_peers "0" NX -/home/admin/_cache.sh set btc_default_sync_percentage "0" NX -/home/admin/_cache.sh set btc_default_address "" NX -/home/admin/_cache.sh set btc_default_port "" NX +/home/admin/_cache.sh init system_temp_celsius "0" +/home/admin/_cache.sh init system_temp_fahrenheit "0" +/home/admin/_cache.sh init system_count_longscan "0" +/home/admin/_cache.sh init system_count_undervoltage "0" +/home/admin/_cache.sh init system_count_start_blockchain "0" +/home/admin/_cache.sh init system_count_start_lightning "0" +/home/admin/_cache.sh init system_count_start_tui "0" +/home/admin/_cache.sh init btc_default_peers "0" +/home/admin/_cache.sh init btc_default_sync_percentage "0" +/home/admin/_cache.sh init btc_default_address "" +/home/admin/_cache.sh init btc_default_port "" # import all base values from raspiblitz.info echo "importing: ${infoFile}" diff --git a/home.admin/_cache.sh b/home.admin/_cache.sh index 82e8848ed..8c8bc9a27 100755 --- a/home.admin/_cache.sh +++ b/home.admin/_cache.sh @@ -14,6 +14,7 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ]; echo "_cache.sh ramdisk [on|off]" echo "_cache.sh keyvalue [on|off]" echo + echo "_cache.sh init [key] [value] (only sets value if not exists)" echo "_cache.sh set [key] [value] [?expire-seconds]" echo "_cache.sh get [key1] [?key2] [?key3] ..." echo @@ -133,7 +134,7 @@ elif [ "$1" = "keyvalue" ] && [ "$2" = "off" ]; then ################### # set -elif [ "$1" = "set" ]; then +elif [ "$1" = "set" ] || [ "$1" = "init" ]; then # get parameters keystr=$2 @@ -148,8 +149,8 @@ elif [ "$1" = "set" ]; then NX="" - if [ "${expireOrNx}" == "NX" ]; then - NX="NX" + if [ "$1" = "init" ]; then + NX="NX " else # filter from expire just numbers expireOrNx="${expire//[^0-9.]/}" @@ -167,7 +168,7 @@ elif [ "$1" = "set" ]; then # set in redis the timestamp timestamp=$(date +%s) - redis-cli set ${NX} ${keystr}${META_LASTTOUCH_TS} "${timestamp}" ${additionalParams} 1>/dev/null + redis-cli set ${NX}${keystr}${META_LASTTOUCH_TS} "${timestamp}" ${additionalParams} 1>/dev/null #echo "# lasttouch(${timestamp})" # check if the value has a outdate policy diff --git a/home.admin/_version.info b/home.admin/_version.info index 34222dd01..03e97e019 100644 --- a/home.admin/_version.info +++ b/home.admin/_version.info @@ -1,3 +1,3 @@ # RaspiBlitz Version - always [major].[main].[sub] (sub can be a string like '2rc1') -codeVersion="1.10.0rc2" +codeVersion="1.10.0rc3" # keep last line with comment \ No newline at end of file diff --git a/home.admin/config.scripts/lnd.backup.sh b/home.admin/config.scripts/lnd.backup.sh index d1dbeb00c..48bc37a66 100755 --- a/home.admin/config.scripts/lnd.backup.sh +++ b/home.admin/config.scripts/lnd.backup.sh @@ -169,6 +169,25 @@ if [ ${mode} = "lnd-export" ]; then exit 1 fi + # if a backup device is connected (and has enogh free space) copy it there + source <(/home/admin/config.scripts/blitz.backupdevice.sh status) + if [ $isMounted == 1 ]; then + + # get free space in bytes from backup device + freeSpace=$(df | grep -m1 "/mnt/backup" | awk '{print $4}') + + # subtract 50MB for safety + freeSpace=$(expr ${freeSpace} - 50000000) + + # check if enough space on backup device + if [ ${freeSpace} -gt ${byteSize} ]; then + echo "# making copy to backup device ..." + sudo cp ${downloadPath}/lnd-rescue-${md5checksum}.tar.gz /mnt/backup/lnd-rescue-${md5checksum}.tar.gz + else + echo "# not enough space on backup device for extra copy'" + fi + fi + # output result data echo "# lnd service is stopped for security" echo "filename='${downloadPath}/lnd-rescue-${md5checksum}.tar.gz'"