mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2024-11-19 01:40:16 +01:00
big merge of 2388redis & 2669tor (#2790)
This commit is contained in:
parent
1cdb50d38f
commit
85b0c97d41
2
.shellcheckrc
Normal file
2
.shellcheckrc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
shell=bash
|
||||||
|
source=/dev/null
|
9
FAQ.md
9
FAQ.md
@ -390,6 +390,14 @@ If your RaspiBlitz is not working correctly and you like to get help from the co
|
|||||||
|
|
||||||
*PLEASE NOTICE: It's possible that these logs can contain private information (like IPs, node IDs, ...) - just share publicly what you feel OK with.*
|
*PLEASE NOTICE: It's possible that these logs can contain private information (like IPs, node IDs, ...) - just share publicly what you feel OK with.*
|
||||||
|
|
||||||
|
### Can I run my RaspiBlitz on Solar Energy?
|
||||||
|
|
||||||
|
Yes - take a look at the project of [Chimezie Chuta](https://twitter.com/mezie16/status/1264513274080636928?s=20)
|
||||||
|
|
||||||
|
![RaspiSolar](pictures/raspisolar.jpg)
|
||||||
|
|
||||||
|
More details in his book ["A-Z of Building your own Full Bitcoin Lightning Node: A hand Book for Enthusiasts"](https://blockspace.shop/products/a-z-of-building-your-own-full-bitcoin-lightning-node-a-hand-book-for-enthusiasts)
|
||||||
|
|
||||||
### Why is my "final sync" taking so long?
|
### Why is my "final sync" taking so long?
|
||||||
|
|
||||||
First of all if you see a final sync over 90% and you can see from time to time small increase - you should be OK ... this can take a looong time to catch up with the network. Only in the case that you actively choose the `SYNC` option in the `Getting the Blockchain` is a final sync under 90% OK. If you did a torrent or a copy from another computer and you are seeing under 90% something went wrong, and the setup process is ignoring your prepared Blockchain and doing a full sync - which can almost take forever on a raspberryPi.
|
First of all if you see a final sync over 90% and you can see from time to time small increase - you should be OK ... this can take a looong time to catch up with the network. Only in the case that you actively choose the `SYNC` option in the `Getting the Blockchain` is a final sync under 90% OK. If you did a torrent or a copy from another computer and you are seeing under 90% something went wrong, and the setup process is ignoring your prepared Blockchain and doing a full sync - which can almost take forever on a raspberryPi.
|
||||||
@ -909,7 +917,6 @@ It is currently considered completely fine to leave this field empty and not pro
|
|||||||
The `acme.sh` script is installed in `/home/admin/.acme.sh/` - the configuration and the certificates are stored on the
|
The `acme.sh` script is installed in `/home/admin/.acme.sh/` - the configuration and the certificates are stored on the
|
||||||
external hard disk in `/mnt/hdd/app-data/letsencrypt`.
|
external hard disk in `/mnt/hdd/app-data/letsencrypt`.
|
||||||
|
|
||||||
|
|
||||||
### What is this mnemonic seed word list?
|
### What is this mnemonic seed word list?
|
||||||
|
|
||||||
With the 24 word list given you by LND upon wallet creation you can recover your private key. You should write it down and store it at a safe place. Bear in mind that *this 24 word mnemonic seed is not based on the BIP 39* and therefore cannot be recovered using a Bitcoin wallet.
|
With the 24 word list given you by LND upon wallet creation you can recover your private key. You should write it down and store it at a safe place. Bear in mind that *this 24 word mnemonic seed is not based on the BIP 39* and therefore cannot be recovered using a Bitcoin wallet.
|
||||||
|
@ -10,7 +10,7 @@ cp /vagrant/home.admin/config.scripts/blitz.github.sh /home/admin/config.scripts
|
|||||||
# execute 'patch' command to sync laptop with VM
|
# execute 'patch' command to sync laptop with VM
|
||||||
/home/admin/config.scripts/blitz.github.sh -run
|
/home/admin/config.scripts/blitz.github.sh -run
|
||||||
|
|
||||||
source <(/home/admin/config.scripts/internet.sh status)
|
source <(/home/admin/config.scripts/internet.sh status local)
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "************* NEXT ********************"
|
echo "************* NEXT ********************"
|
||||||
|
979
build_sdcard.sh
979
build_sdcard.sh
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,72 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 00infoBlitz.sh <cl|lnd> <testnet|mainnet|signet>
|
source <(/home/admin/_cache.sh get \
|
||||||
|
state \
|
||||||
|
setupPhase \
|
||||||
|
network \
|
||||||
|
chain \
|
||||||
|
lightning \
|
||||||
|
codeVersion \
|
||||||
|
hostname \
|
||||||
|
undervoltageReports \
|
||||||
|
hdd_used_info \
|
||||||
|
internet_localip \
|
||||||
|
internet_public_ip_clean \
|
||||||
|
internet_rx \
|
||||||
|
internet_tx \
|
||||||
|
system_ram_available_mb \
|
||||||
|
system_ram_mb \
|
||||||
|
system_ups_status \
|
||||||
|
system_cpu_load \
|
||||||
|
system_temp_celsius \
|
||||||
|
system_temp_fahrenheit \
|
||||||
|
runBehindTor \
|
||||||
|
ups \
|
||||||
|
ElectRS \
|
||||||
|
BTCRPCexplorer \
|
||||||
|
)
|
||||||
|
|
||||||
# load code software version
|
# PARAMETER 1: forcing view on a lightning implementation
|
||||||
source /home/admin/_version.info
|
PARAMETER_LIGHTNING=$1
|
||||||
|
if [ "${PARAMETER_LIGHTNING}" == "lnd" ]; then
|
||||||
|
lightning="lnd"
|
||||||
|
fi
|
||||||
|
if [ "${PARAMETER_LIGHTNING}" == "cl" ]; then
|
||||||
|
lightning="cl"
|
||||||
|
fi
|
||||||
|
if [ "${PARAMETER_LIGHTNING}" == "none" ]; then
|
||||||
|
lightning=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# PARAMETER 2: forcing view on a given network
|
||||||
|
PARAMETER_CHAIN=$2
|
||||||
|
if [ "${PARAMETER_CHAIN}" == "mainnet" ]; then
|
||||||
|
chain="main"
|
||||||
|
fi
|
||||||
|
if [ "${PARAMETER_CHAIN}" == "testnet" ]; then
|
||||||
|
chain="test"
|
||||||
|
fi
|
||||||
|
if [ "${PARAMETER_CHAIN}" == "signet" ]; then
|
||||||
|
chain="sig"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# generate netprefix
|
||||||
|
netprefix=${chain:0:1}
|
||||||
|
if [ "${netprefix}" == "m" ]; then
|
||||||
|
netprefix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
## get UPS info
|
||||||
|
upsInfo=""
|
||||||
|
if [ "${system_ups_status}" = "ONLINE" ]; then
|
||||||
|
upsInfo="${color_gray}${upsBattery}"
|
||||||
|
fi
|
||||||
|
if [ "$system_ups_status}" = "ONBATT" ]; then
|
||||||
|
upsInfo="${color_red}${upsBattery}"
|
||||||
|
fi
|
||||||
|
if [ "${system_ups_status}" = "SHUTTING DOWN" ]; then
|
||||||
|
upsInfo="${color_red}DOWN"
|
||||||
|
fi
|
||||||
|
|
||||||
# set colors
|
# set colors
|
||||||
color_red='\033[0;31m'
|
color_red='\033[0;31m'
|
||||||
@ -12,33 +75,6 @@ color_amber='\033[0;33m'
|
|||||||
color_yellow='\033[1;93m'
|
color_yellow='\033[1;93m'
|
||||||
color_gray='\033[0;37m'
|
color_gray='\033[0;37m'
|
||||||
|
|
||||||
## get basic info
|
|
||||||
source /home/admin/raspiblitz.info 2>/dev/null
|
|
||||||
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
|
||||||
|
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars $1 $2)
|
|
||||||
|
|
||||||
## get HDD/SSD info
|
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
|
||||||
hdd="${hddUsedInfo}"
|
|
||||||
|
|
||||||
## get internet info
|
|
||||||
source <(sudo /home/admin/config.scripts/internet.sh status)
|
|
||||||
cleanip=$(echo "${publicIP}" | tr -d '[]')
|
|
||||||
|
|
||||||
## get UPS info
|
|
||||||
source <(/home/admin/config.scripts/blitz.ups.sh status)
|
|
||||||
upsInfo=""
|
|
||||||
if [ "${upsStatus}" = "ONLINE" ]; then
|
|
||||||
upsInfo="${color_gray}${upsBattery}"
|
|
||||||
fi
|
|
||||||
if [ "${upsStatus}" = "ONBATT" ]; then
|
|
||||||
upsInfo="${color_red}${upsBattery}"
|
|
||||||
fi
|
|
||||||
if [ "${upsStatus}" = "SHUTTING DOWN" ]; then
|
|
||||||
upsInfo="${color_red}DOWN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check hostname
|
# check hostname
|
||||||
if [ ${#hostname} -eq 0 ]; then hostname="raspiblitz"; fi
|
if [ ${#hostname} -eq 0 ]; then hostname="raspiblitz"; fi
|
||||||
|
|
||||||
@ -48,347 +84,175 @@ if [ ${#chain} -eq 0 ]; then
|
|||||||
chain="main"
|
chain="main"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# set datadir
|
# ram info string
|
||||||
lnd_dir="/home/bitcoin/.lnd"
|
ram=$(printf "%sM / %sM" "${system_ram_available_mb}" "${system_ram_mb}")
|
||||||
lnd_macaroon_dir="/home/bitcoin/.lnd/data/chain/${network}/${chain}net"
|
if [ "${system_ram_available_mb}" != "" ] && [ ${system_ram_available_mb} -lt 50 ]; then
|
||||||
|
|
||||||
# get uptime & load
|
|
||||||
load=$(w | head -n 1 | cut -d 'v' -f2 | cut -d ':' -f2)
|
|
||||||
|
|
||||||
# get CPU temp - no measurement in a VM
|
|
||||||
cpu=0
|
|
||||||
if [ -d "/sys/class/thermal/thermal_zone0/" ]; then
|
|
||||||
cpu=$(cat /sys/class/thermal/thermal_zone0/temp)
|
|
||||||
fi
|
|
||||||
if [ $cpu = 0 ];then
|
|
||||||
tempC=""
|
|
||||||
tempF=""
|
|
||||||
else
|
|
||||||
tempC=$((cpu/1000))
|
|
||||||
tempF=$(((tempC * 18 + 325) / 10))
|
|
||||||
fi
|
|
||||||
# get memory
|
|
||||||
ram_avail=$(free -m | grep Mem | awk '{ print $7 }')
|
|
||||||
ram=$(printf "%sM / %sM" "${ram_avail}" "$(free -m | grep Mem | awk '{ print $2 }')")
|
|
||||||
|
|
||||||
if [ ${ram_avail} -lt 50 ]; then
|
|
||||||
color_ram="${color_red}\e[7m"
|
color_ram="${color_red}\e[7m"
|
||||||
else
|
else
|
||||||
color_ram=${color_green}
|
color_ram=${color_green}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Bitcoin blockchain
|
# Tor info string
|
||||||
btc_path=$(command -v ${network}-cli)
|
|
||||||
blockInfo="-"
|
|
||||||
if [ -n "${btc_path}" ]; then
|
|
||||||
btc_title=$network
|
|
||||||
blockchaininfo="$($bitcoincli_alias getblockchaininfo 2>/dev/null)"
|
|
||||||
if [ ${#blockchaininfo} -gt 0 ]; then
|
|
||||||
btc_title="${btc_title} (${chain}net)"
|
|
||||||
|
|
||||||
# get sync status
|
|
||||||
headers="$(echo "${blockchaininfo}" | jq -r '.headers')"
|
|
||||||
block_verified="$(echo "${blockchaininfo}" | jq -r '.blocks')"
|
|
||||||
block_diff=$(expr ${headers} - ${block_verified})
|
|
||||||
blockInfo="${block_verified}/${headers}"
|
|
||||||
|
|
||||||
progress="$(echo "${blockchaininfo}" | jq -r '.verificationprogress')"
|
|
||||||
sync_percentage=$(echo $progress | awk '{printf( "%.2f%%", 100 * $1)}')
|
|
||||||
|
|
||||||
if [ ${block_diff} -eq 0 ]; then # fully synced
|
|
||||||
sync="OK"
|
|
||||||
sync_color="${color_green}"
|
|
||||||
sync_behind=" "
|
|
||||||
elif [ ${block_diff} -eq 1 ]; then # fully synced
|
|
||||||
sync="OK"
|
|
||||||
sync_color="${color_green}"
|
|
||||||
sync_behind="-1 block"
|
|
||||||
elif [ ${block_diff} -le 10 ]; then # <= 2 blocks behind
|
|
||||||
sync=""
|
|
||||||
sync_color="${color_red}"
|
|
||||||
sync_behind="-${block_diff} blocks"
|
|
||||||
else
|
|
||||||
sync=""
|
|
||||||
sync_color="${color_red}"
|
|
||||||
sync_behind="${sync_percentage}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get last known block
|
|
||||||
if [ ! -z "${last_block}" ]; then
|
|
||||||
btc_line2="${btc_line2} ${color_gray}(block ${last_block})"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get mem pool transactions
|
|
||||||
mempool="$($bitcoincli_alias getmempoolinfo 2>/dev/null | jq -r '.size')"
|
|
||||||
|
|
||||||
else
|
|
||||||
btc_line2="${color_red}NOT RUNNING\t\t"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get IP address & port
|
|
||||||
networkInfo=$($bitcoincli_alias getnetworkinfo 2>/dev/null)
|
|
||||||
local_ip="${localip}" # from internet.sh
|
|
||||||
public_ip="${cleanip}"
|
|
||||||
public_port="$(echo ${networkInfo} | jq -r '.localaddresses [0] .port')"
|
|
||||||
if [ "${public_port}" = "null" ]; then
|
|
||||||
if [ "${chain}" = "test" ]; then
|
|
||||||
public_port="18333"
|
|
||||||
else
|
|
||||||
public_port="8333"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if RTL web interface is installed
|
|
||||||
webinterfaceInfo=""
|
|
||||||
runningRTL=$(systemctl status ${netprefix}${typeprefix}RTL.service 2>/dev/null | grep -c active)
|
|
||||||
if [ ${runningRTL} -eq 1 ]; then
|
|
||||||
if [ "${lightning}" == "cl" ]; then
|
|
||||||
RTLHTTP=${portprefix}7000
|
|
||||||
elif [ "${lightning}" == "lnd" ];then
|
|
||||||
RTLHTTP=${portprefix}3000
|
|
||||||
fi
|
|
||||||
webinterfaceInfo="Web admin --> ${color_green}http://${local_ip}:${RTLHTTP}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# CHAIN NETWORK
|
|
||||||
public_addr_pre="Public "
|
|
||||||
public_addr="??"
|
|
||||||
torInfo=""
|
torInfo=""
|
||||||
# Version
|
|
||||||
networkVersion=$($bitcoincli_alias -version 2>/dev/null | cut -d ' ' -f6)
|
|
||||||
# TOR or IP
|
|
||||||
networkConnections=$(echo ${networkInfo} | jq -r '.connections')
|
|
||||||
networkConnectionsInfo="${color_green}${networkConnections} ${color_gray}connections"
|
|
||||||
|
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
|
|
||||||
# TOR address
|
|
||||||
onionAddress=$(echo ${networkInfo} | jq -r '.localaddresses [0] .address')
|
|
||||||
networkConnectionsInfo="${color_green}${networkConnections} ${color_gray}peers"
|
|
||||||
public_addr="${onionAddress}:${public_port}"
|
|
||||||
public=""
|
|
||||||
public_color="${color_green}"
|
|
||||||
torInfo="+ Tor"
|
torInfo="+ Tor"
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
# IP address
|
|
||||||
networkConnectionsInfo="${color_green}${networkConnections} ${color_gray}connections"
|
|
||||||
public_addr="${publicIP}:${public_port}"
|
|
||||||
public_check=$(nc -z -w6 ${cleanip} ${public_port} 2>/dev/null; echo $?)
|
|
||||||
if [ $public_check = "0" ] || [ "${ipv6}" == "on" ] ; then
|
|
||||||
public=""
|
|
||||||
# only set yellow/normal because netcat can only say that the port is open - not that it points to this device for sure
|
|
||||||
public_color="${color_amber}"
|
|
||||||
else
|
|
||||||
public=""
|
|
||||||
public_color="${color_red}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# DynDomain
|
|
||||||
if [ ${#dynDomain} -gt 0 ]; then
|
|
||||||
|
|
||||||
#check if dynamic domain resolves to correct IP
|
|
||||||
ipOfDynDNS=$(getent hosts ${dynDomain} | awk '{ print $1 }')
|
|
||||||
if [ "${ipOfDynDNS}:${public_port}" != "${public_addr}" ]; then
|
|
||||||
public_color="${color_red}"
|
|
||||||
else
|
|
||||||
public_color="${color_amber}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# replace IP display with dynDN
|
|
||||||
public_addr_pre="DynDN "
|
|
||||||
public_addr="${dynDomain}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${#public_addr} -gt 25 ]; then
|
|
||||||
# if a IPv6 address dont show peers to save space
|
|
||||||
networkConnectionsInfo=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${#public_addr} -gt 35 ]; then
|
|
||||||
# if a LONG IPv6 address dont show "Public" in front to save space
|
|
||||||
public_addr_pre=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# LIGHTNING NETWORK
|
#######################
|
||||||
if [ "${lightning}" == "cl" ]; then
|
# BITCOIN INFO
|
||||||
ln_getInfo=$($lightningcli_alias getinfo 2>/dev/null)
|
|
||||||
ln_baseInfo="-"
|
# get block data - use meta on cache to call dynamic variable name
|
||||||
ln_channelInfo="\n"
|
source <(/home/admin/_cache.sh meta btc_${chain}net_blocks_headers)
|
||||||
ln_external="\n"
|
btc_blocks_headers="${value}"
|
||||||
ln_alias="$(sudo cat "${CLCONF}" | grep "^alias=*" | cut -f2 -d=)"
|
source <(/home/admin/_cache.sh meta btc_${chain}net_blocks_verified)
|
||||||
if [ ${#ln_alias} -eq 0 ];then
|
btc_blocks_verified="${value}"
|
||||||
ln_alias=$(echo "${ln_getInfo}" | grep '"alias":' | cut -d '"' -f4)
|
source <(/home/admin/_cache.sh meta btc_${chain}net_blocks_behind)
|
||||||
fi
|
btc_blocks_behind="${value}"
|
||||||
if [ ${#ln_alias} -eq 0 ];then
|
source <(/home/admin/_cache.sh meta btc_${chain}net_sync_percentage)
|
||||||
ln_alias=${hostname}
|
if [ "${value}" != "" ]; then
|
||||||
fi
|
sync_percentage="${value}%"
|
||||||
ln_publicColor=""
|
fi
|
||||||
ln_port=$(sudo cat "${CLCONF}" | grep "^bind-addr=*" | cut -f2 -d':')
|
|
||||||
if [ ${#ln_port} -eq 0 ]; then
|
# construct blockinfo string
|
||||||
ln_port=$(echo "${ln_getInfo}" | grep '"port":' | cut -d: -f2 | tail -1 | bc)
|
if [ "${btc_blocks_behind}" == "" ]; then
|
||||||
fi
|
sync="WAIT"
|
||||||
wallet_unlocked=0 #TODO
|
sync_color="${color_yellow}"
|
||||||
if [ "$wallet_unlocked" -gt 0 ] ; then
|
elif [ ${btc_blocks_behind} -lt 2 ]; then
|
||||||
ln_alias="Wallet Locked"
|
sync="OK"
|
||||||
else
|
sync_color="${color_green}"
|
||||||
pubkey=$(echo "${ln_getInfo}" | grep '"id":' | cut -d '"' -f4)
|
else
|
||||||
address=$(echo "${ln_getInfo}" | grep '.onion' | cut -d '"' -f4)
|
sync=""
|
||||||
if [ ${#address} -eq 0 ];then
|
sync_color="${color_red}"
|
||||||
address=$(echo "${ln_getInfo}" | grep '"ipv4"' -A 1 | tail -1 | cut -d '"' -f4)
|
fi
|
||||||
fi
|
blockInfo="Blocks ${btc_blocks_verified}/${btc_blocks_headers} ${color_gray}Sync ${sync_color}${sync}"
|
||||||
ln_external="${pubkey}@${address}:${ln_port}"
|
if [ "${btc_blocks_headers}" == "" ]; then
|
||||||
ln_tor=$(echo "${ln_external}" | grep -c ".onion")
|
blockInfo="${color_red}Not Started | Not Ready Yet | No Data${color_gray}"
|
||||||
if [ ${ln_tor} -eq 1 ]; then
|
fi
|
||||||
ln_publicColor="${color_green}"
|
|
||||||
else
|
# get address data - use meta on cache to call dynamic variable name
|
||||||
public_check=$(nc -z -w6 ${public_ip} ${ln_port} 2>/dev/null; echo $?)
|
source <(/home/admin/_cache.sh meta btc_${chain}net_version)
|
||||||
if [ $public_check = "0" ] || [ "${ipv6}" == "on" ]; then
|
networkVersion="${value} "
|
||||||
# only set yellow/normal because netcat can only say that the port is open - not that it points to this device for sure
|
source <(/home/admin/_cache.sh meta btc_${chain}net_peers)
|
||||||
ln_publicColor="${color_amber}"
|
btc_peers=${value}
|
||||||
else
|
if [ "${btc_peers}" == "" ]; then
|
||||||
ln_publicColor="${color_red}"
|
networkConnectionsInfo=""
|
||||||
fi
|
elif [ ${btc_peers} -gt 0 ]; then
|
||||||
|
networkConnectionsInfo="${color_green}${btc_peers} ${color_gray}peers"
|
||||||
|
else
|
||||||
|
networkConnectionsInfo="${color_red}${btc_peers} ${color_gray}peers"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# LIGHTNING INFO
|
||||||
|
|
||||||
|
# default values
|
||||||
|
ln_alias=${hostname}
|
||||||
|
ln_baseInfo="-"
|
||||||
|
ln_channelInfo="\n"
|
||||||
|
ln_external="\n"
|
||||||
|
ln_feeReport=""
|
||||||
|
ln_peersInfo=""
|
||||||
|
ln_version=""
|
||||||
|
ln_publicColor="${color_green}"
|
||||||
|
|
||||||
|
if [ "${lightning}" != "" ]; then
|
||||||
|
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_version)
|
||||||
|
ln_version="${value}"
|
||||||
|
|
||||||
|
# get alias
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_alias)
|
||||||
|
if [ "${value}" != "" ]; then
|
||||||
|
ln_alias="${value}"
|
||||||
fi
|
fi
|
||||||
BLOCKHEIGHT=$(echo "$blockchaininfo"|grep blocks|awk '{print $2}'|cut -d, -f1)
|
|
||||||
CLHEIGHT=$(echo "${ln_getInfo}" | jq .blockheight)
|
# consider tor address green for public
|
||||||
if [ "$BLOCKHEIGHT" == "$CLHEIGHT" ];then
|
# when not Tor use yellow because not sure if public
|
||||||
ln_sync=1
|
if [ "${runBehindTor}" != "on" ]; then
|
||||||
else
|
ln_publicColor="${color_yellow}"
|
||||||
ln_sync=0
|
|
||||||
fi
|
fi
|
||||||
ln_version=$($lightningcli_alias -V)
|
|
||||||
if [ ${ln_sync} -eq 0 ]; then
|
# get the public address/URI
|
||||||
if [ ${#ln_getInfo} -eq 0 ]; then
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_address)
|
||||||
ln_baseInfo="${color_red} Not Started | Not Ready Yet"
|
ln_external="${value}"
|
||||||
else
|
|
||||||
ln_baseInfo="
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_peers)
|
||||||
${color_amber}Scanning blocks: ${CLHEIGHT}/${BLOCKHEIGHT}"
|
if [ "${value}" != "" ]; then
|
||||||
fi
|
ln_peersInfo="${color_green}${value} ${color_gray}peers"
|
||||||
else
|
|
||||||
ln_walletbalance=0
|
|
||||||
cl_listfunds=$($lightningcli_alias listfunds 2>/dev/null)
|
|
||||||
for i in $(echo "$cl_listfunds" \
|
|
||||||
|jq .outputs[]|jq 'select(.status=="confirmed")'|grep value|awk '{print $2}'|cut -d, -f1);do
|
|
||||||
ln_walletbalance=$((ln_walletbalance+i))
|
|
||||||
done
|
|
||||||
for i in $(echo "$cl_listfunds" \
|
|
||||||
|jq .outputs[]|jq 'select(.status=="unconfirmed")'|grep value|awk '{print $2}'|cut -d, -f1);do
|
|
||||||
ln_walletbalance_wait=$((ln_walletbalance_wait+i))
|
|
||||||
done
|
|
||||||
# ln_closedchannelbalance: "state": "ONCHAIN" funds in channels
|
|
||||||
for i in $(echo "$cl_listfunds" \
|
|
||||||
|jq .channels[]|jq 'select(.state=="ONCHAIN")'|grep channel_sat|awk '{print $2}'|cut -d, -f1);do
|
|
||||||
ln_closedchannelbalance=$((ln_closedchannelbalance+i))
|
|
||||||
done
|
|
||||||
# ln_pendingonchain: waiting onchain + waiting closed channel funds
|
|
||||||
ln_pendingonchain=$((ln_walletbalance_wait+ln_closedchannelbalance))
|
|
||||||
if [ "${ln_pendingonchain}" = "0" ]; then ln_pendingonchain=""; fi
|
|
||||||
if [ ${#ln_pendingonchain} -gt 0 ]; then ln_pendingonchain="(+${ln_pendingonchain})"; fi
|
|
||||||
# ln_channelbalance: "state": "CHANNELD_NORMAL" funds in channels
|
|
||||||
for i in $(echo "$cl_listfunds" \
|
|
||||||
|jq .channels[]|jq 'select(.state=="CHANNELD_NORMAL")'|grep channel_sat|awk '{print $2}'|cut -d, -f1);do
|
|
||||||
ln_channelbalance=$((ln_channelbalance+i))
|
|
||||||
done
|
|
||||||
if [ ${#ln_channelbalance} -eq 0 ];then
|
|
||||||
ln_channelbalance=0
|
|
||||||
fi
|
|
||||||
# ln_channelbalance_all: all funds in channels
|
|
||||||
for i in $(echo "$cl_listfunds" \
|
|
||||||
|jq .channels[]|grep channel_sat|awk '{print $2}'|cut -d, -f1);do
|
|
||||||
ln_channelbalance_all=$((ln_channelbalance_all+i))
|
|
||||||
done
|
|
||||||
ln_channelbalance_pending=$((ln_channelbalance_all-ln_channelbalance-ln_closedchannelbalance))
|
|
||||||
if [ "${ln_channelbalance_pending}" = "0" ]; then ln_channelbalance_pending=""; fi
|
|
||||||
if [ ${#ln_channelbalance_pending} -gt 0 ]; then ln_channelbalance_pending=" (+${ln_channelbalance_pending})"; fi
|
|
||||||
# - **num_peers** (u32): The total count of peers, connected or with channels
|
|
||||||
# - **num_pending_channels** (u32): The total count of channels being opened
|
|
||||||
# - **num_active_channels** (u32): The total count of channels in normal state
|
|
||||||
# - **num_inactive_channels** (u32): The total count of channels waiting for opening or closing
|
|
||||||
ln_channels_online="$(echo "${ln_getInfo}" | jq -r '.num_active_channels')" 2>/dev/null
|
|
||||||
cl_num_pending_channels="$(echo "${ln_getInfo}" | jq -r '.num_pending_channels')" 2>/dev/null
|
|
||||||
cl_num_inactive_channels="$(echo "${ln_getInfo}" | jq -r '.num_inactive_channels')" 2>/dev/null
|
|
||||||
ln_channels_total=$((ln_channels_online+cl_num_pending_channels+cl_num_inactive_channels))
|
|
||||||
ln_baseInfo="${color_gray}Wallet ${ln_walletbalance} ${netprefix}sat ${ln_pendingonchain}"
|
|
||||||
ln_peers="$(echo "${ln_getInfo}" | jq -r '.num_peers')" 2>/dev/null
|
|
||||||
ln_channelInfo="${ln_channels_online}/${ln_channels_total} Channels ${ln_channelbalance} ${netprefix}sat${ln_channelbalance_pending}"
|
|
||||||
ln_peersInfo="${color_green}${ln_peers} ${color_gray}peers"
|
|
||||||
# - **fees_collected_msat** (msat): Total routing fees collected by this node
|
|
||||||
#ln_dailyfees="$($lncli_alias feereport | jq -r '.day_fee_sum')" 2>/dev/null
|
|
||||||
#ln_weeklyfees="$($lncli_alias feereport | jq -r '.week_fee_sum')" 2>/dev/null
|
|
||||||
#ln_monthlyfees="$($lncli_alias feereport | jq -r '.month_fee_sum')" 2>/dev/null
|
|
||||||
#ln_feeReport="Fee Report (D-W-M): ${color_green}${ln_dailyfees}-${ln_weeklyfees}-${ln_monthlyfees} ${color_gray}sat"
|
|
||||||
ln_feeReport="Fees collected: $(echo "${ln_getInfo}" | jq -r '.fees_collected_msat')"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif [ "${lightning}" == "lnd" ];then
|
|
||||||
ln_baseInfo="-"
|
|
||||||
ln_channelInfo="\n"
|
|
||||||
ln_external="\n"
|
|
||||||
ln_alias="$(sudo cat /mnt/hdd/lnd/${netprefix}lnd.conf | grep "^alias=*" | cut -f2 -d=)"
|
|
||||||
if [ ${#ln_alias} -eq 0 ];then
|
|
||||||
ln_alias=${hostname}
|
|
||||||
fi
|
|
||||||
ln_publicColor=""
|
|
||||||
ln_port=$(sudo cat /mnt/hdd/lnd/${netprefix}lnd.conf | grep "^listen=*" | cut -f2 -d':')
|
|
||||||
if [ ${#ln_port} -eq 0 ]; then
|
|
||||||
ln_port="9735"
|
|
||||||
fi
|
|
||||||
wallet_unlocked=$(sudo tail -n 1 /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log 2> /dev/null | grep -c unlock)
|
|
||||||
if [ "$wallet_unlocked" -gt 0 ] ; then
|
|
||||||
ln_alias="Wallet Locked"
|
|
||||||
else
|
|
||||||
ln_getInfo=$($lncli_alias --macaroonpath=${lnd_macaroon_dir}/readonly.macaroon --tlscertpath=${lnd_dir}/tls.cert getinfo 2>/dev/null)
|
|
||||||
ln_external=$(echo "${ln_getInfo}" | grep "uris" -A 1 | tr -d '\n' | cut -d '"' -f4)
|
|
||||||
ln_tor=$(echo "${ln_external}" | grep -c ".onion")
|
|
||||||
if [ ${ln_tor} -eq 1 ]; then
|
|
||||||
ln_publicColor="${color_green}"
|
|
||||||
else
|
|
||||||
public_check=$(nc -z -w6 ${public_ip} ${ln_port} 2>/dev/null; echo $?)
|
|
||||||
if [ $public_check = "0" ] || [ "${ipv6}" == "on" ]; then
|
|
||||||
# only set yellow/normal because netcat can only say that the port is open - not that it points to this device for sure
|
|
||||||
ln_publicColor="${color_amber}"
|
|
||||||
else
|
|
||||||
ln_publicColor="${color_red}"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
ln_sync=$(echo "${ln_getInfo}" | grep "synced_to_chain" | grep "true" -c)
|
|
||||||
ln_version=$(echo "${ln_getInfo}" | jq -r '.version' | cut -d' ' -f1)
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_ready)
|
||||||
if [ ${ln_sync} -eq 0 ]; then
|
ln_ready="${value}"
|
||||||
if [ ${#ln_getInfo} -eq 0 ]; then
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_sync_chain)
|
||||||
ln_baseInfo="${color_red} Not Started | Not Ready Yet"
|
ln_sync="${value}"
|
||||||
else
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_locked)
|
||||||
ln_baseInfo="${color_amber} Waiting for Chain Sync"
|
ln_locked="${value}"
|
||||||
fi
|
|
||||||
else
|
# lightning is still starting
|
||||||
lnd_walletbalance=$($lncli_alias --macaroonpath=${lnd_macaroon_dir}/readonly.macaroon --tlscertpath=${lnd_dir}/tls.cert walletbalance 2>/dev/null)
|
if [ "${ln_ready}" != "1" ]; then
|
||||||
ln_walletbalance="$(echo "$lnd_walletbalance" | jq -r '.confirmed_balance')" 2>/dev/null
|
|
||||||
ln_walletbalance_wait="$(echo "$lnd_walletbalance" | jq -r '.unconfirmed_balance')" 2>/dev/null
|
ln_baseInfo="\n ${color_red}Not Started | Not Ready Yet | No Data"
|
||||||
if [ "${ln_walletbalance_wait}" = "0" ]; then ln_walletbalance_wait=""; fi
|
ln_peersInfo=""
|
||||||
if [ ${#ln_walletbalance_wait} -gt 0 ]; then ln_walletbalance_wait="(+${ln_walletbalance_wait})"; fi
|
|
||||||
lnd_channelbalance=$($lncli_alias --macaroonpath=${lnd_macaroon_dir}/readonly.macaroon --tlscertpath=${lnd_dir}/tls.cert channelbalance 2>/dev/null)
|
# lightning is still syncing
|
||||||
ln_channelbalance="$(echo "$lnd_channelbalance" | jq -r '.balance')" 2>/dev/null
|
elif [ "${ln_locked}" == "1" ]; then
|
||||||
ln_channelbalance_pending="$(echo "$lnd_channelbalance" | jq -r '.pending_open_balance')" 2>/dev/null
|
|
||||||
if [ "${ln_channelbalance_pending}" = "0" ]; then ln_channelbalance_pending=""; fi
|
ln_baseInfo="${color_amber}Wallet Locked"
|
||||||
if [ ${#ln_channelbalance_pending} -gt 0 ]; then ln_channelbalance_pending=" (+${ln_channelbalance_pending})"; fi
|
ln_peersInfo=""
|
||||||
ln_channels_online="$(echo "${ln_getInfo}" | jq -r '.num_active_channels')" 2>/dev/null
|
|
||||||
ln_channels_total="$($lncli_alias --macaroonpath=${lnd_macaroon_dir}/readonly.macaroon --tlscertpath=${lnd_dir}/tls.cert listchannels | jq '.[] | length')" 2>/dev/null
|
# lightning is still syncing
|
||||||
ln_baseInfo="${color_gray}wallet ${ln_walletbalance} ${netprefix}sat ${ln_walletbalance_wait}"
|
elif [ "${ln_sync}" != "1" ]; then
|
||||||
ln_peers="$(echo "${ln_getInfo}" | jq -r '.num_peers')" 2>/dev/null
|
|
||||||
ln_channelInfo="${ln_channels_online}/${ln_channels_total} Channels ${ln_channelbalance} ${netprefix}sat${ln_channelbalance_pending}"
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_sync_progress)
|
||||||
ln_peersInfo="${color_green}${ln_peers} ${color_gray}peers"
|
ln_syncprogress="${value}"
|
||||||
lnd_feereport=$($lncli_alias --macaroonpath=${lnd_macaroon_dir}/readonly.macaroon --tlscertpath=${lnd_dir}/tls.cert feereport 2>/dev/null)
|
ln_baseInfo="${color_amber}Scanning blocks: ${ln_syncprogress}"
|
||||||
ln_dailyfees="$(echo "$lnd_feereport" | jq -r '.day_fee_sum')" 2>/dev/null
|
ln_peersInfo=""
|
||||||
ln_weeklyfees="$(echo "$lnd_feereport" | jq -r '.week_fee_sum')" 2>/dev/null
|
|
||||||
ln_monthlyfees="$(echo "$lnd_feereport" | jq -r '.month_fee_sum')" 2>/dev/null
|
# OK lightning is ready - get more details
|
||||||
ln_feeReport="Fee Report (D-W-M): ${color_green}${ln_dailyfees}-${ln_weeklyfees}-${ln_monthlyfees} ${color_gray}sat"
|
else
|
||||||
fi
|
|
||||||
fi
|
# create fee report
|
||||||
|
if [ "${lightning}" == "lnd" ]; then
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_fees_daily)
|
||||||
|
ln_dailyfees="${value}"
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_fees_weekly)
|
||||||
|
ln_weeklyfees="${value}"
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_fees_month)
|
||||||
|
ln_monthlyfees="${value}"
|
||||||
|
ln_feeReport="Fee Report (D-W-M): ${color_green}${ln_dailyfees}-${ln_weeklyfees}-${ln_monthlyfees} ${color_gray}${netprefix}sat"
|
||||||
|
else
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_fees_total)
|
||||||
|
ln_totalfees="${value}"
|
||||||
|
ln_feeReport="Fee Report: ${color_green}${ln_totalfees} ${color_gray}${netprefix}sat"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# on-chain wallet info
|
||||||
|
ln_pendingonchain=""
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_wallet_onchain_pending)
|
||||||
|
ln_onchain_pending="${value}"
|
||||||
|
if [ "${ln_onchain_pending}" != "" ] && [ ${ln_onchain_pending} -gt 0 ]; then ln_pendingonchain=" (+${ln_onchain_pending})"; fi
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_wallet_onchain_balance)
|
||||||
|
ln_walletbalance="${value}"
|
||||||
|
ln_baseInfo="${color_gray}Wallet ${ln_walletbalance} ${netprefix}sat ${ln_pendingonchain}"
|
||||||
|
|
||||||
|
# channel pending info
|
||||||
|
ln_channelbalance_pending=""
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_wallet_channels_pending)
|
||||||
|
ln_channels_pending="${value}"
|
||||||
|
if [ "${ln_channels_pending}" != "" ] && [ ${ln_channels_pending} -gt 0 ]; then ln_channelbalance_pending=" (+${ln_channels_pending})"; fi
|
||||||
|
|
||||||
|
# get channel infos
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_wallet_channels_balance)
|
||||||
|
ln_channels_balance="${value}"
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_channels_active)
|
||||||
|
ln_channels_online="${value}"
|
||||||
|
source <(/home/admin/_cache.sh meta ln_${lightning}_${chain}net_channels_total)
|
||||||
|
ln_channels_total="${value}"
|
||||||
|
|
||||||
|
# construct channel info string
|
||||||
|
ln_channelInfo="${ln_channels_online}/${ln_channels_total} Channels ${ln_channels_balance} ${netprefix}sat${ln_channelbalance_pending}"
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# show JoinMarket stats in place of the LND URI only if the Yield Generator is running
|
# show JoinMarket stats in place of the LND URI only if the Yield Generator is running
|
||||||
@ -411,28 +275,19 @@ else
|
|||||||
lastLine="\
|
lastLine="\
|
||||||
${color_yellow}
|
${color_yellow}
|
||||||
${color_yellow}${ln_publicColor}${ln_external}${color_gray}"
|
${color_yellow}${ln_publicColor}${ln_external}${color_gray}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${lightning}" == "cl" ];then
|
if [ "${lightning}" == "cl" ]; then
|
||||||
LNline="C-LIGHTNING ${color_green}${ln_version}\n ${ln_baseInfo}"
|
LNline="C-LIGHTNING ${color_green}${ln_version} ${ln_baseInfo}"
|
||||||
elif [ "${lightning}" == "lnd" ];then
|
elif [ "${lightning}" == "lnd" ]; then
|
||||||
LNline="LND ${color_green}${ln_version} ${ln_baseInfo}"
|
LNline="LND ${color_green}${ln_version} ${ln_baseInfo}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $cpu = 0 ];then
|
|
||||||
templine="on $(uname -m) VM%s%s"
|
|
||||||
else
|
|
||||||
templine="temp %s°C %s°F"
|
|
||||||
fi
|
|
||||||
sleep 5
|
|
||||||
|
|
||||||
LNinfo=" + Lightning Network"
|
LNinfo=" + Lightning Network"
|
||||||
if [ "${lightning}" == "" ]; then
|
if [ "${lightning}" == "" ]; then
|
||||||
LNinfo=""
|
LNinfo=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## get uptime and current date & time
|
|
||||||
uptime=$(uptime --pretty)
|
|
||||||
datetime=$(date -R)
|
datetime=$(date -R)
|
||||||
|
|
||||||
stty sane
|
stty sane
|
||||||
@ -449,10 +304,10 @@ ${color_yellow} ,/ ${color_yellow}%s
|
|||||||
${color_yellow} ,'/ ${color_gray}%s
|
${color_yellow} ,'/ ${color_gray}%s
|
||||||
${color_yellow} ,' / ${color_gray}%s, temp %s°C %s°F
|
${color_yellow} ,' / ${color_gray}%s, temp %s°C %s°F
|
||||||
${color_yellow} ,' /_____ ${color_gray}Free Mem ${color_ram}${ram} ${color_gray} HDDuse ${color_hdd}%s${color_gray}
|
${color_yellow} ,' /_____ ${color_gray}Free Mem ${color_ram}${ram} ${color_gray} HDDuse ${color_hdd}%s${color_gray}
|
||||||
${color_yellow},'_____ ,' ${color_gray}SSH admin@${color_green}${local_ip}${color_gray} d${network_rx} u${network_tx}
|
${color_yellow},'_____ ,' ${color_gray}SSH admin@${color_green}${internet_localip}${color_gray} d${internet_rx} u${internet_tx}
|
||||||
${color_yellow} / ,' ${color_gray}${webinterfaceInfo}
|
${color_yellow} / ,' ${color_gray}
|
||||||
${color_yellow} / ,' ${color_gray}${network} ${color_green}${networkVersion} ${color_gray}${chain}net ${networkConnectionsInfo}
|
${color_yellow} / ,' ${color_gray}${network} ${color_green}${networkVersion}${color_gray}${chain}net ${networkConnectionsInfo}
|
||||||
${color_yellow} /,' ${color_gray}Blocks ${blockInfo} ${color_gray}Sync ${sync_color}${sync} %s
|
${color_yellow} /,' ${color_gray}${blockInfo} %s
|
||||||
${color_yellow} /' ${color_gray}
|
${color_yellow} /' ${color_gray}
|
||||||
${color_yellow} ${color_gray}${LNline}
|
${color_yellow} ${color_gray}${LNline}
|
||||||
${color_yellow} ${color_gray}${ln_channelInfo} ${ln_peersInfo}
|
${color_yellow} ${color_gray}${ln_channelInfo} ${ln_peersInfo}
|
||||||
@ -462,8 +317,8 @@ $lastLine
|
|||||||
"RaspiBlitz v${codeVersion}" \
|
"RaspiBlitz v${codeVersion}" \
|
||||||
"-------------------------------------------" \
|
"-------------------------------------------" \
|
||||||
"Refreshed: ${datetime}" \
|
"Refreshed: ${datetime}" \
|
||||||
"CPU load${load##up*, }" "${tempC}" "${tempF}" \
|
"CPU load${system_cpu_load##up*, }" "${system_temp_celsius}" "${system_temp_fahrenheit}" \
|
||||||
"${hdd}" "${sync_percentage}"
|
"${hdd_used_info}" "${sync_percentage}"
|
||||||
|
|
||||||
if [ ${#undervoltageReports} -gt 0 ] && [ "${undervoltageReports}" != "0" ]; then
|
if [ ${#undervoltageReports} -gt 0 ] && [ "${undervoltageReports}" != "0" ]; then
|
||||||
echo "${undervoltageReports} undervoltage reports - run 'Hardware Test' in menu"
|
echo "${undervoltageReports} undervoltage reports - run 'Hardware Test' in menu"
|
||||||
@ -500,4 +355,3 @@ else
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# EOF
|
|
||||||
|
@ -86,6 +86,8 @@ while :
|
|||||||
|
|
||||||
# get config info if already available (with state value)
|
# get config info if already available (with state value)
|
||||||
source ${infoFile}
|
source ${infoFile}
|
||||||
|
source <(/home/admin/_cache.sh get state message)
|
||||||
|
|
||||||
configExists=$(ls ${configFile} 2>/dev/null | grep -c '.conf')
|
configExists=$(ls ${configFile} 2>/dev/null | grep -c '.conf')
|
||||||
if [ ${configExists} -eq 1 ]; then
|
if [ ${configExists} -eq 1 ]; then
|
||||||
source ${configFile}
|
source ${configFile}
|
||||||
@ -101,18 +103,24 @@ while :
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# TODO: ALSO SEPARATE GUI/ACTION FOR THE SCANNING / WALLET UNLOCK / ERROR DETECTION
|
|
||||||
# if lightning is syncing or scanning
|
# if lightning is syncing or scanning
|
||||||
source <(sudo /home/admin/config.scripts/blitz.statusscan.sh $lightning)
|
source <(/home/admin/_cache.sh get \
|
||||||
if [ "${walletLocked}" == "1" ] || [ "${CLwalletLocked}" == "1" ]; then
|
lightning \
|
||||||
|
ln_default_locked \
|
||||||
|
btc_default_synced \
|
||||||
|
btc_default_sync_initialblockdownload \
|
||||||
|
btc_default_blocks_behind \
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ "${lightning}" != "" ] && [ "${lightning}" != "none" ] && [ "${ln_default_locked}" == "1" ]; then
|
||||||
/home/admin/setup.scripts/eventInfoWait.sh "walletlocked" "" lcd
|
/home/admin/setup.scripts/eventInfoWait.sh "walletlocked" "" lcd
|
||||||
sleep 3
|
sleep 3
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${syncedToChain}" != "1" ]; then
|
if [ "${btc_default_synced}" != "1" ]; then
|
||||||
/home/admin/setup.scripts/eventBlockchainSync.sh lcd
|
/home/admin/setup.scripts/eventBlockchainSync.sh lcd
|
||||||
sleep 10
|
sleep 3
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -2,15 +2,9 @@
|
|||||||
|
|
||||||
echo "Starting the main menu ..."
|
echo "Starting the main menu ..."
|
||||||
|
|
||||||
# CONFIGFILE - configuration of RaspiBlitz
|
|
||||||
configFile="/mnt/hdd/raspiblitz.conf"
|
|
||||||
|
|
||||||
# INFOFILE - state data from bootstrap
|
|
||||||
infoFile="/home/admin/raspiblitz.info"
|
|
||||||
|
|
||||||
# MAIN MENU AFTER SETUP
|
# MAIN MENU AFTER SETUP
|
||||||
source ${infoFile}
|
source /home/admin/raspiblitz.info
|
||||||
source ${configFile}
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# FUNCTIONS
|
# FUNCTIONS
|
||||||
|
|
||||||
@ -38,7 +32,7 @@ confirmation()
|
|||||||
}
|
}
|
||||||
|
|
||||||
# get the local network IP to be displayed on the LCD
|
# get the local network IP to be displayed on the LCD
|
||||||
source <(/home/admin/config.scripts/internet.sh status local)
|
source <(/home/admin/_cache.sh get internet_localip)
|
||||||
|
|
||||||
if [ ${chain} = test ];then
|
if [ ${chain} = test ];then
|
||||||
netprefix="t"
|
netprefix="t"
|
||||||
@ -64,7 +58,7 @@ fi
|
|||||||
if [ ${#lightning} -gt 0 ]; then
|
if [ ${#lightning} -gt 0 ]; then
|
||||||
plus="/ ${lightning} ${plus}"
|
plus="/ ${lightning} ${plus}"
|
||||||
fi
|
fi
|
||||||
BACKTITLE="${localip} / ${hostname} / ${network} ${plus}"
|
BACKTITLE="${internet_localip} / ${hostname} / ${network} ${plus}"
|
||||||
|
|
||||||
# Basic Options
|
# Basic Options
|
||||||
OPTIONS+=(INFO "RaspiBlitz Status Screen")
|
OPTIONS+=(INFO "RaspiBlitz Status Screen")
|
||||||
|
@ -6,9 +6,6 @@
|
|||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# get the local network IP to be displayed on the LCD
|
|
||||||
source <(/home/admin/config.scripts/internet.sh status local)
|
|
||||||
|
|
||||||
# BASIC MENU INFO
|
# BASIC MENU INFO
|
||||||
WIDTH=64
|
WIDTH=64
|
||||||
BACKTITLE="RaspiBlitz"
|
BACKTITLE="RaspiBlitz"
|
||||||
|
@ -8,23 +8,24 @@
|
|||||||
echo "Starting SSH user interface ... (please wait)"
|
echo "Starting SSH user interface ... (please wait)"
|
||||||
|
|
||||||
# CONFIGFILE - configuration of RaspiBlitz
|
# CONFIGFILE - configuration of RaspiBlitz
|
||||||
configFile="/mnt/hdd/raspiblitz.conf"
|
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
||||||
source ${configFile} 2>/dev/null
|
|
||||||
|
|
||||||
# INFOFILE - state data from bootstrap
|
# INFOFILE - state data from bootstrap
|
||||||
infoFile="/home/admin/raspiblitz.info"
|
infoFile="/home/admin/raspiblitz.info"
|
||||||
|
|
||||||
# check if raspiblitz.info exists
|
|
||||||
systemInfoExists=$(ls ${infoFile} | grep -c "${infoFile}")
|
|
||||||
if [ "${systemInfoExists}" != "1" ]; then
|
|
||||||
echo "systemInfoExists(${systemInfoExists})"
|
|
||||||
echo "FAIL: ${infoFile} does not exist .. which it should at this point."
|
|
||||||
echo "Check logs & bootstrap.service for errors and report to devs."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get system state information raspiblitz.info
|
|
||||||
source ${infoFile}
|
source ${infoFile}
|
||||||
|
source <(/home/admin/_cache.sh get state message)
|
||||||
|
|
||||||
|
# only check when first pramater is "newsshsession" (calling from bash.rc)
|
||||||
|
if [ "$1" == "newsshsession" ]; then
|
||||||
|
# if already one ssh session is open - ask on the second to exit to terminal
|
||||||
|
source <(sudo /home/admin/config.scripts/blitz.ssh.sh sessions)
|
||||||
|
if [ "${ssh_session_count}" != "" ] && [ "${ssh_session_count}" != "1" ]; then
|
||||||
|
echo "####################################################################"
|
||||||
|
echo "# You already have another SSH session open ... exiting to terminal."
|
||||||
|
echo "# To open main menu type command: raspiblitz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# check that basic system phase/state information is available
|
# check that basic system phase/state information is available
|
||||||
if [ "${setupPhase}" == "" ] || [ "${state}" == "" ]; then
|
if [ "${setupPhase}" == "" ] || [ "${state}" == "" ]; then
|
||||||
@ -74,13 +75,6 @@ if [ "${state}" = "copystation" ]; then
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# prepare status file
|
|
||||||
# TODO: this is to be replaced and unified together with raspiblitz.info
|
|
||||||
# when we move to a background monitoring thread & redis for WebUI with v1.8
|
|
||||||
sudo touch /var/cache/raspiblitz/raspiblitz.status
|
|
||||||
sudo chown admin:admin /var/cache/raspiblitz/raspiblitz.status
|
|
||||||
sudo chmod 740 /var/cache/raspiblitz/raspiblitz.status
|
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# SSH MENU LOOP
|
# SSH MENU LOOP
|
||||||
# this loop runs until user exits or
|
# this loop runs until user exits or
|
||||||
@ -96,6 +90,11 @@ trap quit INT
|
|||||||
trap quit TERM
|
trap quit TERM
|
||||||
|
|
||||||
echo "# start ssh menu loop"
|
echo "# start ssh menu loop"
|
||||||
|
# put some values on higher scan rate for 10 minute
|
||||||
|
/home/admin/_cache.sh focus ln_default_locked 2 600 >/dev/null
|
||||||
|
/home/admin/_cache.sh focus btc_default_synced 2 600 >/dev/null
|
||||||
|
|
||||||
|
echo "# starting ssh menu loop ... "
|
||||||
exitMenuLoop=0
|
exitMenuLoop=0
|
||||||
doneIBD=0
|
doneIBD=0
|
||||||
while [ ${exitMenuLoop} -eq 0 ]
|
while [ ${exitMenuLoop} -eq 0 ]
|
||||||
@ -105,56 +104,47 @@ do
|
|||||||
# Access fresh system info on every loop
|
# Access fresh system info on every loop
|
||||||
|
|
||||||
# refresh system state information
|
# refresh system state information
|
||||||
source ${infoFile}
|
source <(/home/admin/_cache.sh get \
|
||||||
|
systemscan_runtime \
|
||||||
# gather fresh status scan and store results in memory
|
state \
|
||||||
# TODO: move this into background loop and unify with redis data storage later
|
setupPhase \
|
||||||
#echo "# blitz.statusscan.sh"
|
btc_default_synced \
|
||||||
|
ln_default_locked \
|
||||||
firstStatusScanExists=$(ls /var/cache/raspiblitz/raspiblitz.status | grep -c "raspiblitz.status")
|
message \
|
||||||
#echo "firstStatusScanExists(${firstStatusScanExists})"
|
network \
|
||||||
if [ ${firstStatusScanExists} -eq 1 ]; then
|
chain \
|
||||||
|
lightning \
|
||||||
# run statusscan with timeout - if status scan was not killed it will copy over the
|
internet_localip \
|
||||||
timeout 15 /home/admin/config.scripts/blitz.statusscan.sh ${lightning} > /var/cache/raspiblitz/raspiblitz.status.tmp
|
system_vm_vagrant \
|
||||||
result=$?
|
)
|
||||||
#echo "result(${result})"
|
|
||||||
if [ "${result}" == "0" ]; then
|
|
||||||
# statusscan finished in under 10 seconds - use results
|
|
||||||
cp /var/cache/raspiblitz/raspiblitz.status.tmp /var/cache/raspiblitz/raspiblitz.status
|
|
||||||
else
|
|
||||||
# statusscan blocked and was killed - fallback to old results
|
|
||||||
echo "statusscan blocked (${result}) - fallback to old results"
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
# first time run statusscan without timeout
|
|
||||||
echo "# running statusscan for the first time ... can take time"
|
|
||||||
/home/admin/config.scripts/blitz.statusscan.sh ${lightning} > /var/cache/raspiblitz/raspiblitz.status
|
|
||||||
|
|
||||||
|
# background.scan is not ready yet
|
||||||
|
if [ "${systemscan_runtime}" == "" ]; then
|
||||||
|
echo "# background.scan not ready yet ... (please wait)"
|
||||||
|
sleep 4
|
||||||
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# load statusscan results
|
|
||||||
source /var/cache/raspiblitz/raspiblitz.status 2>/dev/null
|
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# ALWAYS: Handle System States
|
# ALWAYS: Handle System States
|
||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# LND Wallet Unlock
|
# Wallet Unlock
|
||||||
|
|
||||||
if [ "${lndActive}" == "1" ] && [ "${walletLocked}" == "1" ] && [ "${state}" == "ready" ] && [ "${setupPhase}" == "done" ]; then
|
if [ "${state}" == "ready" ] && [ "${setupPhase}" == "done" ] && [ "${ln_default_locked}" == "1" ]; then
|
||||||
#echo "# lnd.unlock.sh"
|
|
||||||
/home/admin/config.scripts/lnd.unlock.sh
|
# unlock lnd
|
||||||
fi
|
if [ "${lightning}" == "lnd" ]; then
|
||||||
|
/home/admin/config.scripts/lnd.unlock.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
# unlock c-lightning
|
||||||
|
if [ "${lightning}" == "cl" ]; then
|
||||||
|
/home/admin/config.scripts/cl.hsmtool.sh unlock
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
|
||||||
# CL Wallet Unlock
|
|
||||||
if [ "${CLwalletLocked}" == "1" ] && [ "${state}" == "ready" ] && [ "${setupPhase}" == "done" ]; then
|
|
||||||
/home/admin/config.scripts/cl.hsmtool.sh unlock
|
|
||||||
sleep 5
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
@ -194,7 +184,7 @@ do
|
|||||||
echo "***********************************************************"
|
echo "***********************************************************"
|
||||||
if [ "${state}" == "reboot" ]; then
|
if [ "${state}" == "reboot" ]; then
|
||||||
echo "SSH again into system with:"
|
echo "SSH again into system with:"
|
||||||
echo "ssh admin@${localip}"
|
echo "ssh admin@${internet_localip}"
|
||||||
echo "Use your password A"
|
echo "Use your password A"
|
||||||
echo "***********************************************************"
|
echo "***********************************************************"
|
||||||
fi
|
fi
|
||||||
@ -203,12 +193,11 @@ do
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# INITIAL BLOCKCHAIN SYNC (SUBLOOP)
|
# MAKE SURE BLOCKCHAIN IS SYNC
|
||||||
#####################################
|
#####################################
|
||||||
if [ "${lightning}" == "" ]; then syncedToChain=1; fi
|
if [ "${setupPhase}" == "done" ] && [ "${state}" == "ready" ] && [ "${btc_default_synced}" != "1" ]; then
|
||||||
if [ "${setupPhase}" == "done" ] && [ "${state}" == "ready" ] && [ "${syncedToChain}" != "1" ]; then
|
|
||||||
/home/admin/setup.scripts/eventBlockchainSync.sh ssh
|
/home/admin/setup.scripts/eventBlockchainSync.sh ssh
|
||||||
sleep 10
|
sleep 3
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -219,6 +208,9 @@ do
|
|||||||
# when setup is done & state is ready .. jump to main menu
|
# when setup is done & state is ready .. jump to main menu
|
||||||
if [ "${setupPhase}" == "done" ] && [ "${state}" == "ready" ]; then
|
if [ "${setupPhase}" == "done" ] && [ "${state}" == "ready" ]; then
|
||||||
# MAIN MENU
|
# MAIN MENU
|
||||||
|
# remove higher scan rate on values
|
||||||
|
/home/admin/_cache.sh focus ln_default_locked -1
|
||||||
|
/home/admin/_cache.sh focus btc_default_synced -1
|
||||||
echo "# 00mainMenu.sh"
|
echo "# 00mainMenu.sh"
|
||||||
/home/admin/00mainMenu.sh
|
/home/admin/00mainMenu.sh
|
||||||
# use the exit code from main menu as signal if menu loop should exited
|
# use the exit code from main menu as signal if menu loop should exited
|
||||||
@ -236,7 +228,7 @@ do
|
|||||||
#echo "# DURING SETUP: Handle System State (${state})"
|
#echo "# DURING SETUP: Handle System State (${state})"
|
||||||
|
|
||||||
# when no HDD on Vagrant - just print info & exit (admin info & exit)
|
# when no HDD on Vagrant - just print info & exit (admin info & exit)
|
||||||
if [ "${state}" == "noHDD" ] && [ ${vagrant} -gt 0 ]; then
|
if [ "${state}" == "noHDD" ] && [ ${system_vm_vagrant} != "0" ]; then
|
||||||
echo "***********************************************************"
|
echo "***********************************************************"
|
||||||
echo "VAGRANT INFO"
|
echo "VAGRANT INFO"
|
||||||
echo "***********************************************************"
|
echo "***********************************************************"
|
||||||
@ -338,4 +330,4 @@ fi
|
|||||||
echo "Blitz command line options: blitzhelp"
|
echo "Blitz command line options: blitzhelp"
|
||||||
echo "Back to menus use command: raspiblitz"
|
echo "Back to menus use command: raspiblitz"
|
||||||
echo
|
echo
|
||||||
exit 0
|
exit 0
|
@ -110,8 +110,8 @@ OPTIONS=()
|
|||||||
|
|
||||||
# LCD options (only when running with LCD screen)
|
# LCD options (only when running with LCD screen)
|
||||||
if [ "${displayClass}" == "lcd" ]; then
|
if [ "${displayClass}" == "lcd" ]; then
|
||||||
OPTIONS+=(s 'Touchscreen' ${touchscreenMenu})
|
OPTIONS+=(s 'Touchscreen' ${touchscreenMenu})
|
||||||
OPTIONS+=(r 'LCD Rotate' ${lcdrotateMenu})
|
OPTIONS+=(r 'LCD Rotate' ${lcdrotateMenu})
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Important basic options
|
# Important basic options
|
||||||
@ -120,24 +120,24 @@ OPTIONS+=(z 'ZeroTier' ${zerotierSwitch})
|
|||||||
|
|
||||||
if [ ${#runBehindTor} -eq 0 ] || [ "${runBehindTor}" = "off" ]; then
|
if [ ${#runBehindTor} -eq 0 ] || [ "${runBehindTor}" = "off" ]; then
|
||||||
OPTIONS+=(y ${dynDomainMenu} ${domainValue})
|
OPTIONS+=(y ${dynDomainMenu} ${domainValue})
|
||||||
OPTIONS+=(b 'BTC UPnP (AutoNAT)' ${networkUPnP})
|
OPTIONS+=(b 'BTC UPnP (AutoNAT)' ${networkUPnP})
|
||||||
fi
|
fi
|
||||||
OPTIONS+=(p 'Parallel Testnet/Signet' ${parallelTestnets})
|
OPTIONS+=(p 'Parallel Testnet/Signet' ${parallelTestnets})
|
||||||
|
|
||||||
# LND & options (only when running LND)
|
# LND & options (only when running LND)
|
||||||
OPTIONS+=(m 'LND LIGHTNING LABS NODE' ${lndNode})
|
OPTIONS+=(m 'LND LIGHTNING LABS NODE' ${lndNode})
|
||||||
if [ "${lndNode}" == "on" ]; then
|
if [ "${lndNode}" == "on" ]; then
|
||||||
OPTIONS+=(a '-LND Channel Autopilot' ${autoPilot})
|
OPTIONS+=(a '-LND Channel Autopilot' ${autoPilot})
|
||||||
OPTIONS+=(k '-LND Accept Keysend' ${keysend})
|
OPTIONS+=(k '-LND Accept Keysend' ${keysend})
|
||||||
OPTIONS+=(c '-LND Circuitbreaker (firewall)' ${circuitbreaker})
|
OPTIONS+=(c '-LND Circuitbreaker (firewall)' ${circuitbreaker})
|
||||||
OPTIONS+=(u '-LND Auto-Unlock' ${autoUnlock})
|
OPTIONS+=(u '-LND Auto-Unlock' ${autoUnlock})
|
||||||
OPTIONS+=(x '-LND StaticChannelBackup on Nextcloud' ${NextcloudBackup})
|
OPTIONS+=(x '-LND StaticChannelBackup on Nextcloud' ${NextcloudBackup})
|
||||||
OPTIONS+=(e '-LND StaticChannelBackup USB Drive' ${LocalBackup})
|
OPTIONS+=(e '-LND StaticChannelBackup USB Drive' ${LocalBackup})
|
||||||
OPTIONS+=(l '-LND UPnP (AutoNAT)' ${autoNatDiscovery})
|
OPTIONS+=(l '-LND UPnP (AutoNAT)' ${autoNatDiscovery})
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# C-Lightning & options/PlugIns
|
# C-Lightning & options/PlugIns
|
||||||
OPTIONS+=(n 'CL C-LIGHTNING NODE' ${clNode})
|
OPTIONS+=(n 'CL C-LIGHTNING NODE' ${clNode})
|
||||||
if [ "${clNode}" == "on" ]; then
|
if [ "${clNode}" == "on" ]; then
|
||||||
OPTIONS+=(o '-CL CLBOSS Automatic Node Manager' ${clbossMenu})
|
OPTIONS+=(o '-CL CLBOSS Automatic Node Manager' ${clbossMenu})
|
||||||
OPTIONS+=(h '-CL Wallet Encryption' ${clEncryptedHSMMenu})
|
OPTIONS+=(h '-CL Wallet Encryption' ${clEncryptedHSMMenu})
|
||||||
@ -254,7 +254,7 @@ Please keep in mind that thru your LND node id & your previous IP history with y
|
|||||||
|
|
||||||
# change Tor
|
# change Tor
|
||||||
anychange=1
|
anychange=1
|
||||||
sudo /home/admin/config.scripts/internet.tor.sh ${choice}
|
sudo /home/admin/config.scripts/tor.network.sh ${choice}
|
||||||
needsReboot=1
|
needsReboot=1
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -272,7 +272,7 @@ if [ "${autoUnlock}" != "${choice}" ] && [ "${lndNode}" == "on" ]; then
|
|||||||
l1="AUTO-UNLOCK IS NOW OFF"
|
l1="AUTO-UNLOCK IS NOW OFF"
|
||||||
if [ "${choice}" = "on" ]; then
|
if [ "${choice}" = "on" ]; then
|
||||||
l1="AUTO-UNLOCK IS NOW ACTIVE"
|
l1="AUTO-UNLOCK IS NOW ACTIVE"
|
||||||
fi
|
fi
|
||||||
dialog --title 'OK' --msgbox "\n${l1}\n" 9 50
|
dialog --title 'OK' --msgbox "\n${l1}\n" 9 50
|
||||||
needsReboot=1
|
needsReboot=1
|
||||||
fi
|
fi
|
||||||
@ -378,7 +378,7 @@ if [ "${zerotierSwitch}" != "${choice}" ]; then
|
|||||||
else
|
else
|
||||||
dialog --msgbox "ZeroTier is now OFF." 5 46
|
dialog --msgbox "ZeroTier is now OFF." 5 46
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "ZeroTier setting unchanged."
|
echo "ZeroTier setting unchanged."
|
||||||
fi
|
fi
|
||||||
@ -496,9 +496,9 @@ if [ "${testnet}" != "${choice}" ] || \
|
|||||||
if [ "${lightning}" == "cl" ] || [ "${cl}" == "on" ]; then
|
if [ "${lightning}" == "cl" ] || [ "${cl}" == "on" ]; then
|
||||||
/home/admin/config.scripts/cl.install.sh on testnet
|
/home/admin/config.scripts/cl.install.sh on testnet
|
||||||
/home/admin/config.scripts/cl.install.sh on signet
|
/home/admin/config.scripts/cl.install.sh on signet
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# just turn al lightning testnets off (even if not on before)
|
# just turn all lightning testnets off (even if not on before)
|
||||||
/home/admin/config.scripts/lnd.install.sh off testnet
|
/home/admin/config.scripts/lnd.install.sh off testnet
|
||||||
/home/admin/config.scripts/lnd.install.sh off signet
|
/home/admin/config.scripts/lnd.install.sh off signet
|
||||||
/home/admin/config.scripts/cl.install.sh off testnet
|
/home/admin/config.scripts/cl.install.sh off testnet
|
||||||
|
@ -130,7 +130,7 @@ case $CHOICE in
|
|||||||
# make sure host is named like in the raspiblitz config
|
# make sure host is named like in the raspiblitz config
|
||||||
echo "Setting the Name/Alias/Hostname .."
|
echo "Setting the Name/Alias/Hostname .."
|
||||||
sudo /home/admin/config.scripts/lnd.setname.sh mainnet ${result}
|
sudo /home/admin/config.scripts/lnd.setname.sh mainnet ${result}
|
||||||
sudo sed -i "s/^hostname=.*/hostname=${result}/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set hostname "${result}"
|
||||||
|
|
||||||
echo "stopping lnd ..."
|
echo "stopping lnd ..."
|
||||||
sudo systemctl stop lnd
|
sudo systemctl stop lnd
|
||||||
|
@ -7,9 +7,6 @@ source /mnt/hdd/raspiblitz.conf
|
|||||||
|
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars cl $1)
|
source <(/home/admin/config.scripts/network.aliases.sh getvars cl $1)
|
||||||
|
|
||||||
# get the local network IP to be displayed on the LCD
|
|
||||||
source <(/home/admin/config.scripts/internet.sh status local)
|
|
||||||
|
|
||||||
# BASIC MENU INFO
|
# BASIC MENU INFO
|
||||||
WIDTH=64
|
WIDTH=64
|
||||||
BACKTITLE="RaspiBlitz"
|
BACKTITLE="RaspiBlitz"
|
||||||
@ -108,7 +105,7 @@ case $CHOICE in
|
|||||||
clear
|
clear
|
||||||
echo
|
echo
|
||||||
# setting value in the raspiblitz.conf
|
# setting value in the raspiblitz.conf
|
||||||
sudo sed -i "s/^lightning=.*/lightning=cl/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lightning "cl"
|
||||||
echo "# OK - lightning=cl is set in /mnt/hdd/raspiblitz.conf"
|
echo "# OK - lightning=cl is set in /mnt/hdd/raspiblitz.conf"
|
||||||
echo
|
echo
|
||||||
echo "Press ENTER to return to main menu."
|
echo "Press ENTER to return to main menu."
|
||||||
|
@ -7,8 +7,6 @@ source /mnt/hdd/raspiblitz.conf
|
|||||||
|
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars cl $1)
|
source <(/home/admin/config.scripts/network.aliases.sh getvars cl $1)
|
||||||
|
|
||||||
# get the local network IP to be displayed on the LCD
|
|
||||||
source <(/home/admin/config.scripts/internet.sh status local)
|
|
||||||
NETclEncryptedHSM="${netprefix}clEncryptedHSM"
|
NETclEncryptedHSM="${netprefix}clEncryptedHSM"
|
||||||
|
|
||||||
# BASIC MENU INFO
|
# BASIC MENU INFO
|
||||||
@ -100,12 +98,8 @@ case $CHOICE in
|
|||||||
sudo rm /home/bitcoin/.lightning/${CLNETWORK}/hsm_secret
|
sudo rm /home/bitcoin/.lightning/${CLNETWORK}/hsm_secret
|
||||||
sudo rm /home/bitcoin/.lightning/${CLNETWORK}/*.*
|
sudo rm /home/bitcoin/.lightning/${CLNETWORK}/*.*
|
||||||
# make sure the new hsm_secret is treated as unencrypted and clear autounlock
|
# make sure the new hsm_secret is treated as unencrypted and clear autounlock
|
||||||
sudo sed -i \
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clEncryptedHSM "off"
|
||||||
"s/^${netprefix}clEncryptedHSM=.*/${netprefix}clEncryptedHSM=off/g" \
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clAutoUnlock "off"
|
||||||
/mnt/hdd/raspiblitz.conf
|
|
||||||
sudo sed -i \
|
|
||||||
"s/^${netprefix}clAutoUnlock=.*/${netprefix}clEncryptedHSM=off/g" \
|
|
||||||
/mnt/hdd/raspiblitz.conf
|
|
||||||
# new
|
# new
|
||||||
/home/admin/config.scripts/cl.hsmtool.sh new $CHAIN
|
/home/admin/config.scripts/cl.hsmtool.sh new $CHAIN
|
||||||
# set the lightningd service file on each active network
|
# set the lightningd service file on each active network
|
||||||
|
@ -5,8 +5,9 @@ echo "get raspiblitz config"
|
|||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# get the local network IP to be displayed on the LCD
|
source <(/home/admin/_cache.sh get internet_localip internet_localiprange)
|
||||||
source <(/home/admin/config.scripts/internet.sh status local)
|
localIP="${internet_localip}"
|
||||||
|
localIPrange="${internet_localiprange}"
|
||||||
|
|
||||||
# BASIC MENU INFO
|
# BASIC MENU INFO
|
||||||
WIDTH=64
|
WIDTH=64
|
||||||
@ -163,10 +164,6 @@ HiddenServicePort 8333 127.0.0.1:8333" | sudo tee -a /etc/tor/torrc
|
|||||||
fi
|
fi
|
||||||
echo "# Running on ${chain}net"
|
echo "# Running on ${chain}net"
|
||||||
echo
|
echo
|
||||||
localIPrange=$(ip addr | grep 'state UP' -A2 | grep -E -v 'docker0|veth' |\
|
|
||||||
grep 'eth0\|wlan0\|enp0\|inet' | tail -n1 | awk '{print $2}' |\
|
|
||||||
awk -F. '{print $1"."$2"."$3".0/24"}')
|
|
||||||
localIP=$(hostname -I | awk '{print $1}')
|
|
||||||
allowIPrange=$(grep -c "rpcallowip=$localIPrange" < /mnt/hdd/${network}/${network}.conf)
|
allowIPrange=$(grep -c "rpcallowip=$localIPrange" < /mnt/hdd/${network}/${network}.conf)
|
||||||
bindIP=$(grep -c "${chain}.rpcbind=$localIP" < /mnt/hdd/${network}/${network}.conf)
|
bindIP=$(grep -c "${chain}.rpcbind=$localIP" < /mnt/hdd/${network}/${network}.conf)
|
||||||
rpcTorService=$(grep -c "HiddenServicePort ${BITCOINRPCPORT} 127.0.0.1:${BITCOINRPCPORT}" < /etc/tor/torrc)
|
rpcTorService=$(grep -c "HiddenServicePort ${BITCOINRPCPORT} 127.0.0.1:${BITCOINRPCPORT}" < /etc/tor/torrc)
|
||||||
@ -226,10 +223,10 @@ HiddenServicePort 8333 127.0.0.1:8333" | sudo tee -a /etc/tor/torrc
|
|||||||
|
|
||||||
case $CHOICE in
|
case $CHOICE in
|
||||||
ADDRPCLAN)
|
ADDRPCLAN)
|
||||||
clear
|
clear
|
||||||
echo "# Make sure the bitcoind wallet is on"
|
echo "# Make sure the bitcoind wallet is on"
|
||||||
/home/admin/config.scripts/network.wallet.sh on
|
/home/admin/config.scripts/network.wallet.sh on
|
||||||
|
|
||||||
restartCore=0
|
restartCore=0
|
||||||
if [ $allowIPrange -eq 0 ]; then
|
if [ $allowIPrange -eq 0 ]; then
|
||||||
echo "rpcallowip=$localIPrange" | sudo tee -a /mnt/hdd/${network}/${network}.conf
|
echo "rpcallowip=$localIPrange" | sudo tee -a /mnt/hdd/${network}/${network}.conf
|
||||||
@ -254,7 +251,7 @@ HiddenServicePort 8333 127.0.0.1:8333" | sudo tee -a /etc/tor/torrc
|
|||||||
clear
|
clear
|
||||||
echo "# Make sure the bitcoind wallet is on"
|
echo "# Make sure the bitcoind wallet is on"
|
||||||
/home/admin/config.scripts/network.wallet.sh on
|
/home/admin/config.scripts/network.wallet.sh on
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh bitcoin${BITCOINRPCPORT} ${BITCOINRPCPORT} ${BITCOINRPCPORT}
|
/home/admin/config.scripts/tor.onion-service.sh bitcoin${BITCOINRPCPORT} ${BITCOINRPCPORT} ${BITCOINRPCPORT}
|
||||||
echo
|
echo
|
||||||
echo "The address of the local node is: $TorRPCaddress"
|
echo "The address of the local node is: $TorRPCaddress"
|
||||||
echo
|
echo
|
||||||
@ -267,7 +264,7 @@ HiddenServicePort 8333 127.0.0.1:8333" | sudo tee -a /etc/tor/torrc
|
|||||||
CREDENTIALS)
|
CREDENTIALS)
|
||||||
clear
|
clear
|
||||||
showRPCcredentials
|
showRPCcredentials
|
||||||
echo
|
echo
|
||||||
echo "Press ENTER to return to the menu."
|
echo "Press ENTER to return to the menu."
|
||||||
read key
|
read key
|
||||||
;;
|
;;
|
||||||
@ -275,7 +272,7 @@ HiddenServicePort 8333 127.0.0.1:8333" | sudo tee -a /etc/tor/torrc
|
|||||||
# remove old entry
|
# remove old entry
|
||||||
sudo sed -i "/# Hidden Service for BITCOIN RPC (mainnet, testnet, signet)/,/^\s*$/{d}" /etc/tor/torrc
|
sudo sed -i "/# Hidden Service for BITCOIN RPC (mainnet, testnet, signet)/,/^\s*$/{d}" /etc/tor/torrc
|
||||||
# remove Hidden Service
|
# remove Hidden Service
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off bitcoin${BITCOINRPCPORT}
|
/home/admin/config.scripts/tor.onion-service.sh off bitcoin${BITCOINRPCPORT}
|
||||||
sudo ufw deny from $localIPrange to any port ${BITCOINRPCPORT}
|
sudo ufw deny from $localIPrange to any port ${BITCOINRPCPORT}
|
||||||
restartCore=0
|
restartCore=0
|
||||||
if [ $allowIPrange -gt 0 ]; then
|
if [ $allowIPrange -gt 0 ]; then
|
||||||
|
@ -5,9 +5,6 @@ echo "get raspiblitz config"
|
|||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# get the local network IP to be displayed on the LCD
|
|
||||||
source <(/home/admin/config.scripts/internet.sh status local)
|
|
||||||
|
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars lnd $1)
|
source <(/home/admin/config.scripts/network.aliases.sh getvars lnd $1)
|
||||||
|
|
||||||
# make sure lnd wallet is unlocked
|
# make sure lnd wallet is unlocked
|
||||||
@ -136,7 +133,7 @@ case $CHOICE in
|
|||||||
clear
|
clear
|
||||||
echo
|
echo
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^lightning=.*/lightning=lnd/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lightning "lnd"
|
||||||
echo "# OK - lightning=lnd is set in /mnt/hdd/raspiblitz.conf"
|
echo "# OK - lightning=lnd is set in /mnt/hdd/raspiblitz.conf"
|
||||||
echo
|
echo
|
||||||
echo "Press ENTER to return to main menu."
|
echo "Press ENTER to return to main menu."
|
||||||
|
@ -14,7 +14,7 @@ release()
|
|||||||
- Download the new SD card image to your laptop:
|
- Download the new SD card image to your laptop:
|
||||||
https://github.com/rootzoll/raspiblitz
|
https://github.com/rootzoll/raspiblitz
|
||||||
- Flash that SD card image to a new SD card (best)
|
- Flash that SD card image to a new SD card (best)
|
||||||
or override old SD card after shutdown (fallback)
|
or override old SD card after shutdown (fallback)
|
||||||
- Choose 'Start Update' below.
|
- Choose 'Start Update' below.
|
||||||
|
|
||||||
No need to close channels or download blockchain again.
|
No need to close channels or download blockchain again.
|
||||||
@ -100,9 +100,9 @@ patchNotice()
|
|||||||
It means it will sync the program code with the
|
It means it will sync the program code with the
|
||||||
GitHub repo for your version branch v${codeVersion}.
|
GitHub repo for your version branch v${codeVersion}.
|
||||||
|
|
||||||
This can be useful if there are important updates
|
This can be useful if there are important updates
|
||||||
in between releases to fix severe bugs. It can also
|
in between releases to fix severe bugs. It can also
|
||||||
be used to sync your own code with your RaspiBlitz
|
be used to sync your own code with your RaspiBlitz
|
||||||
if you are developing on your own GitHub Repo.
|
if you are developing on your own GitHub Repo.
|
||||||
|
|
||||||
BUT BEWARE: This means RaspiBlitz will contact GitHub,
|
BUT BEWARE: This means RaspiBlitz will contact GitHub,
|
||||||
@ -268,7 +268,7 @@ grab the latest LND release published on the LND GitHub page (also release candi
|
|||||||
There will be no security checks on signature, etc.
|
There will be no security checks on signature, etc.
|
||||||
|
|
||||||
This update mode is only recommended for testing and
|
This update mode is only recommended for testing and
|
||||||
development nodes with no serious funding.
|
development nodes with no serious funding.
|
||||||
|
|
||||||
Do you really want to update LND now?
|
Do you really want to update LND now?
|
||||||
" 16 58
|
" 16 58
|
||||||
@ -337,7 +337,7 @@ grab the latest C-lightning release published on the C-lightning GitHub page (al
|
|||||||
There will be no security checks on signature, etc.
|
There will be no security checks on signature, etc.
|
||||||
|
|
||||||
This update mode is only recommended for testing and
|
This update mode is only recommended for testing and
|
||||||
development nodes with no serious funding.
|
development nodes with no serious funding.
|
||||||
|
|
||||||
Do you really want to update C-lightning now?
|
Do you really want to update C-lightning now?
|
||||||
" 16 58
|
" 16 58
|
||||||
@ -404,9 +404,8 @@ Do you really want to update Bitcoin Core now?
|
|||||||
source <(sudo -u admin /home/admin/config.scripts/bitcoin.update.sh tested)
|
source <(sudo -u admin /home/admin/config.scripts/bitcoin.update.sh tested)
|
||||||
if [ ${#error} -gt 0 ]; then
|
if [ ${#error} -gt 0 ]; then
|
||||||
whiptail --title "ERROR" --msgbox "${error}" 8 30
|
whiptail --title "ERROR" --msgbox "${error}" 8 30
|
||||||
else
|
|
||||||
sleep 8
|
|
||||||
fi
|
fi
|
||||||
|
/home/admin/config.scripts/blitz.shutdown.sh reboot
|
||||||
;;
|
;;
|
||||||
RECKLESS)
|
RECKLESS)
|
||||||
whiptail --title "UNTESTED Bitcoin Core update to ${bitcoinLatestVersion}" --yes-button "Cancel" \
|
whiptail --title "UNTESTED Bitcoin Core update to ${bitcoinLatestVersion}" --yes-button "Cancel" \
|
||||||
@ -426,12 +425,12 @@ Do you really want to update Bitcoin Core now?
|
|||||||
source <(sudo -u admin /home/admin/config.scripts/bitcoin.update.sh reckless)
|
source <(sudo -u admin /home/admin/config.scripts/bitcoin.update.sh reckless)
|
||||||
if [ ${#error} -gt 0 ]; then
|
if [ ${#error} -gt 0 ]; then
|
||||||
whiptail --title "ERROR" --msgbox "${error}" 8 30
|
whiptail --title "ERROR" --msgbox "${error}" 8 30
|
||||||
else
|
|
||||||
sleep 8
|
|
||||||
fi
|
fi
|
||||||
|
/home/admin/config.scripts/blitz.shutdown.sh reboot
|
||||||
;;
|
;;
|
||||||
CUSTOM)
|
CUSTOM)
|
||||||
sudo -u admin /home/admin/config.scripts/bitcoin.update.sh custom
|
sudo -u admin /home/admin/config.scripts/bitcoin.update.sh custom
|
||||||
|
/home/admin/config.scripts/blitz.shutdown.sh reboot
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@ -490,7 +489,7 @@ if [ "${runBehindTor}" == "on" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
CHOICE_HEIGHT=$(("${#OPTIONS[@]}/2+1"))
|
CHOICE_HEIGHT=$(("${#OPTIONS[@]}/2+1"))
|
||||||
HEIGHT=$((CHOICE_HEIGHT+6))
|
HEIGHT=$((CHOICE_HEIGHT+6))
|
||||||
CHOICE=$(dialog --clear \
|
CHOICE=$(dialog --clear \
|
||||||
--backtitle "" \
|
--backtitle "" \
|
||||||
--title " Update Options " \
|
--title " Update Options " \
|
||||||
@ -536,9 +535,9 @@ case $CHOICE in
|
|||||||
/home/admin/config.scripts/bonus.pyblock.sh update
|
/home/admin/config.scripts/bonus.pyblock.sh update
|
||||||
;;
|
;;
|
||||||
TOR)
|
TOR)
|
||||||
sudo /home/admin/config.scripts/internet.tor.sh update
|
sudo /home/admin/config.scripts/tor.network.sh update
|
||||||
;;
|
;;
|
||||||
MEMPOOL)
|
MEMPOOL)
|
||||||
/home/admin/config.scripts/bonus.mempool.sh update
|
/home/admin/config.scripts/bonus.mempool.sh update
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -90,6 +90,10 @@ echo "******************************"
|
|||||||
echo "Sweep all possible Funds"
|
echo "Sweep all possible Funds"
|
||||||
echo "******************************"
|
echo "******************************"
|
||||||
|
|
||||||
|
# raise high focus on onchain wallet balance & pending for the next 15min
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$chain}net_wallet_onchain_pending 0 900
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$chain}net_wallet_onchain_balance 0 900
|
||||||
|
|
||||||
# execute command
|
# execute command
|
||||||
if [ ${LNTYPE} = "cl" ];then
|
if [ ${LNTYPE} = "cl" ];then
|
||||||
# withdraw destination satoshi [feerate] [minconf] [utxos]
|
# withdraw destination satoshi [feerate] [minconf] [utxos]
|
||||||
|
@ -67,6 +67,11 @@ else
|
|||||||
echo "# OK - the chain is synced"
|
echo "# OK - the chain is synced"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# raise high focus on lightning channels next 1 hour
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$CHAIN}_channels_active 0 3600
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$CHAIN}_channels_inactive 0 3600
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$CHAIN}_channels_total 0 3600
|
||||||
|
|
||||||
echo "#####################################"
|
echo "#####################################"
|
||||||
echo "# Closing All Channels (EXPERIMENTAL)"
|
echo "# Closing All Channels (EXPERIMENTAL)"
|
||||||
echo "#####################################"
|
echo "#####################################"
|
||||||
|
@ -16,6 +16,9 @@ fi
|
|||||||
|
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars $1 $2)
|
source <(/home/admin/config.scripts/network.aliases.sh getvars $1 $2)
|
||||||
|
|
||||||
|
# raise high focus on lightning peers next 5min
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$CHAIN}_peers 0 300
|
||||||
|
|
||||||
# let user enter a <pubkey>@host
|
# let user enter a <pubkey>@host
|
||||||
l1="Enter the node pubkey address with host information:"
|
l1="Enter the node pubkey address with host information:"
|
||||||
l2="example -----> 024ddf33[...]1f5f9f3@91.65.1.38:9735"
|
l2="example -----> 024ddf33[...]1f5f9f3@91.65.1.38:9735"
|
||||||
|
@ -17,7 +17,6 @@ if [ ${#chain} -eq 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars $1 $2)
|
source <(/home/admin/config.scripts/network.aliases.sh getvars $1 $2)
|
||||||
|
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars $LNTYPE ${chain}net)
|
source <(/home/admin/config.scripts/network.aliases.sh getvars $LNTYPE ${chain}net)
|
||||||
|
|
||||||
# check if chain is in sync
|
# check if chain is in sync
|
||||||
@ -127,6 +126,9 @@ else
|
|||||||
sudo apt-get install qrencode -y > /dev/null
|
sudo apt-get install qrencode -y > /dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# raise high focus on lightning channel balance next 5min
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$CHAIN}_channels_balance 0 300
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "********************"
|
echo "********************"
|
||||||
echo "Here is your invoice"
|
echo "Here is your invoice"
|
||||||
|
@ -81,6 +81,10 @@ fi
|
|||||||
echo "generating QR code ... please wait"
|
echo "generating QR code ... please wait"
|
||||||
/home/admin/config.scripts/blitz.display.sh qr "$network:${address}"
|
/home/admin/config.scripts/blitz.display.sh qr "$network:${address}"
|
||||||
|
|
||||||
|
# raise high focus on onchain wallet balance & pending for the next 15min
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$chain}net_wallet_onchain_pending 0 900
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$chain}net_wallet_onchain_balance 0 900
|
||||||
|
|
||||||
# dialog with instructions while QR code is shown on LCD
|
# dialog with instructions while QR code is shown on LCD
|
||||||
whiptail --backtitle "Fund your onchain wallet" \
|
whiptail --backtitle "Fund your onchain wallet" \
|
||||||
--title "Send ${coininfo}" \
|
--title "Send ${coininfo}" \
|
||||||
|
@ -79,6 +79,11 @@ if [ ${numConnectedPeers} -eq 0 ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# raise high focus on lightning channels next 1 hour
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$CHAIN}_channels_pending 0 3600
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$CHAIN}_channels_total 0 3600
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$CHAIN}_channels_active 0 3600
|
||||||
|
|
||||||
# let user pick a peer to open a channels with
|
# let user pick a peer to open a channels with
|
||||||
OPTIONS=()
|
OPTIONS=()
|
||||||
if [ $LNTYPE = cl ];then
|
if [ $LNTYPE = cl ];then
|
||||||
|
@ -104,6 +104,9 @@ elif [ $LNTYPE = lnd ];then
|
|||||||
command="$lncli_alias sendpayment --force --pay_req=${invoice}"
|
command="$lncli_alias sendpayment --force --pay_req=${invoice}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# raise high focus on lightning channel balance next 5min
|
||||||
|
/home/admin/_cache.sh focus ln_${LNTYPE}_${$CHAIN}_channels_balance 0 300
|
||||||
|
|
||||||
# info output
|
# info output
|
||||||
clear
|
clear
|
||||||
echo "************************************************************"
|
echo "************************************************************"
|
||||||
|
938
home.admin/_background.scan.sh
Executable file
938
home.admin/_background.scan.sh
Executable file
@ -0,0 +1,938 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script will loop in the background to gather basic system information.
|
||||||
|
# It will place those values in the `_cache.sh` system and take care about updates.
|
||||||
|
# You can use `_cache.sh focus` to make the scanning of a certain value more often.
|
||||||
|
|
||||||
|
# LOGS see: sudo journalctl -f -u background.scan
|
||||||
|
|
||||||
|
# start with parameter "only-one-loop" (use for testing)
|
||||||
|
ONLY_ONE_LOOP="0"
|
||||||
|
if [ "$1" == "only-one-loop" ]; then
|
||||||
|
ONLY_ONE_LOOP="1"
|
||||||
|
fi
|
||||||
|
# start with parameter "install" (to setup service as systemd background running)
|
||||||
|
if [ "$1" == "install" ]; then
|
||||||
|
|
||||||
|
# write systemd service
|
||||||
|
cat > /etc/systemd/system/background.scan.service <<EOF
|
||||||
|
# Monitor the RaspiBlitz State
|
||||||
|
# /etc/systemd/system/background.scan.service
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=RaspiBlitz Background Monitoring Service
|
||||||
|
Wants=redis.service
|
||||||
|
After=redis.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=root
|
||||||
|
Group=root
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/home/admin/_background.scan.sh
|
||||||
|
Restart=always
|
||||||
|
TimeoutSec=10
|
||||||
|
RestartSec=10
|
||||||
|
StandardOutput=journal
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# enable systemd service & exit
|
||||||
|
sudo systemctl enable background.scan
|
||||||
|
echo "# background.scan.service will start after reboot or calling: sudo systemctl start background.scan"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check user running
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "FAIL: need to be run as root user"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# CONFIGFILE - configuration of RaspiBlitz
|
||||||
|
configFile="/mnt/hdd/raspiblitz.conf"
|
||||||
|
|
||||||
|
# INFOFILE - persited state data
|
||||||
|
infoFile="/home/admin/raspiblitz.info"
|
||||||
|
|
||||||
|
# better readbale seconds (slightly off to reduce same time window trigger)
|
||||||
|
MINUTE=60
|
||||||
|
MINUTE2=115
|
||||||
|
MINUTE5=290
|
||||||
|
MINUTE10=585
|
||||||
|
HOURQUATER=880
|
||||||
|
HOURHALF=1775
|
||||||
|
HOUR=3570
|
||||||
|
DAYHALF=43165
|
||||||
|
DAY=86360
|
||||||
|
WEEK=604800
|
||||||
|
MONTH=2592000
|
||||||
|
YEAR=31536000
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
# INIT
|
||||||
|
####################################################################
|
||||||
|
|
||||||
|
# init values
|
||||||
|
/home/admin/_cache.sh set system_temp_celsius "0"
|
||||||
|
/home/admin/_cache.sh set system_temp_fahrenheit "0"
|
||||||
|
/home/admin/_cache.sh set system_count_longscan "0"
|
||||||
|
/home/admin/_cache.sh set system_count_undervoltage "0"
|
||||||
|
/home/admin/_cache.sh set system_count_start_blockchain "0"
|
||||||
|
/home/admin/_cache.sh set system_count_start_lightning "0"
|
||||||
|
/home/admin/_cache.sh set system_count_start_tui "0"
|
||||||
|
|
||||||
|
# import all base values from raspiblitz.info
|
||||||
|
echo "importing: ${infoFile}"
|
||||||
|
/home/admin/_cache.sh import $infoFile
|
||||||
|
|
||||||
|
# import all base values from raspiblitz.config (if exists)
|
||||||
|
configFileExists=$(ls ${configFile} | grep -c "${configFile}")
|
||||||
|
if [ "${configFileExists}" != "0" ]; then
|
||||||
|
echo "importing: ${configFile}"
|
||||||
|
/home/admin/_cache.sh import ${configFile}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# version info
|
||||||
|
echo "importing: _version.info"
|
||||||
|
/home/admin/_cache.sh import /home/admin/_version.info
|
||||||
|
|
||||||
|
# basic hardware info (will not change)
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
system_board \
|
||||||
|
system_ram_mb \
|
||||||
|
system_ram_gb \
|
||||||
|
)
|
||||||
|
if [ "${stillvalid}" == "0" ]; then
|
||||||
|
source <(/home/admin/config.scripts/blitz.hardware.sh status)
|
||||||
|
/home/admin/_cache.sh set system_board "${board}"
|
||||||
|
/home/admin/_cache.sh set system_ram_mb "${ramMB}"
|
||||||
|
/home/admin/_cache.sh set system_ram_gb "${ramGB}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# VM detect vagrant
|
||||||
|
source <(/home/admin/_cache.sh valid system_vm_vagrant)
|
||||||
|
if [ "${stillvalid}" == "0" ]; then
|
||||||
|
vagrant=$(df | grep -c "/vagrant")
|
||||||
|
/home/admin/_cache.sh set system_vm_vagrant "${vagrant}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# flag that init was done (will be checked on each loop)
|
||||||
|
/home/admin/_cache.sh set system_init_time "$(date +%s)"
|
||||||
|
|
||||||
|
while [ 1 ]
|
||||||
|
do
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
# LOOP DATA (BASIC SYSTEM)
|
||||||
|
# data that is always available
|
||||||
|
####################################################################
|
||||||
|
|
||||||
|
# check that redis contains init data (detect possible restart of redis)
|
||||||
|
source <(/home/admin/_cache.sh get system_init_time)
|
||||||
|
if [ "${system_init_time}" == "" ]; then
|
||||||
|
echo "FAIL: CACHE IS MISSING INIT DATA ... exiting to let systemd restart"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# measure time of loop scan
|
||||||
|
startTime=$(date +%s)
|
||||||
|
|
||||||
|
#################
|
||||||
|
# BASIC SYSTEM
|
||||||
|
|
||||||
|
# uptime just do on every run
|
||||||
|
system_up=$(cat /proc/uptime | grep -o '^[0-9]\+')
|
||||||
|
/home/admin/_cache.sh set system_up "${system_up}"
|
||||||
|
|
||||||
|
# cpu load
|
||||||
|
cpu_load=$(w | head -n 1 | cut -d 'v' -f2 | cut -d ':' -f2)
|
||||||
|
/home/admin/_cache.sh set system_cpu_load "${cpu_load}"
|
||||||
|
|
||||||
|
# cpu temp - no measurement in a VM
|
||||||
|
if [ -d "/sys/class/thermal/thermal_zone0/" ]; then
|
||||||
|
cpu=$(cat /sys/class/thermal/thermal_zone0/temp)
|
||||||
|
tempC=$((cpu/1000))
|
||||||
|
tempF=$(((tempC * 18 + 325) / 10))
|
||||||
|
/home/admin/_cache.sh set system_temp_celsius "${tempC}"
|
||||||
|
/home/admin/_cache.sh set system_temp_fahrenheit "${tempF}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ram
|
||||||
|
ram=$(free -m | grep Mem | awk '{ print $2 }')
|
||||||
|
ram_avail=$(free -m | grep Mem | awk '{ print $7 }')
|
||||||
|
/home/admin/_cache.sh set system_ram_mb "${ram}"
|
||||||
|
/home/admin/_cache.sh set system_ram_available_mb "${ram_avail}"
|
||||||
|
|
||||||
|
# undervoltage
|
||||||
|
source <(/home/admin/_cache.sh valid system_count_undervoltage)
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE} ]; then
|
||||||
|
echo "updating: undervoltage"
|
||||||
|
countReports=$(cat /var/log/syslog | grep -c "Under-voltage detected!")
|
||||||
|
/home/admin/_cache.sh set system_count_undervoltage "${countReports}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#################
|
||||||
|
# TOR
|
||||||
|
|
||||||
|
source <(/home/admin/_cache.sh valid tor_web_addr)
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE5} ]; then
|
||||||
|
echo "updating: tor"
|
||||||
|
/home/admin/_cache.sh set tor_web_addr "$(cat /mnt/hdd/tor/web80/hostname 2>/dev/null)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#################
|
||||||
|
# UPS (uninterruptible power supply)
|
||||||
|
|
||||||
|
source <(/home/admin/_cache.sh valid system_ups_status)
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE} ]; then
|
||||||
|
echo "updating: /home/admin/config.scripts/blitz.ups.sh status"
|
||||||
|
source <(/home/admin/config.scripts/blitz.ups.sh status)
|
||||||
|
/home/admin/_cache.sh set system_ups_status "${upsStatus}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#################
|
||||||
|
# DATADRIVE
|
||||||
|
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
hdd_mounted \
|
||||||
|
hdd_ssd \
|
||||||
|
hdd_btrfs \
|
||||||
|
hdd_raid \
|
||||||
|
hdd_uasp \
|
||||||
|
hdd_capacity_bytes \
|
||||||
|
hdd_capacity_gb \
|
||||||
|
hdd_free_bytes \
|
||||||
|
hdd_free_gb \
|
||||||
|
hdd_used_info \
|
||||||
|
hdd_blockchain_data \
|
||||||
|
)
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE2} ]; then
|
||||||
|
echo "updating: /home/admin/config.scripts/blitz.datadrive.sh status"
|
||||||
|
source <(/home/admin/config.scripts/blitz.datadrive.sh status)
|
||||||
|
/home/admin/_cache.sh set hdd_mounted "${isMounted}"
|
||||||
|
/home/admin/_cache.sh set hdd_ssd "${isSSD}"
|
||||||
|
/home/admin/_cache.sh set hdd_btrfs "${isBTRFS}"
|
||||||
|
/home/admin/_cache.sh set hdd_raid "${isRaid}"
|
||||||
|
/home/admin/_cache.sh set hdd_uasp "${hddAdapterUSAP}"
|
||||||
|
/home/admin/_cache.sh set hdd_capacity_bytes "${hddBytes}"
|
||||||
|
/home/admin/_cache.sh set hdd_capacity_gb "${hddGigaBytes}"
|
||||||
|
/home/admin/_cache.sh set hdd_free_bytes "${hddDataFreeBytes}"
|
||||||
|
/home/admin/_cache.sh set hdd_free_gb "${hddDataFreeGB}"
|
||||||
|
/home/admin/_cache.sh set hdd_used_info "${hddUsedInfo}"
|
||||||
|
/home/admin/_cache.sh set hdd_blockchain_data "${hddBlocksBitcoin}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#################
|
||||||
|
# INTERNET
|
||||||
|
|
||||||
|
# GLOBAL & PUBLIC IP
|
||||||
|
source <(/home/admin/_cache.sh get runBehindTor)
|
||||||
|
if [ "${runBehindTor}" == "off" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
internet_public_ipv6 \
|
||||||
|
internet_public_ip_detected \
|
||||||
|
internet_public_ip_forced \
|
||||||
|
internet_public_ip_clean \
|
||||||
|
)
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${HOUR} ]; then
|
||||||
|
echo "updating: /home/admin/config.scripts/internet.sh status global"
|
||||||
|
source <(/home/admin/config.scripts/internet.sh status global)
|
||||||
|
/home/admin/_cache.sh set internet_public_ipv6 "${ipv6}"
|
||||||
|
# globalip --> ip detected from the outside
|
||||||
|
/home/admin/_cache.sh set internet_public_ip_detected "${globalip}"
|
||||||
|
# publicip --> may consider the static IP overide by raspiblitz config
|
||||||
|
/home/admin/_cache.sh set internet_public_ip_forced "${publicip}"
|
||||||
|
# cleanip --> the publicip with no brackets like used on IPv6
|
||||||
|
/home/admin/_cache.sh set internet_public_ip_clean "${cleanip}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# LOCAL IP & data
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
internet_localip \
|
||||||
|
internet_localiprange \
|
||||||
|
internet_dhcp \
|
||||||
|
internet_rx \
|
||||||
|
internet_tx \
|
||||||
|
)
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE} ]; then
|
||||||
|
echo "updating: /home/admin/config.scripts/internet.sh status local"
|
||||||
|
source <(/home/admin/config.scripts/internet.sh status local)
|
||||||
|
/home/admin/_cache.sh set internet_localip "${localip}"
|
||||||
|
/home/admin/_cache.sh set internet_localiprange "${localiprange}"
|
||||||
|
/home/admin/_cache.sh set internet_dhcp "${dhcp}"
|
||||||
|
/home/admin/_cache.sh set internet_rx "${network_rx}"
|
||||||
|
/home/admin/_cache.sh set internet_tx "${network_tx}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# connection to internet
|
||||||
|
source <(/home/admin/_cache.sh valid internet_online)
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${HOURQUATER} ]; then
|
||||||
|
echo "updating: /home/admin/config.scripts/internet.sh status online"
|
||||||
|
source <(/home/admin/config.scripts/internet.sh status online)
|
||||||
|
/home/admin/_cache.sh set internet_online "${online}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# exit if still setup or higher system stopped
|
||||||
|
source <(/home/admin/_cache.sh get setupPhase state)
|
||||||
|
if [ "${setupPhase}" != "done" ] ||
|
||||||
|
[ "${state}" == "" ] ||
|
||||||
|
[ "${state}" == "copysource" ] ||
|
||||||
|
[ "${state}" == "copytarget" ]; then
|
||||||
|
|
||||||
|
# dont skip when setup/recovery is in "waitsync" state
|
||||||
|
if [ "${state}" != "waitsync" ]; then
|
||||||
|
endTime=$(date +%s)
|
||||||
|
runTime=$((${endTime}-${startTime}))
|
||||||
|
# write info on scan runtime into cache (use as signal that the first systemscan worked)
|
||||||
|
/home/admin/_cache.sh set systemscan_runtime "${runTime}"
|
||||||
|
echo "Skipping deeper system scan - setupPhase(${setupPhase}) state(${state})"
|
||||||
|
sleep 1
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
# LOOP DATA (DEEPER SYSTEM)
|
||||||
|
# data that may be based on setup phase or configuration
|
||||||
|
####################################################################
|
||||||
|
|
||||||
|
# by default will only scan the btc & lightning instances that are set to default
|
||||||
|
# but can scan/monitor all that are switched on when `system_scan_all=on` in config
|
||||||
|
|
||||||
|
# read/update config values
|
||||||
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
|
# check if a one time `system_scan_all_once=1` is set on cache
|
||||||
|
# will trigger a scan_all for one loop
|
||||||
|
source <(/home/admin/_cache.sh get system_scan_all_once)
|
||||||
|
if [ "${system_scan_all_once}" == "1" ]; then
|
||||||
|
echo "system_scan_all_once found --> TRIGGER system_scan_all for one loop"
|
||||||
|
/home/admin/_cache.sh set system_scan_all_once "0"
|
||||||
|
system_scan_all="on"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if a temporary `system_scan_all_temp=1` is set on cache
|
||||||
|
# will trigger a scan_all until its gone or `0`
|
||||||
|
source <(/home/admin/_cache.sh get system_scan_all_temp)
|
||||||
|
if [ "${system_scan_all_temp}" == "1" ]; then
|
||||||
|
echo "system_scan_all_temp found --> TRIGGER system_scan_all"
|
||||||
|
system_scan_all="on"
|
||||||
|
fi
|
||||||
|
|
||||||
|
###################
|
||||||
|
# BITCOIN
|
||||||
|
|
||||||
|
if [ "${network}" == "bitcoin" ]; then
|
||||||
|
|
||||||
|
# loop thru mainet, testnet & signet
|
||||||
|
networks=( "main" "test" "sig" )
|
||||||
|
for CHAIN in "${networks[@]}"
|
||||||
|
do
|
||||||
|
|
||||||
|
# check if is default chain (multiple networks can run at the same time - but only one is default)
|
||||||
|
isDefaultChain=$(echo "${CHAIN}" | grep -c "${chain}")
|
||||||
|
|
||||||
|
# skip if network is not on by config
|
||||||
|
if [ "${CHAIN}" == "main" ] && [ "${mainnet}" != "on" ] && [ "${isDefaultChain}" != "1" ]; then
|
||||||
|
#echo "skip btc ${CHAIN}net scan - because its off"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "${CHAIN}" == "test" ] && [ "${testnet}" != "on" ]; then
|
||||||
|
#echo "skip btc ${CHAIN}net scan - because its off"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "${CHAIN}" == "sig" ] && [ "${signet}" != "on" ]; then
|
||||||
|
#echo "skip btc ${CHAIN}net scan - because its off"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# only scan non defaults when set by parameter from config
|
||||||
|
if [ "${system_scan_all}" != "on" ]; then
|
||||||
|
if [ "${isDefaultChain}" != "1" ]; then
|
||||||
|
#echo "skip btc ${CHAIN}net scan - because its not default"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update basic status values always
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
btc_${CHAIN}net_version \
|
||||||
|
btc_${CHAIN}net_running \
|
||||||
|
btc_${CHAIN}net_ready \
|
||||||
|
btc_${CHAIN}net_online \
|
||||||
|
btc_${CHAIN}net_error_short \
|
||||||
|
btc_${CHAIN}net_error_full \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
btc_default_version \
|
||||||
|
btc_default_running \
|
||||||
|
btc_default_ready \
|
||||||
|
btc_default_online \
|
||||||
|
btc_default_error_short \
|
||||||
|
btc_default_error_full \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt 30 ]; then
|
||||||
|
echo "updating: /home/admin/config.scripts/bitcoin.monitor.sh ${CHAIN}net status"
|
||||||
|
source <(/home/admin/config.scripts/bitcoin.monitor.sh ${CHAIN}net status)
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_activated "1"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_version "${btc_version}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_running "${btc_running}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_ready "${btc_ready}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_online "${btc_online}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_error_short "${btc_error_short}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_error_full "${btc_error_full}"
|
||||||
|
|
||||||
|
# when default chain transfere values
|
||||||
|
if [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set btc_default_activated "1"
|
||||||
|
/home/admin/_cache.sh set btc_default_version "${btc_version}"
|
||||||
|
/home/admin/_cache.sh set btc_default_running "${btc_running}"
|
||||||
|
/home/admin/_cache.sh set btc_default_ready "${btc_ready}"
|
||||||
|
/home/admin/_cache.sh set btc_default_online "${btc_online}"
|
||||||
|
/home/admin/_cache.sh set btc_default_error_short "${btc_error_short}"
|
||||||
|
/home/admin/_cache.sh set btc_default_error_full "${btc_error_full}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update detail infos only when ready (get as value from cache)
|
||||||
|
source <(/home/admin/_cache.sh meta btc_${CHAIN}net_ready)
|
||||||
|
if [ "${value}" == "1" ]; then
|
||||||
|
|
||||||
|
# check if network needs update
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
btc_${CHAIN}net_synced \
|
||||||
|
btc_${CHAIN}net_blocks_headers \
|
||||||
|
btc_${CHAIN}net_blocks_verified \
|
||||||
|
btc_${CHAIN}net_blocks_behind \
|
||||||
|
btc_${CHAIN}net_sync_progress \
|
||||||
|
btc_${CHAIN}net_sync_percentage \
|
||||||
|
btc_${CHAIN}net_sync_initialblockdownload \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
btc_default_synced \
|
||||||
|
btc_default_blocks_headers \
|
||||||
|
btc_default_blocks_verified \
|
||||||
|
btc_default_blocks_behind \
|
||||||
|
btc_default_sync_progress \
|
||||||
|
btc_default_sync_percentage \
|
||||||
|
btc_default_sync_initialblockdownload \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE} ]; then
|
||||||
|
error=""
|
||||||
|
echo "updating: /home/admin/config.scripts/bitcoin.monitor.sh ${CHAIN}net info"
|
||||||
|
source <(/home/admin/config.scripts/bitcoin.monitor.sh ${CHAIN}net info)
|
||||||
|
if [ "${error}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_synced "${btc_synced}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_blocks_headers "${btc_blocks_headers}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_blocks_verified "${btc_blocks_verified}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_blocks_behind "${btc_blocks_behind}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_sync_progress "${btc_sync_progress}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_sync_percentage "${btc_sync_percentage}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_sync_initialblockdownload "${btc_sync_initialblockdownload}"
|
||||||
|
if [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set btc_default_synced "${btc_synced}"
|
||||||
|
/home/admin/_cache.sh set btc_default_blocks_headers "${btc_blocks_headers}"
|
||||||
|
/home/admin/_cache.sh set btc_default_blocks_verified "${btc_blocks_verified}"
|
||||||
|
/home/admin/_cache.sh set btc_default_blocks_behind "${btc_blocks_behind}"
|
||||||
|
/home/admin/_cache.sh set btc_default_sync_progress "${btc_sync_progress}"
|
||||||
|
/home/admin/_cache.sh set btc_default_sync_percentage "${btc_sync_percentage}"
|
||||||
|
/home/admin/_cache.sh set btc_default_sync_initialblockdownload "${btc_sync_initialblockdownload}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "!! ERROR --> ${error}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if network needs update
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
btc_${CHAIN}net_peers \
|
||||||
|
btc_${CHAIN}net_address \
|
||||||
|
btc_${CHAIN}net_port \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
btc_default_peers \
|
||||||
|
btc_default_address \
|
||||||
|
btc_default_port \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE} ]; then
|
||||||
|
error=""
|
||||||
|
echo "updating: /home/admin/config.scripts/bitcoin.monitor.sh ${CHAIN}net network"
|
||||||
|
source <(/home/admin/config.scripts/bitcoin.monitor.sh ${CHAIN}net network)
|
||||||
|
if [ "${error}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_peers "${btc_peers}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_address "${btc_address}"
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_port "${btc_port}"
|
||||||
|
if [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set btc_default_peers "${btc_peers}"
|
||||||
|
/home/admin/_cache.sh set btc_default_address "${btc_address}"
|
||||||
|
/home/admin/_cache.sh set btc_default_port "${btc_port}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "!! ERROR --> ${error}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if mempool needs update
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
btc_${CHAIN}net_mempool_transactions \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
btc_default_mempool_transactions \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE5} ]; then
|
||||||
|
error=""
|
||||||
|
echo "updating: /home/admin/config.scripts/bitcoin.monitor.sh ${CHAIN}net mempool"
|
||||||
|
source <(/home/admin/config.scripts/bitcoin.monitor.sh ${CHAIN}net mempool)
|
||||||
|
if [ "${error}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set btc_${CHAIN}net_mempool_transactions "${btc_mempool_transactions}"
|
||||||
|
if [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set btc_default_mempool_transactions "${btc_mempool_transactions}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "!! ERROR --> ${error}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
###################
|
||||||
|
# Lightning (lnd)
|
||||||
|
|
||||||
|
# loop thru mainet, testnet & signet
|
||||||
|
networks=( "main" "test" "sig" )
|
||||||
|
for CHAIN in "${networks[@]}"
|
||||||
|
do
|
||||||
|
|
||||||
|
# skip if network is not on by config
|
||||||
|
if [ "${CHAIN}" == "main" ] && [ "${lnd}" != "on" ]; then
|
||||||
|
#echo "skip lnd ${CHAIN}net scan - because its off"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "${CHAIN}" == "test" ] && [ "${tlnd}" != "on" ]; then
|
||||||
|
#echo "skip lnd ${CHAIN}net scan - because its off"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "${CHAIN}" == "sig" ] && [ "${slnd}" != "on" ]; then
|
||||||
|
#echo "skip lnd ${CHAIN}net scan - because its off"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if default chain & lightning
|
||||||
|
isDefaultChain=$(echo "${CHAIN}" | grep -c "${chain}")
|
||||||
|
isDefaultLightning=$(echo "${lightning}" | grep -c "lnd")
|
||||||
|
|
||||||
|
# only scan non defaults when set by parameter from config
|
||||||
|
if [ "${system_scan_all}" != "on" ]; then
|
||||||
|
if [ "${isDefaultChain}" != "1" ] || [ ${isDefaultLightning} != "1" ]; then
|
||||||
|
#echo "skip lnd ${CHAIN}net scan - because its not default"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update basic status values always
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_lnd_${CHAIN}net_locked \
|
||||||
|
ln_lnd_${CHAIN}net_version \
|
||||||
|
ln_lnd_${CHAIN}net_running \
|
||||||
|
ln_lnd_${CHAIN}net_ready \
|
||||||
|
ln_lnd_${CHAIN}net_online \
|
||||||
|
ln_lnd_${CHAIN}net_error_short \
|
||||||
|
ln_lnd_${CHAIN}net_error_full \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_default_locked \
|
||||||
|
ln_default_version \
|
||||||
|
ln_default_running \
|
||||||
|
ln_default_ready \
|
||||||
|
ln_default_online \
|
||||||
|
ln_default_error_short \
|
||||||
|
ln_default_error_full \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt 30 ]; then
|
||||||
|
echo "updating: /home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net status"
|
||||||
|
source <(/home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net status)
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_activated "1"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_locked "${ln_lnd_locked}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_version "${ln_lnd_version}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_running "${ln_lnd_running}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_ready "${ln_lnd_ready}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_online "${ln_lnd_online}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_error_short "${ln_lnd_error_short}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_error_full "${ln_lnd_error_full}"
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_default_activated "1"
|
||||||
|
/home/admin/_cache.sh set ln_default_locked "${ln_lnd_locked}"
|
||||||
|
/home/admin/_cache.sh set ln_default_version "${ln_lnd_version}"
|
||||||
|
/home/admin/_cache.sh set ln_default_running "${ln_lnd_running}"
|
||||||
|
/home/admin/_cache.sh set ln_default_ready "${ln_lnd_ready}"
|
||||||
|
/home/admin/_cache.sh set ln_default_online "${ln_lnd_online}"
|
||||||
|
/home/admin/_cache.sh set ln_default_error_short "${ln_lnd_error_short}"
|
||||||
|
/home/admin/_cache.sh set ln_default_error_full "${ln_lnd_error_full}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update detail infos only when ready
|
||||||
|
source <(/home/admin/_cache.sh meta ln_lnd_${CHAIN}net_ready)
|
||||||
|
if [ "${value}" == "1" ]; then
|
||||||
|
|
||||||
|
# check if config needs update
|
||||||
|
source <(/home/admin/_cache.sh valid ln_lnd_${CHAIN}net_alias)
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE5} ]; then
|
||||||
|
error=""
|
||||||
|
echo "updating: /home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net config"
|
||||||
|
source <(/home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net config)
|
||||||
|
if [ "${error}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_alias "${ln_lnd_alias}"
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_default_alias "${ln_lnd_alias}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "!! ERROR --> ${error}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if info needs update
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_lnd_${CHAIN}net_address \
|
||||||
|
ln_lnd_${CHAIN}net_tor \
|
||||||
|
ln_lnd_${CHAIN}net_sync_chain \
|
||||||
|
ln_lnd_${CHAIN}net_sync_graph \
|
||||||
|
ln_lnd_${CHAIN}net_channels_pending \
|
||||||
|
ln_lnd_${CHAIN}net_channels_active \
|
||||||
|
ln_lnd_${CHAIN}net_channels_inactive \
|
||||||
|
ln_lnd_${CHAIN}net_channels_total \
|
||||||
|
ln_lnd_${CHAIN}net_peers \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_default_address \
|
||||||
|
ln_default_tor \
|
||||||
|
ln_default_sync_chain \
|
||||||
|
ln_default_sync_progress \
|
||||||
|
ln_default_channels_pending \
|
||||||
|
ln_default_channels_active \
|
||||||
|
ln_default_channels_inactive \
|
||||||
|
ln_default_channels_total \
|
||||||
|
ln_default_peers \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE} ]; then
|
||||||
|
error=""
|
||||||
|
echo "updating: /home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net info"
|
||||||
|
source <(/home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net info)
|
||||||
|
if [ "${error}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_address "${ln_lnd_address}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_tor "${ln_lnd_tor}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_sync_chain "${ln_lnd_sync_chain}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_sync_progress "${ln_lnd_sync_progress}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_sync_graph "${ln_lnd_sync_graph}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_channels_pending "${ln_lnd_channels_pending}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_channels_active "${ln_lnd_channels_active}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_channels_inactive "${ln_lnd_channels_inactive}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_channels_total "${ln_lnd_channels_total}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_peers "${ln_lnd_peers}"
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_default_address "${ln_lnd_address}"
|
||||||
|
/home/admin/_cache.sh set ln_default_tor "${ln_lnd_tor}"
|
||||||
|
/home/admin/_cache.sh set ln_default_sync_chain "${ln_lnd_sync_chain}"
|
||||||
|
/home/admin/_cache.sh set ln_default_sync_progress "${ln_lnd_sync_progress}"
|
||||||
|
/home/admin/_cache.sh set ln_default_channels_pending "${ln_lnd_channels_pending}"
|
||||||
|
/home/admin/_cache.sh set ln_default_channels_active "${ln_lnd_channels_active}"
|
||||||
|
/home/admin/_cache.sh set ln_default_channels_inactive "${ln_lnd_channels_inactive}"
|
||||||
|
/home/admin/_cache.sh set ln_default_channels_total "${ln_lnd_channels_total}"
|
||||||
|
/home/admin/_cache.sh set ln_default_peers "${ln_lnd_peers}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "!! ERROR --> ${error}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if wallet needs update
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_lnd_${CHAIN}net_wallet_onchain_balance \
|
||||||
|
ln_lnd_${CHAIN}net_wallet_onchain_pending \
|
||||||
|
ln_lnd_${CHAIN}net_wallet_channels_balance \
|
||||||
|
ln_lnd_${CHAIN}net_wallet_channels_pending \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_default_wallet_onchain_balance \
|
||||||
|
ln_default_wallet_onchain_pending \
|
||||||
|
ln_default_wallet_channels_balance \
|
||||||
|
ln_default_wallet_channels_pending \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt 22 ]; then
|
||||||
|
error=""
|
||||||
|
echo "updating: /home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net wallet"
|
||||||
|
source <(/home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net wallet)
|
||||||
|
if [ "${error}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_wallet_onchain_balance "${ln_lnd_wallet_onchain_balance}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_wallet_onchain_pending "${ln_lnd_wallet_onchain_pending}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_wallet_channels_balance "${ln_lnd_wallet_channels_balance}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_wallet_channels_pending "${ln_lnd_wallet_channels_pending}"
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_default_wallet_onchain_balance "${ln_lnd_wallet_onchain_balance}"
|
||||||
|
/home/admin/_cache.sh set ln_default_wallet_onchain_pending "${ln_lnd_wallet_onchain_pending}"
|
||||||
|
/home/admin/_cache.sh set ln_default_wallet_channels_balance "${ln_lnd_wallet_channels_balance}"
|
||||||
|
/home/admin/_cache.sh set ln_default_wallet_channels_pending "${ln_lnd_wallet_channels_pending}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "!! ERROR --> ${error}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if fees needs update
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_lnd_${CHAIN}net_fees_daily \
|
||||||
|
ln_lnd_${CHAIN}net_fees_weekly \
|
||||||
|
ln_lnd_${CHAIN}net_fees_month \
|
||||||
|
ln_lnd_${CHAIN}net_fees_total \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_default_fees_total \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE5} ]; then
|
||||||
|
error=""
|
||||||
|
echo "updating: /home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net fees"
|
||||||
|
source <(/home/admin/config.scripts/lnd.monitor.sh ${CHAIN}net fees)
|
||||||
|
if [ "${error}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_fees_daily "${ln_lnd_fees_daily}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_fees_weekly "${ln_lnd_fees_weekly}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_fees_month "${ln_lnd_fees_month}"
|
||||||
|
/home/admin/_cache.sh set ln_lnd_${CHAIN}net_fees_total "${ln_lnd_fees_total}"
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_default_fees_total "${ln_lnd_fees_total}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "!! ERROR --> ${error}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
###################
|
||||||
|
# Lightning (c-lightning)
|
||||||
|
|
||||||
|
# loop thru mainet, testnet & signet
|
||||||
|
networks=( "main" "test" "sig" )
|
||||||
|
for CHAIN in "${networks[@]}"
|
||||||
|
do
|
||||||
|
|
||||||
|
# skip if network is not on by config
|
||||||
|
if [ "${CHAIN}" == "main" ] && [ "${cl}" != "on" ]; then
|
||||||
|
#echo "skip c-lightning mainnet scan - because its off"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "${CHAIN}" == "test" ] && [ "${tcl}" != "on" ]; then
|
||||||
|
#echo "skip c-lightning testnet scan - because its off"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ "${CHAIN}" == "sig" ] && [ "${scl}" != "on" ]; then
|
||||||
|
#echo "skip c-lightning signet scan - because its off"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if default chain & lightning
|
||||||
|
isDefaultChain=$(echo "${CHAIN}" | grep -c "${chain}")
|
||||||
|
isDefaultLightning=$(echo "${lightning}" | grep -c "cl")
|
||||||
|
|
||||||
|
# only scan non defaults when set by parameter from config
|
||||||
|
if [ "${system_scan_all}" != "on" ]; then
|
||||||
|
if [ "${isDefaultChain}" != "1" ] || [ ${isDefaultLightning} != "1" ]; then
|
||||||
|
#echo "skip cl ${CHAIN}net scan - because its not default"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TODO: c-lightning is seen as "always unlocked" for now - needs to be implemented later #2691
|
||||||
|
|
||||||
|
# update basic status values always
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_cl_${CHAIN}net_version \
|
||||||
|
ln_cl_${CHAIN}net_running \
|
||||||
|
ln_cl_${CHAIN}net_ready \
|
||||||
|
ln_cl_${CHAIN}net_online \
|
||||||
|
ln_cl_${CHAIN}net_error_short \
|
||||||
|
ln_cl_${CHAIN}net_error_full \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_default_version \
|
||||||
|
ln_default_running \
|
||||||
|
ln_default_ready \
|
||||||
|
ln_default_online \
|
||||||
|
ln_default_error_short \
|
||||||
|
ln_default_error_full \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt 30 ]; then
|
||||||
|
echo "updating: /home/admin/config.scripts/cl.monitor.sh ${CHAIN}net status"
|
||||||
|
source <(/home/admin/config.scripts/cl.monitor.sh ${CHAIN}net status)
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_activated "1"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_version "${ln_cl_version}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_running "${ln_cl_running}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_ready "${ln_cl_ready}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_online "${ln_cl_online}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_locked "0"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_error_short "${ln_cl_error_short}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_error_full "${ln_cl_error_full}"
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_default_activated "1"
|
||||||
|
/home/admin/_cache.sh set ln_default_version "${cl_lnd_version}"
|
||||||
|
/home/admin/_cache.sh set ln_default_running "${lc_running}"
|
||||||
|
/home/admin/_cache.sh set ln_default_ready "${cl_ready}"
|
||||||
|
/home/admin/_cache.sh set ln_default_online "${cl_online}"
|
||||||
|
/home/admin/_cache.sh set ln_default_locked "0"
|
||||||
|
/home/admin/_cache.sh set ln_default_error_short "${cl_error_short}"
|
||||||
|
/home/admin/_cache.sh set ln_default_error_full "${cl_error_full}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update detail infos only when ready
|
||||||
|
source <(/home/admin/_cache.sh meta ln_cl_${CHAIN}net_ready)
|
||||||
|
if [ "${value}" == "1" ]; then
|
||||||
|
|
||||||
|
# check if info needs update
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_cl_${CHAIN}net_alias \
|
||||||
|
ln_cl_${CHAIN}net_address \
|
||||||
|
ln_cl_${CHAIN}net_tor \
|
||||||
|
ln_cl_${CHAIN}net_peers \
|
||||||
|
ln_cl_${CHAIN}net_sync_chain \
|
||||||
|
ln_cl_${CHAIN}net_channels_pending \
|
||||||
|
ln_cl_${CHAIN}net_channels_active \
|
||||||
|
ln_cl_${CHAIN}net_channels_inactive \
|
||||||
|
ln_cl_${CHAIN}net_channels_total \
|
||||||
|
ln_cl_${CHAIN}net_fees_total \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_default_alias \
|
||||||
|
ln_default_address \
|
||||||
|
ln_default_tor \
|
||||||
|
ln_default_peers \
|
||||||
|
ln_default_sync_chain \
|
||||||
|
ln_default_channels_pending \
|
||||||
|
ln_default_channels_active \
|
||||||
|
ln_default_channels_inactive \
|
||||||
|
ln_default_channels_total \
|
||||||
|
ln_default_fees_total \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE} ]; then
|
||||||
|
error=""
|
||||||
|
echo "updating: /home/admin/config.scripts/cl.monitor.sh ${CHAIN}net info"
|
||||||
|
source <(/home/admin/config.scripts/cl.monitor.sh ${CHAIN}net info)
|
||||||
|
if [ "${error}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_alias "${ln_cl_alias}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_address "${ln_cl_address}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_tor "${ln_cl_tor}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_peers "${ln_cl_peers}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_sync_chain "${ln_cl_sync_chain}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_sync_progress "${ln_cl_sync_progress}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_channels_pending "${ln_cl_channels_pending}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_channels_active "${ln_cl_channels_active}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_channels_inactive "${ln_cl_channels_inactive}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_channels_total "${ln_cl_channels_total}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_fees_total "${ln_cl_fees_total}"
|
||||||
|
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_default_alias "${ln_cl_alias}"
|
||||||
|
/home/admin/_cache.sh set ln_default_address "${ln_cl_address}"
|
||||||
|
/home/admin/_cache.sh set ln_default_tor "${ln_cl_tor}"
|
||||||
|
/home/admin/_cache.sh set ln_default_peers "${ln_cl_fees_total}"
|
||||||
|
/home/admin/_cache.sh set ln_default_sync_chain "${ln_cl_sync_chain}"
|
||||||
|
/home/admin/_cache.sh set ln_default_sync_progress "${ln_cl_sync_progress}"
|
||||||
|
/home/admin/_cache.sh set ln_default_hannels_pending "${ln_cl_channels_pending}"
|
||||||
|
/home/admin/_cache.sh set ln_default_channels_active "${ln_cl_channels_active}"
|
||||||
|
/home/admin/_cache.sh set ln_default_channels_inactive "${ln_cl_channels_inactive}"
|
||||||
|
/home/admin/_cache.sh set ln_default_channels_total "${ln_cl_channels_total}"
|
||||||
|
/home/admin/_cache.sh set ln_default_fees_total "${ln_cl_fees_total}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "!! ERROR --> ${error}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if wallet needs update
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_cl_${CHAIN}net_wallet_onchain_balance \
|
||||||
|
ln_cl_${CHAIN}net_wallet_onchain_pending \
|
||||||
|
ln_cl_${CHAIN}net_wallet_channels_balance \
|
||||||
|
ln_cl_${CHAIN}net_wallet_channels_pending \
|
||||||
|
)
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ] && [ "${stillvalid}" == "1" ]; then
|
||||||
|
source <(/home/admin/_cache.sh valid \
|
||||||
|
ln_default_wallet_onchain_balance \
|
||||||
|
ln_default_wallet_onchain_pending \
|
||||||
|
ln_default_wallet_channels_balance \
|
||||||
|
ln_default_wallet_channels_pending \
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
if [ "${stillvalid}" == "0" ] || [ ${age} -gt ${MINUTE} ]; then
|
||||||
|
error=""
|
||||||
|
echo "updating: /home/admin/config.scripts/cl.monitor.sh ${CHAIN}net wallet"
|
||||||
|
source <(/home/admin/config.scripts/cl.monitor.sh ${CHAIN}net wallet)
|
||||||
|
if [ "${error}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_wallet_onchain_balance "${ln_cl_wallet_onchain_balance}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_wallet_onchain_pending "${ln_cl_wallet_onchain_pending}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_wallet_channels_balance "${ln_cl_wallet_channels_balance}"
|
||||||
|
/home/admin/_cache.sh set ln_cl_${CHAIN}net_wallet_channels_pending "${ln_cl_wallet_channels_pending}"
|
||||||
|
if [ "${isDefaultLightning}" == "1" ] && [ "${isDefaultChain}" == "1" ]; then
|
||||||
|
/home/admin/_cache.sh set ln_default_wallet_onchain_balance "${ln_cl_wallet_onchain_balance}"
|
||||||
|
/home/admin/_cache.sh set ln_default_wallet_onchain_pending "${ln_cl_wallet_onchain_pending}"
|
||||||
|
/home/admin/_cache.sh set ln_default_wallet_channels_balance "${ln_cl_wallet_channels_balance}"
|
||||||
|
/home/admin/_cache.sh set ln_default_wallet_channels_pending "${ln_cl_wallet_channels_pending}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "!! ERROR --> ${error}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
#################
|
||||||
|
# DONE
|
||||||
|
|
||||||
|
# calculate how many seconds the script was running
|
||||||
|
endTime=$(date +%s)
|
||||||
|
runTime=$((${endTime}-${startTime}))
|
||||||
|
|
||||||
|
# write info on scan runtime into cache (use as signal that the first systemscan worked)
|
||||||
|
/home/admin/_cache.sh set systemscan_runtime "${runTime}"
|
||||||
|
echo "SystemScan Loop done in ${runTime} seconds"
|
||||||
|
|
||||||
|
# log warning if script took too long
|
||||||
|
if [ ${runTime} -gt ${MINUTE} ]; then
|
||||||
|
echo "WARNING: HANGING SYSTEM ... systemscan loop took too long (${runTime} seconds)!" 1>&2
|
||||||
|
/home/admin/_cache.sh increment system_count_longscan
|
||||||
|
fi
|
||||||
|
|
||||||
|
# small sleep before next loop
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
# if was started with special parameter
|
||||||
|
if [ "${ONLY_ONE_LOOP}" == "1" ]; then
|
||||||
|
echo "Exiting because ONLY_ONE_LOOP==1"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
@ -12,19 +12,11 @@ configFile="/mnt/hdd/raspiblitz.conf"
|
|||||||
|
|
||||||
# LOGS see: sudo journalctl -f -u background
|
# LOGS see: sudo journalctl -f -u background
|
||||||
|
|
||||||
# Check if HDD contains configuration
|
|
||||||
configExists=$(ls ${configFile} | grep -c '.conf')
|
|
||||||
if [ ${configExists} -eq 1 ]; then
|
|
||||||
source ${configFile}
|
|
||||||
else
|
|
||||||
source ${infoFile}
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "_background.sh STARTED"
|
echo "_background.sh STARTED"
|
||||||
|
|
||||||
# global vars
|
# global vars
|
||||||
blitzTUIHeartBeatLine=""
|
blitzTUIHeartBeatLine=""
|
||||||
blitzTUIRestarts=0
|
/home/admin/_cache.sh set blitzTUIRestarts "0"
|
||||||
|
|
||||||
counter=0
|
counter=0
|
||||||
while [ 1 ]
|
while [ 1 ]
|
||||||
@ -47,8 +39,10 @@ do
|
|||||||
# gather the uptime seconds
|
# gather the uptime seconds
|
||||||
upSeconds=$(cat /proc/uptime | grep -o '^[0-9]\+')
|
upSeconds=$(cat /proc/uptime | grep -o '^[0-9]\+')
|
||||||
|
|
||||||
# source info file fresh on every loop
|
# source info & config file fresh on every loop
|
||||||
source ${infoFile} 2>/dev/null
|
source ${infoFile} 2>/dev/null
|
||||||
|
source ${configFile} 2>/dev/null
|
||||||
|
source <(/home/admin/_cache.sh get state setupPhase)
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# SKIP BACKGROUND TASK LOOP ON CERTAIN SYSTEM STATES
|
# SKIP BACKGROUND TASK LOOP ON CERTAIN SYSTEM STATES
|
||||||
@ -61,16 +55,6 @@ do
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
####################################################
|
|
||||||
# CHECK IF LOCAL IP CHANGED
|
|
||||||
####################################################
|
|
||||||
oldLocalIP="${localip}";
|
|
||||||
source <(/home/admin/config.scripts/internet.sh status)
|
|
||||||
if [ "${oldLocalIP}" != "${localip}" ]; then
|
|
||||||
echo "local IP changed old(${oldLocalIP}) new(${localip}) - updating in raspiblitz.info"
|
|
||||||
sed -i "s/^localip=.*/localip='${localip}'/g" ${infoFile}
|
|
||||||
fi
|
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# SKIP REST OF THE TASKS IF STILL IN SETUP PHASE
|
# SKIP REST OF THE TASKS IF STILL IN SETUP PHASE
|
||||||
####################################################
|
####################################################
|
||||||
@ -98,32 +82,13 @@ do
|
|||||||
# detect a missing DHCP config
|
# detect a missing DHCP config
|
||||||
if [ "${localip:0:4}" = "169." ]; then
|
if [ "${localip:0:4}" = "169." ]; then
|
||||||
echo "Missing DHCP detected ... trying emergency reboot"
|
echo "Missing DHCP detected ... trying emergency reboot"
|
||||||
sudo /home/admin/config.scripts/blitz.shutdown.sh reboot
|
/home/admin/config.scripts/blitz.shutdown.sh reboot
|
||||||
else
|
else
|
||||||
echo "DHCP OK"
|
echo "DHCP OK"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
####################################################
|
|
||||||
# CHECK FOR UNDERVOLTAGE REPORTS
|
|
||||||
# every 1 hour scan for undervoltage reports
|
|
||||||
####################################################
|
|
||||||
recheckUndervoltage=$(($counter % 3600))
|
|
||||||
if [ ${recheckUndervoltage} -eq 1 ]; then
|
|
||||||
echo "*** RECHECK UNDERVOLTAGE ***"
|
|
||||||
countReports=$(sudo cat /var/log/syslog | grep -c "Under-voltage detected!")
|
|
||||||
echo "${countReports} undervoltage reports found in syslog"
|
|
||||||
if ! grep -Eq "^undervoltageReports=" ${infoFile}; then
|
|
||||||
# write new value to info file
|
|
||||||
undervoltageReports="${countReports}"
|
|
||||||
echo "undervoltageReports=${undervoltageReports}" >> ${infoFile}
|
|
||||||
else
|
|
||||||
# update value in info file
|
|
||||||
sed -i "s/^undervoltageReports=.*/undervoltageReports=${countReports}/g" ${infoFile}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# RECHECK PUBLIC IP
|
# RECHECK PUBLIC IP
|
||||||
#
|
#
|
||||||
@ -136,6 +101,7 @@ do
|
|||||||
# every 15min - not too often
|
# every 15min - not too often
|
||||||
# because its a ping to external service
|
# because its a ping to external service
|
||||||
recheckPublicIP=$((($counter % 900)+1))
|
recheckPublicIP=$((($counter % 900)+1))
|
||||||
|
|
||||||
# prevent when lndAddress is set
|
# prevent when lndAddress is set
|
||||||
if [ ${#lndAddress} -gt 3 ]; then
|
if [ ${#lndAddress} -gt 3 ]; then
|
||||||
recheckPublicIP=0
|
recheckPublicIP=0
|
||||||
@ -151,9 +117,7 @@ do
|
|||||||
echo "*** RECHECK PUBLIC IP ***"
|
echo "*** RECHECK PUBLIC IP ***"
|
||||||
|
|
||||||
# execute only after setup when config exists
|
# execute only after setup when config exists
|
||||||
if [ ${configExists} -eq 1 ]; then
|
publicIPChanged=$(/home/admin/config.scripts/internet.sh update-publicip | grep -c 'ip_changed=1')
|
||||||
publicIPChanged=$(/home/admin/config.scripts/internet.sh update-publicip | grep -c 'ip_changed=1')
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if changed
|
# check if changed
|
||||||
if [ ${publicIPChanged} -gt 0 ]; then
|
if [ ${publicIPChanged} -gt 0 ]; then
|
||||||
@ -178,18 +142,18 @@ do
|
|||||||
# and we will get more connections if this matches our real IP address
|
# and we will get more connections if this matches our real IP address
|
||||||
# otherwise the bitcoin-node connections will slowly decline
|
# otherwise the bitcoin-node connections will slowly decline
|
||||||
echo "IPv6 only is enabled => restart bitcoind to pickup up new publicIP as local IP"
|
echo "IPv6 only is enabled => restart bitcoind to pickup up new publicIP as local IP"
|
||||||
sudo systemctl stop bitcoind
|
systemctl stop bitcoind
|
||||||
sleep 3
|
sleep 3
|
||||||
sudo systemctl start bitcoind
|
systemctl start bitcoind
|
||||||
|
|
||||||
# if BTCRPCexplorer is currently running
|
# if BTCRPCexplorer is currently running
|
||||||
# it needs to be restarted to pickup the new IP for its "Node Status Page"
|
# it needs to be restarted to pickup the new IP for its "Node Status Page"
|
||||||
# but this is only needed in IPv6 only mode
|
# but this is only needed in IPv6 only mode
|
||||||
breIsRunning=$(sudo systemctl status btc-rpc-explorer 2>/dev/null | grep -c 'active (running)')
|
breIsRunning=$(systemctl status btc-rpc-explorer 2>/dev/null | grep -c 'active (running)')
|
||||||
if [ ${breIsRunning} -eq 1 ]; then
|
if [ ${breIsRunning} -eq 1 ]; then
|
||||||
echo "BTCRPCexplorer is running => restart BTCRPCexplorer to pickup up new publicIP for the bitcoin node"
|
echo "BTCRPCexplorer is running => restart BTCRPCexplorer to pickup up new publicIP for the bitcoin node"
|
||||||
sudo systemctl stop btc-rpc-explorer
|
systemctl stop btc-rpc-explorer
|
||||||
sudo systemctl start btc-rpc-explorer
|
systemctl start btc-rpc-explorer
|
||||||
else
|
else
|
||||||
echo "new publicIP but no BTCRPCexplorer restart because not running"
|
echo "new publicIP but no BTCRPCexplorer restart because not running"
|
||||||
fi
|
fi
|
||||||
@ -205,8 +169,8 @@ do
|
|||||||
if [ "${autoUnlock}" = "on" ]; then
|
if [ "${autoUnlock}" = "on" ]; then
|
||||||
if [ "${publicIP_Old}" != "::1" ] && [ "${publicIP_New}" != "::1" ]; then
|
if [ "${publicIP_Old}" != "::1" ] && [ "${publicIP_New}" != "::1" ]; then
|
||||||
echo "restart LND to pickup up new publicIP"
|
echo "restart LND to pickup up new publicIP"
|
||||||
sudo systemctl stop lnd
|
systemctl stop lnd
|
||||||
sudo systemctl start lnd
|
systemctl start lnd
|
||||||
else
|
else
|
||||||
echo "publicIP_Old OR publicIP_New is equal ::1 => no need to restart LND"
|
echo "publicIP_Old OR publicIP_New is equal ::1 => no need to restart LND"
|
||||||
fi
|
fi
|
||||||
@ -223,18 +187,39 @@ do
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
###############################
|
||||||
|
# UPDATE DYNAMIC DOMAIN
|
||||||
|
# like afraid.org
|
||||||
|
# ! experimental
|
||||||
|
###############################
|
||||||
|
|
||||||
|
# if not activated above, update every 6 hours
|
||||||
|
if [ ${updateDynDomain} -eq 0 ]; then
|
||||||
|
# dont +1 so that it gets executed on first loop
|
||||||
|
updateDynDomain=$(($counter % 21600))
|
||||||
|
fi
|
||||||
|
if [ ${updateDynDomain} -eq 1 ]; then
|
||||||
|
echo "*** UPDATE DYNAMIC DOMAIN ***"
|
||||||
|
# check if update URL for dyn Domain is set
|
||||||
|
if [ ${#dynUpdateUrl} -gt 0 ]; then
|
||||||
|
/home/admin/config.scripts/internet.dyndomain.sh update
|
||||||
|
else
|
||||||
|
echo "'dynUpdateUrl' not set in ${configFile}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
###############################
|
###############################
|
||||||
# Blockchain Sync Monitor
|
# Blockchain Sync Monitor
|
||||||
###############################
|
###############################
|
||||||
|
|
||||||
# check every 1min
|
# check every 1min
|
||||||
recheckSync=$(($counter % 60))
|
recheckSync=$(($counter % 60))
|
||||||
if [ ${recheckSync} -eq 1 ]; then
|
if [ ${recheckSync} -eq 1 ] && [ "${chain}" == "main" ]; then
|
||||||
source <(sudo /home/admin/config.scripts/network.monitor.sh peer-status)
|
source <(/home/admin/config.scripts/bitcoin.monitor.sh mainnet network)
|
||||||
echo "Blockchain Sync Monitoring: peers=${peers}"
|
echo "Blockchain Sync Monitoring: peers=${peers}"
|
||||||
if [ "${peers}" == "0" ] && [ "${running}" == "1" ]; then
|
if [ "${btc_peers}" == "0" ] && [ "${btc_running}" == "1" ]; then
|
||||||
echo "Blockchain Sync Monitoring: ZERO PEERS DETECTED .. doing out-of-band kickstart"
|
echo "Blockchain Sync Monitoring: ZERO PEERS DETECTED .. doing out-of-band kickstart"
|
||||||
sudo /home/admin/config.scripts/network.monitor.sh peer-kickstart
|
/home/admin/config.scripts/bitcoin.monitor.sh mainnet peer-kickstart
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -245,23 +230,20 @@ do
|
|||||||
# check every 30sec
|
# check every 30sec
|
||||||
recheckBlitzTUI=$(($counter % 30))
|
recheckBlitzTUI=$(($counter % 30))
|
||||||
if [ "${touchscreen}" == "1" ] && [ ${recheckBlitzTUI} -eq 1 ]; then
|
if [ "${touchscreen}" == "1" ] && [ ${recheckBlitzTUI} -eq 1 ]; then
|
||||||
|
|
||||||
echo "BlitzTUI Monitoring Check"
|
echo "BlitzTUI Monitoring Check"
|
||||||
if [ -d "/var/cache/raspiblitz" ]; then
|
if [ -d "/var/cache/raspiblitz" ]; then
|
||||||
latestHeartBeatLine=$(sudo tail -n 300 /var/cache/raspiblitz/pi/blitz-tui.log | grep beat | tail -n 1)
|
latestHeartBeatLine=$(tail -n 300 /var/cache/raspiblitz/pi/blitz-tui.log | grep beat | tail -n 1)
|
||||||
else
|
else
|
||||||
latestHeartBeatLine=$(sudo tail -n 300 /home/pi/blitz-tui.log | grep beat | tail -n 1)
|
latestHeartBeatLine=$(tail -n 300 /home/pi/blitz-tui.log | grep beat | tail -n 1)
|
||||||
fi
|
fi
|
||||||
if [ ${#blitzTUIHeartBeatLine} -gt 0 ]; then
|
if [ ${#blitzTUIHeartBeatLine} -gt 0 ]; then
|
||||||
#echo "blitzTUIHeartBeatLine(${blitzTUIHeartBeatLine})"
|
#echo "blitzTUIHeartBeatLine(${blitzTUIHeartBeatLine})"
|
||||||
#echo "latestHeartBeatLine(${latestHeartBeatLine})"
|
#echo "latestHeartBeatLine(${latestHeartBeatLine})"
|
||||||
if [ "${blitzTUIHeartBeatLine}" == "${latestHeartBeatLine}" ]; then
|
if [ "${blitzTUIHeartBeatLine}" == "${latestHeartBeatLine}" ]; then
|
||||||
echo "FAIL - still no new heart beat .. restarting BlitzTUI"
|
echo "FAIL - still no new heart beat .. restarting BlitzTUI"
|
||||||
blitzTUIRestarts=$(($blitzTUIRestarts +1))
|
source <(/home/admin/_cache.sh increment system_count_start_tui)
|
||||||
if [ $(sudo cat /home/admin/raspiblitz.info | grep -c 'blitzTUIRestarts=') -eq 0 ]; then
|
init 3 ; sleep 2 ; init 5
|
||||||
echo "blitzTUIRestarts=0" >> /home/admin/raspiblitz.info
|
|
||||||
fi
|
|
||||||
sudo sed -i "s/^blitzTUIRestarts=.*/blitzTUIRestarts=${blitzTUIRestarts}/g" /home/admin/raspiblitz.info
|
|
||||||
sudo init 3 ; sleep 2 ; sudo init 5
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "blitzTUIHeartBeatLine is empty - skipping check"
|
echo "blitzTUIHeartBeatLine is empty - skipping check"
|
||||||
@ -273,15 +255,19 @@ do
|
|||||||
# SCB Monitoring
|
# SCB Monitoring
|
||||||
###############################
|
###############################
|
||||||
|
|
||||||
# check every 1min
|
# check every 1min (only when lnd active)
|
||||||
recheckSCB=$(($counter % 60))
|
recheckSCB=0
|
||||||
|
if [ "${lightning}" == "lnd" ] || [ "${lnd}" == "on" ]; then
|
||||||
|
recheckSCB=$(($counter % 60))
|
||||||
|
fi
|
||||||
if [ ${recheckSCB} -eq 1 ]; then
|
if [ ${recheckSCB} -eq 1 ]; then
|
||||||
#echo "SCB Monitoring ..."
|
#echo "SCB Monitoring ..."
|
||||||
source ${configFile}
|
source ${configFile}
|
||||||
# check if channel.backup exists
|
# check if channel.backup exists
|
||||||
scbPath=/mnt/hdd/lnd/data/chain/${network}/${chain}net/channel.backup
|
scbPath=/mnt/hdd/lnd/data/chain/${network}/${chain}net/channel.backup
|
||||||
scbExists=$(sudo ls $scbPath 2>/dev/null | grep -c 'channel.backup')
|
scbExists=$(ls $scbPath 2>/dev/null | grep -c 'channel.backup')
|
||||||
if [ ${scbExists} -eq 1 ]; then
|
if [ ${scbExists} -eq 1 ]; then
|
||||||
|
|
||||||
# timestamp backup filename
|
# timestamp backup filename
|
||||||
timestampedFileName=channel-$(date "+%Y%m%d-%H%M%S").backup
|
timestampedFileName=channel-$(date "+%Y%m%d-%H%M%S").backup
|
||||||
localBackupDir=/home/admin/backups/scb
|
localBackupDir=/home/admin/backups/scb
|
||||||
@ -289,16 +275,16 @@ do
|
|||||||
localTimestampedPath=${localBackupDir}/${timestampedFileName}
|
localTimestampedPath=${localBackupDir}/${timestampedFileName}
|
||||||
|
|
||||||
#echo "Found Channel Backup File .. check if changed .."
|
#echo "Found Channel Backup File .. check if changed .."
|
||||||
md5checksumORG=$(sudo md5sum $scbPath 2>/dev/null | head -n1 | cut -d " " -f1)
|
md5checksumORG=$(md5sum $scbPath 2>/dev/null | head -n1 | cut -d " " -f1)
|
||||||
md5checksumCPY=$(sudo md5sum $localBackupPath 2>/dev/null | head -n1 | cut -d " " -f1)
|
md5checksumCPY=$(md5sum $localBackupPath 2>/dev/null | head -n1 | cut -d " " -f1)
|
||||||
if [ "${md5checksumORG}" != "${md5checksumCPY}" ]; then
|
if [ "${md5checksumORG}" != "${md5checksumCPY}" ]; then
|
||||||
echo "--> Channel Backup File changed"
|
echo "--> Channel Backup File changed"
|
||||||
|
|
||||||
# make copy to sd card (as local basic backup)
|
# make copy to sd card (as local basic backup)
|
||||||
sudo mkdir -p /home/admin/backups/scb/ 2>/dev/null
|
mkdir -p /home/admin/backups/scb/ 2>/dev/null
|
||||||
sudo cp $scbPath $localBackupPath
|
cp $scbPath $localBackupPath
|
||||||
sudo cp $scbPath $localTimestampedPath
|
cp $scbPath $localTimestampedPath
|
||||||
sudo cp $scbPath /boot/channel.backup
|
cp $scbPath /boot/channel.backup
|
||||||
echo "OK channel.backup copied to '${localBackupPath}' and '{$localTimestampedPath}' and '/boot/channel.backup'"
|
echo "OK channel.backup copied to '${localBackupPath}' and '{$localTimestampedPath}' and '/boot/channel.backup'"
|
||||||
|
|
||||||
# check if a additional local backup target is set
|
# check if a additional local backup target is set
|
||||||
@ -310,8 +296,8 @@ do
|
|||||||
if [ ${backupDeviceExists} -gt 0 ]; then
|
if [ ${backupDeviceExists} -gt 0 ]; then
|
||||||
|
|
||||||
echo "--> Additional Local Backup Device"
|
echo "--> Additional Local Backup Device"
|
||||||
sudo cp ${localBackupPath} /mnt/backup/
|
cp ${localBackupPath} /mnt/backup/
|
||||||
sudo cp ${localTimestampedPath} /mnt/backup/
|
cp ${localTimestampedPath} /mnt/backup/
|
||||||
|
|
||||||
# check results
|
# check results
|
||||||
result=$?
|
result=$?
|
||||||
@ -337,11 +323,11 @@ do
|
|||||||
echo "--> Offsite-Backup SCP Server"
|
echo "--> Offsite-Backup SCP Server"
|
||||||
if [ "${scpBackupOptions}" == "" ]; then
|
if [ "${scpBackupOptions}" == "" ]; then
|
||||||
scpBackupOptions="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
scpBackupOptions="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
||||||
fi
|
fi
|
||||||
# its ok to ignore known host, because data is encrypted (worst case of MiM would be: no offsite channel backup)
|
# its ok to ignore known host, because data is encrypted (worst case of MiM would be: no offsite channel backup)
|
||||||
# but its more likely that without ignoring known host, script might not run thru and that way: no offsite channel backup
|
# but its more likely that without ignoring known host, script might not run thru and that way: no offsite channel backup
|
||||||
sudo scp ${scpBackupOptions} ${localBackupPath} ${scpBackupTarget}/
|
scp ${scpBackupOptions} ${localBackupPath} ${scpBackupTarget}/
|
||||||
sudo scp ${scpBackupOptions} ${localTimestampedPath} ${scpBackupTarget}/
|
scp ${scpBackupOptions} ${localTimestampedPath} ${scpBackupTarget}/
|
||||||
result=$?
|
result=$?
|
||||||
if [ ${result} -eq 0 ]; then
|
if [ ${result} -eq 0 ]; then
|
||||||
echo "OK - SCP Backup exited with 0"
|
echo "OK - SCP Backup exited with 0"
|
||||||
@ -350,27 +336,11 @@ do
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check if a DropBox backup target is set
|
|
||||||
# parameter in raspiblitz.conf:
|
|
||||||
# dropboxBackupTarget='[DROPBOX-APP-OAUTH2-TOKEN]'
|
|
||||||
# see dropbox setup: https://gist.github.com/vindard/e0cd3d41bb403a823f3b5002488e3f90
|
|
||||||
if [ ${#dropboxBackupTarget} -gt 0 ]; then
|
|
||||||
echo "--> Offsite-Backup Dropbox"
|
|
||||||
source <(sudo /home/admin/config.scripts/dropbox.upload.sh upload ${dropboxBackupTarget} ${localBackupPath})
|
|
||||||
source <(sudo /home/admin/config.scripts/dropbox.upload.sh upload ${dropboxBackupTarget} ${localTimestampedPath})
|
|
||||||
if [ ${#err} -gt 0 ]; then
|
|
||||||
echo "FAIL - ${err}"
|
|
||||||
echo "${errMore}"
|
|
||||||
else
|
|
||||||
echo "OK - ${upload}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if Nextcloud backups are enabled
|
# check if Nextcloud backups are enabled
|
||||||
if [ $nextcloudBackupServer ] && [ $nextcloudBackupUser ] && [ $nextcloudBackupPassword ]; then
|
if [ $nextcloudBackupServer ] && [ $nextcloudBackupUser ] && [ $nextcloudBackupPassword ]; then
|
||||||
echo "--> Offsite-Backup Nextcloud"
|
echo "--> Offsite-Backup Nextcloud"
|
||||||
source <(sudo /home/admin/config.scripts/nextcloud.upload.sh upload ${localBackupPath})
|
source <(/home/admin/config.scripts/nextcloud.upload.sh upload ${localBackupPath})
|
||||||
source <(sudo /home/admin/config.scripts/nextcloud.upload.sh upload ${localTimestampedPath})
|
source <(/home/admin/config.scripts/nextcloud.upload.sh upload ${localTimestampedPath})
|
||||||
if [ ${#err} -gt 0 ]; then
|
if [ ${#err} -gt 0 ]; then
|
||||||
echo "FAIL - ${err}"
|
echo "FAIL - ${err}"
|
||||||
else
|
else
|
||||||
@ -406,14 +376,11 @@ do
|
|||||||
recheckRAID=$((($counter % 3600)+1))
|
recheckRAID=$((($counter % 3600)+1))
|
||||||
if [ ${recheckRAID} -eq 1 ]; then
|
if [ ${recheckRAID} -eq 1 ]; then
|
||||||
|
|
||||||
# check if raid is active
|
# check if BTRTFS raid is active & scrub
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
source <(/home/admin/config.scripts/blitz.datadrive.sh status)
|
||||||
if [ ${isRaid} -eq 1 ]; then
|
if [ "${isBTRFS}" == "1" ] && [ "${isRaid}" == "1" ]; then
|
||||||
|
|
||||||
# will run in the background
|
|
||||||
echo "STARTING BTRFS RAID DATA CHECK ..."
|
echo "STARTING BTRFS RAID DATA CHECK ..."
|
||||||
sudo btrfs scrub start /mnt/hdd/
|
btrfs scrub start /mnt/hdd/
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@ -422,8 +389,11 @@ do
|
|||||||
# LND AUTO-UNLOCK
|
# LND AUTO-UNLOCK
|
||||||
###############################
|
###############################
|
||||||
|
|
||||||
# check every 10secs
|
# check every 10secs (only if LND is active)
|
||||||
recheckAutoUnlock=$((($counter % 10)+1))
|
recheckAutoUnlock=0
|
||||||
|
if [ "${lightning}" == "lnd" ] || [ "${lnd}" == "on" ]; then
|
||||||
|
recheckAutoUnlock=$((($counter % 10)+1))
|
||||||
|
fi
|
||||||
if [ ${recheckAutoUnlock} -eq 1 ]; then
|
if [ ${recheckAutoUnlock} -eq 1 ]; then
|
||||||
|
|
||||||
# check if auto-unlock feature if activated
|
# check if auto-unlock feature if activated
|
||||||
@ -434,33 +404,12 @@ do
|
|||||||
if [ "${locked}" != "0" ]; then
|
if [ "${locked}" != "0" ]; then
|
||||||
|
|
||||||
echo "STARTING AUTO-UNLOCK ..."
|
echo "STARTING AUTO-UNLOCK ..."
|
||||||
sudo /home/admin/config.scripts/lnd.unlock.sh
|
/home/admin/config.scripts/lnd.unlock.sh
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
###############################
|
|
||||||
# UPDATE DYNAMIC DOMAIN
|
|
||||||
# like afraid.org
|
|
||||||
# ! experimental
|
|
||||||
###############################
|
|
||||||
|
|
||||||
# if not activated above, update every 6 hours
|
|
||||||
if [ ${updateDynDomain} -eq 0 ]; then
|
|
||||||
# dont +1 so that it gets executed on first loop
|
|
||||||
updateDynDomain=$(($counter % 21600))
|
|
||||||
fi
|
|
||||||
if [ ${updateDynDomain} -eq 1 ]; then
|
|
||||||
echo "*** UPDATE DYNAMIC DOMAIN ***"
|
|
||||||
# check if update URL for dyn Domain is set
|
|
||||||
if [ ${#dynUpdateUrl} -gt 0 ]; then
|
|
||||||
/home/admin/config.scripts/internet.dyndomain.sh update
|
|
||||||
else
|
|
||||||
echo "'dynUpdateUrl' not set in ${configFile}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# CHECK FOR END OF IBD (self validation)
|
# CHECK FOR END OF IBD (self validation)
|
||||||
####################################################
|
####################################################
|
||||||
@ -478,18 +427,22 @@ do
|
|||||||
echo "CHECK FOR END OF IBD --> reduce RAM for next reboot"
|
echo "CHECK FOR END OF IBD --> reduce RAM for next reboot"
|
||||||
|
|
||||||
# remove flag
|
# remove flag
|
||||||
sudo rm /mnt/hdd/${network}/blocks/selfsync.flag
|
rm /mnt/hdd/${network}/blocks/selfsync.flag
|
||||||
|
|
||||||
# set dbcache back to normal (to give room for other apps after reboot in the future)
|
# set dbcache back to normal (to give room for other apps after reboot in the future)
|
||||||
kbSizeRAM=$(sudo cat /proc/meminfo | grep "MemTotal" | sed 's/[^0-9]*//g')
|
kbSizeRAM=$(cat /proc/meminfo | grep "MemTotal" | sed 's/[^0-9]*//g')
|
||||||
|
|
||||||
if [ ${kbSizeRAM} -gt 1500000 ]; then
|
if [ ${kbSizeRAM} -gt 1500000 ]; then
|
||||||
echo "Detected RAM >1GB --> optimizing ${network}.conf"
|
echo "Detected RAM >1GB --> optimizing ${network}.conf"
|
||||||
sudo sed -i "s/^dbcache=.*/dbcache=512/g" /mnt/hdd/${network}/${network}.conf
|
sed -i "s/^dbcache=.*/dbcache=512/g" /mnt/hdd/${network}/${network}.conf
|
||||||
else
|
else
|
||||||
echo "Detected RAM 1GB --> optimizing ${network}.conf"
|
echo "Detected RAM 1GB --> optimizing ${network}.conf"
|
||||||
sudo sed -i "s/^dbcache=.*/dbcache=128/g" /mnt/hdd/${network}/${network}.conf
|
sed -i "s/^dbcache=.*/dbcache=128/g" /mnt/hdd/${network}/${network}.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# relax sanning on sync progress (after 30 more secs)
|
||||||
|
/home/admin/_cache.sh focus btc_default_sync_progress 10 30
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -501,5 +454,4 @@ do
|
|||||||
# sleep 1 sec
|
# sleep 1 sec
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
@ -35,73 +35,78 @@ echo "Running RaspiBlitz Bootstrap ${codeVersion}" >> $logFile
|
|||||||
date >> $logFile
|
date >> $logFile
|
||||||
echo "***********************************************" >> $logFile
|
echo "***********************************************" >> $logFile
|
||||||
|
|
||||||
# set default values for raspiblitz.info
|
# make sure SSH server is configured & running
|
||||||
network=""
|
sudo /home/admin/config.scripts/blitz.ssh.sh checkrepair >> ${logFile}
|
||||||
chain=""
|
|
||||||
setupStep=0
|
|
||||||
setupPhase='boot'
|
|
||||||
fsexpanded=0
|
|
||||||
# see https://github.com/rootzoll/raspiblitz/issues/1265#issuecomment-813369284
|
|
||||||
displayClass="lcd"
|
|
||||||
displayType=""
|
|
||||||
fundRecovery=0
|
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# INIT raspiblitz.info
|
# INIT raspiblitz.info
|
||||||
################################
|
################################
|
||||||
|
# raspiblitz.info contains the persisted system state
|
||||||
|
# that either given by build or has to survive a reboot
|
||||||
|
echo "## INIT raspiblitz.info" >> $logFile
|
||||||
|
|
||||||
# try to load old values if available (overwrites defaults)
|
# set default values for raspiblitz.info (that are not set by build_sdcard.sh)
|
||||||
|
setupPhase='boot'
|
||||||
|
setupStep=0
|
||||||
|
fsexpanded=0
|
||||||
|
fundRecovery=0
|
||||||
|
|
||||||
|
# load already persisted valued (overwriting defaults if exist)
|
||||||
source ${infoFile} 2>/dev/null
|
source ${infoFile} 2>/dev/null
|
||||||
|
|
||||||
|
# write fresh raspiblitz.info file
|
||||||
|
echo "baseimage=${baseimage}" > $infoFile
|
||||||
|
echo "cpu=${cpu}" >> $infoFile
|
||||||
|
echo "displayClass=${displayClass}" >> $infoFile
|
||||||
|
echo "displayType=${displayType}" >> $infoFile
|
||||||
|
echo "setupPhase=${setupPhase}" >> $infoFile
|
||||||
|
echo "setupStep=${setupStep}" >> $infoFile
|
||||||
|
echo "fundRecovery=${fundRecovery}" >> $infoFile
|
||||||
|
echo "fsexpanded=${fsexpanded}" >> $infoFile
|
||||||
|
echo "state=starting" >> $infoFile
|
||||||
|
sudo chmod 664 ${infoFile}
|
||||||
|
|
||||||
|
# write content of raspiblitz.info to logs
|
||||||
|
cat $infoFile >> $logFile
|
||||||
|
|
||||||
|
#########################
|
||||||
|
# INIT RaspiBlitz Cache
|
||||||
|
#########################
|
||||||
|
|
||||||
|
echo "## INIT RaspiBlitz Cache ... wait background.scan.service to finsih first scan loop" >> $logFile
|
||||||
|
systemscan_runtime=""
|
||||||
|
while [ "${systemscan_runtime}" == "" ]
|
||||||
|
do
|
||||||
|
sleep 1
|
||||||
|
source <(/home/admin/_cache.sh get systemscan_runtime)
|
||||||
|
echo "- waiting for background.scan.service --> systemscan_runtime(${systemscan_runtime})" >> $logFile
|
||||||
|
done
|
||||||
|
|
||||||
|
# make sure latest info file is imported
|
||||||
|
/home/admin/_cache.sh import $infoFile
|
||||||
|
|
||||||
|
# setting basic status info
|
||||||
|
/home/admin/_cache.sh set state "starting"
|
||||||
|
/home/admin/_cache.sh set message "bootstrap"
|
||||||
|
|
||||||
# try to load config values if available (config overwrites info)
|
# try to load config values if available (config overwrites info)
|
||||||
source ${configFile} 2>/dev/null
|
source ${configFile} 2>/dev/null
|
||||||
|
|
||||||
# get first basic network info
|
# monitor LAN connection fast to display local IP changes
|
||||||
source <(/home/admin/config.scripts/internet.sh status)
|
/home/admin/_cache.sh focus internet_localip 0
|
||||||
|
|
||||||
# get basic hardware info
|
|
||||||
source <(/home/admin/config.scripts/blitz.hardware.sh status)
|
|
||||||
|
|
||||||
# get basic dns info
|
|
||||||
source <(sudo /home/admin/config.scripts/internet.dns.sh test nodialog)
|
|
||||||
|
|
||||||
# resetting info file
|
|
||||||
echo "Resetting the InfoFile: ${infoFile}"
|
|
||||||
echo "state=starting" > $infoFile
|
|
||||||
echo "message=" >> $infoFile
|
|
||||||
echo "baseimage=${baseimage}" >> $infoFile
|
|
||||||
echo "cpu=${cpu}" >> $infoFile
|
|
||||||
echo "board=${board}" >> $infoFile
|
|
||||||
echo "ramMB=${ramMB}" >> $infoFile
|
|
||||||
echo "ramGB=${ramGB}" >> $infoFile
|
|
||||||
echo "network=${network}" >> $infoFile
|
|
||||||
echo "chain=${chain}" >> $infoFile
|
|
||||||
echo "localip='${localip}'" >> $infoFile
|
|
||||||
echo "online='${online}'" >> $infoFile
|
|
||||||
echo "dnsworking=${dnsworking}" >> $infoFile
|
|
||||||
echo "fsexpanded=${fsexpanded}" >> $infoFile
|
|
||||||
echo "displayClass=${displayClass}" >> $infoFile
|
|
||||||
echo "displayType=${displayType}" >> $infoFile
|
|
||||||
echo "setupStep=${setupStep}" >> $infoFile
|
|
||||||
echo "setupPhase=${setupPhase}" >> $infoFile
|
|
||||||
echo "fundRecovery=${fundRecovery}" >> $infoFile
|
|
||||||
if [ "${setupStep}" != "100" ]; then
|
|
||||||
echo "hostname=${hostname}" >> $infoFile
|
|
||||||
fi
|
|
||||||
sudo chmod 664 ${infoFile}
|
|
||||||
|
|
||||||
######################################
|
######################################
|
||||||
# CHECK SD CARD INCONSISTENT STATE
|
# CHECK SD CARD STATE
|
||||||
|
|
||||||
# make sure SSH server is configured & running
|
|
||||||
sudo /home/admin/config.scripts/blitz.ssh.sh checkrepair >> ${logFile}
|
|
||||||
|
|
||||||
# when a file 'stop' is on the sd card boot partition - stop for manual provision
|
# when a file 'stop' is on the sd card boot partition - stop for manual provision
|
||||||
flagExists=$(sudo ls /boot/stop | grep -c 'stop')
|
flagExists=$(sudo ls /boot/stop | grep -c 'stop')
|
||||||
if [ "${flagExists}" == "1" ]; then
|
if [ "${flagExists}" == "1" ]; then
|
||||||
|
# remove flag
|
||||||
sudo rm /boot/stop
|
sudo rm /boot/stop
|
||||||
sed -i "s/^state=.*/state=stop/g" ${infoFile}
|
# set state info
|
||||||
sed -i "s/^message=.*/message='stopped for manual provision'/g" ${infoFile}
|
/home/admin/_cache.sh set state "stop"
|
||||||
|
/home/admin/_cache.sh set message "stopped for manual provision"
|
||||||
|
# log info
|
||||||
echo "INFO: 'bootstrap stopped - run release after manual provison'" >> ${logFile}
|
echo "INFO: 'bootstrap stopped - run release after manual provison'" >> ${logFile}
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -110,13 +115,84 @@ fi
|
|||||||
provisionFlagExists=$(sudo ls /home/admin/provision.flag | grep -c 'provision.flag')
|
provisionFlagExists=$(sudo ls /home/admin/provision.flag | grep -c 'provision.flag')
|
||||||
if [ "${provisionFlagExists}" == "1" ]; then
|
if [ "${provisionFlagExists}" == "1" ]; then
|
||||||
sudo systemctl stop ${network}d 2>/dev/null
|
sudo systemctl stop ${network}d 2>/dev/null
|
||||||
sudo systemctl stop lnd 2>/dev/null
|
/home/admin/_cache.sh set state "inconsistentsystem"
|
||||||
sed -i "s/^state=.*/state=inconsistentsystem/g" ${infoFile}
|
/home/admin/_cache.sh set message "provision did not ran thru"
|
||||||
sed -i "s/^message=.*/message='provision did not ran thru'/g" ${infoFile}
|
|
||||||
echo "FAIL: 'provision did not ran thru' - need fresh sd card!" >> ${logFile}
|
echo "FAIL: 'provision did not ran thru' - need fresh sd card!" >> ${logFile}
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
################################
|
||||||
|
# BOOT LOGO
|
||||||
|
################################
|
||||||
|
|
||||||
|
# display 3 secs logo - try to kickstart LCD
|
||||||
|
# see https://github.com/rootzoll/raspiblitz/issues/195#issuecomment-469918692
|
||||||
|
# see https://github.com/rootzoll/raspiblitz/issues/647
|
||||||
|
# see https://github.com/rootzoll/raspiblitz/pull/1580
|
||||||
|
randnum=$(shuf -i 0-7 -n 1)
|
||||||
|
/home/admin/config.scripts/blitz.display.sh image /home/admin/raspiblitz/pictures/startlogo${randnum}.png
|
||||||
|
sleep 5
|
||||||
|
/home/admin/config.scripts/blitz.display.sh hide
|
||||||
|
|
||||||
|
################################
|
||||||
|
# CLEANING BOOT SYSTEM
|
||||||
|
################################
|
||||||
|
|
||||||
|
# Emergency cleaning logs when over 1GB (to prevent SD card filling up)
|
||||||
|
# see https://github.com/rootzoll/raspiblitz/issues/418#issuecomment-472180944
|
||||||
|
echo "*** Checking Log Size ***"
|
||||||
|
logsMegaByte=$(sudo du -c -m /var/log | grep "total" | awk '{print $1;}')
|
||||||
|
if [ ${logsMegaByte} -gt 1000 ]; then
|
||||||
|
echo "WARN !! Logs /var/log in are bigger then 1GB" >> $logFile
|
||||||
|
# dont delete directories - can make services crash
|
||||||
|
sudo rm /var/log/*
|
||||||
|
sudo service rsyslog restart
|
||||||
|
/home/admin/_cache.sh set message "WARNING: /var/log/ >1GB"
|
||||||
|
echo "WARN !! Logs in /var/log in were bigger then 1GB and got emergency delete to prevent fillup." >> $logFile
|
||||||
|
echo "If you see this in the logs please report to the GitHub issues, so LOG config needs to be optimized." >> $logFile
|
||||||
|
sleep 10
|
||||||
|
else
|
||||||
|
echo "OK - logs are at ${logsMegaByte} MB - within safety limit" >> $logFile
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# get the state of data drive
|
||||||
|
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
||||||
|
|
||||||
|
################################
|
||||||
|
# WAIT LOOP: HDD CONNECTED
|
||||||
|
################################
|
||||||
|
|
||||||
|
echo "Waiting for HDD/SSD ..." >> $logFile
|
||||||
|
sudo ls -la /etc/ssh >> $logFile
|
||||||
|
until [ ${isMounted} -eq 1 ] || [ ${#hddCandidate} -gt 0 ]
|
||||||
|
do
|
||||||
|
|
||||||
|
# recheck HDD/SSD
|
||||||
|
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
||||||
|
echo "isMounted: $isMounted" >> $logFile
|
||||||
|
echo "hddCandidate: $hddCandidate" >> $logFile
|
||||||
|
|
||||||
|
# in case of HDD analyse ERROR
|
||||||
|
if [ "${hddError}" != "" ]; then
|
||||||
|
echo "FAIL - error on HDD analysis: ${hddError}" >> $logFile
|
||||||
|
/home/admin/_cache.sh set state "errorHDD"
|
||||||
|
/home/admin/_cache.sh set message "${hddError}"
|
||||||
|
elif [ "${isMounted}" == "0" ] && [ "${hddCandidate}" == "" ]; then
|
||||||
|
/home/admin/_cache.sh set state "noHDD"
|
||||||
|
/home/admin/_cache.sh set message ">=1TB"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# wait for next check
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
done
|
||||||
|
echo "HDD/SSD connected: ${$hddCandidate}" >> $logFile
|
||||||
|
|
||||||
|
# write info for LCD
|
||||||
|
/home/admin/_cache.sh set state "system-init"
|
||||||
|
/home/admin/_cache.sh set message "please wait"
|
||||||
|
|
||||||
######################################
|
######################################
|
||||||
# SECTION FOR POSSIBLE REBOOT ACTIONS
|
# SECTION FOR POSSIBLE REBOOT ACTIONS
|
||||||
systemInitReboot=0
|
systemInitReboot=0
|
||||||
@ -136,7 +212,7 @@ if [ ${forceHDMIoutput} -eq 1 ]; then
|
|||||||
echo "HDMI switch found ... activating HDMI display output & reboot" >> $logFile
|
echo "HDMI switch found ... activating HDMI display output & reboot" >> $logFile
|
||||||
sudo /home/admin/config.scripts/blitz.display.sh set-display hdmi >> $logFile
|
sudo /home/admin/config.scripts/blitz.display.sh set-display hdmi >> $logFile
|
||||||
systemInitReboot=1
|
systemInitReboot=1
|
||||||
sed -i "s/^message=.*/message='HDMI'/g" ${infoFile}
|
/home/admin/_cache.sh set message "HDMI"
|
||||||
else
|
else
|
||||||
echo "No HDMI switch found. " >> $logFile
|
echo "No HDMI switch found. " >> $logFile
|
||||||
fi
|
fi
|
||||||
@ -152,12 +228,12 @@ if [ "${needsExpansion}" == "1" ] && [ "${fsexpanded}" == "0" ]; then
|
|||||||
sudo /home/admin/config.scripts/blitz.bootdrive.sh status >> $logFile
|
sudo /home/admin/config.scripts/blitz.bootdrive.sh status >> $logFile
|
||||||
sudo /home/admin/config.scripts/blitz.bootdrive.sh fsexpand >> $logFile
|
sudo /home/admin/config.scripts/blitz.bootdrive.sh fsexpand >> $logFile
|
||||||
systemInitReboot=1
|
systemInitReboot=1
|
||||||
sed -i "s/^message=.*/message='FSEXPAND'/g" ${infoFile}
|
/home/admin/_cache.sh set message "FSEXPAND"
|
||||||
elif [ "${tooSmall}" == "1" ]; then
|
elif [ "${tooSmall}" == "1" ]; then
|
||||||
echo "!!! FAIL !!!!!!!!!!!!!!!!!!!!" >> $logFile
|
echo "!!! FAIL !!!!!!!!!!!!!!!!!!!!" >> $logFile
|
||||||
echo "SDCARD TOO SMALL 16G minimum" >> $logFile
|
echo "SDCARD TOO SMALL 16G minimum" >> $logFile
|
||||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $logFile
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $logFile
|
||||||
sed -i "s/^state=.*/state=sdtoosmall/g" ${infoFile}
|
/home/admin/_cache.sh set state "sdtoosmall"
|
||||||
echo "System stopped. Please cut power." >> $logFile
|
echo "System stopped. Please cut power." >> $logFile
|
||||||
sleep 6000
|
sleep 6000
|
||||||
sudo shutdown -r now
|
sudo shutdown -r now
|
||||||
@ -167,6 +243,36 @@ else
|
|||||||
echo "No FS EXPAND needed. needsExpansion(${needsExpansion}) fsexpanded(${fsexpanded})" >> $logFile
|
echo "No FS EXPAND needed. needsExpansion(${needsExpansion}) fsexpanded(${fsexpanded})" >> $logFile
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# now that HDD/SSD is connected ... if relevant data from a previous RaspiBlitz was available
|
||||||
|
# /var/cache/raspiblitz/hdd-inspect exists with copy of config data to init system with
|
||||||
|
# NOTE: /var/cache/raspiblitz/hdd-inspect will not exist when HDD/SSD is already regulary mounted
|
||||||
|
|
||||||
|
####################################
|
||||||
|
# WIFI RESTORE from HDD works with
|
||||||
|
# mem copy from datadrive inspection
|
||||||
|
####################################
|
||||||
|
|
||||||
|
# check if there is a WIFI configuration to backup or restore
|
||||||
|
if [ -f "/var/cache/raspiblitz/hdd-inspect/wpa_supplicant.conf" ]; then
|
||||||
|
echo "WIFI RESTORE from /var/cache/raspiblitz/hdd-inspect/wpa_supplicant.conf" >> $logFile
|
||||||
|
/home/admin/config.scripts/internet.wifi.sh backup-restore >> $logFile
|
||||||
|
else
|
||||||
|
echo "No WIFI RESTORE because no /var/cache/raspiblitz/hdd-inspect/wpa_supplicant.conf" >> $logFile
|
||||||
|
fi
|
||||||
|
|
||||||
|
################################
|
||||||
|
# SSH SERVER CERTS RESTORE
|
||||||
|
# if backup is available on HDD/SSD
|
||||||
|
################################
|
||||||
|
|
||||||
|
if [ -d "/var/cache/raspiblitz/hdd-inspect/ssh" ]; then
|
||||||
|
# INIT OLD SSH HOST KEYS on Update/Recovery to prevent "Unknown Host" on ssh client
|
||||||
|
echo "SSH SERVER CERTS RESTORE activating old SSH host keys" >> $logFile
|
||||||
|
/home/admin/config.scripts/blitz.ssh.sh restore /var/cache/raspiblitz/hdd-inspect >> $logFile
|
||||||
|
else
|
||||||
|
echo "No SSH SERVER CERTS RESTORE because no /var/cache/raspiblitz/hdd-inspect/ssh" >> $logFile
|
||||||
|
fi
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# SSH SERVER CERTS RESET
|
# SSH SERVER CERTS RESET
|
||||||
# if a file called 'ssh.reset' gets
|
# if a file called 'ssh.reset' gets
|
||||||
@ -177,29 +283,57 @@ fi
|
|||||||
sshReset=$(sudo ls /boot/ssh.reset* 2>/dev/null | grep -c reset)
|
sshReset=$(sudo ls /boot/ssh.reset* 2>/dev/null | grep -c reset)
|
||||||
if [ ${sshReset} -eq 1 ]; then
|
if [ ${sshReset} -eq 1 ]; then
|
||||||
# delete that file (to prevent loop)
|
# delete that file (to prevent loop)
|
||||||
sudo rm /boot/ssh.reset* >> $logFile
|
rm /boot/ssh.reset* >> $logFile
|
||||||
# delete ssh certs
|
# delete ssh certs
|
||||||
echo "SSHRESET switch found ... stopping SSH and deleting old certs" >> $logFile
|
echo "SSHRESET switch found ... stopping SSH and deleting old certs" >> $logFile
|
||||||
sudo /home/admin/config.scripts/blitz.ssh.sh renew >> $logFile
|
/home/admin/config.scripts/blitz.ssh.sh renew >> $logFile
|
||||||
sudo /home/admin/config.scripts/blitz.ssh.sh backup >> $logFile
|
/home/admin/config.scripts/blitz.ssh.sh backup >> $logFile
|
||||||
sudo ufw allow ssh
|
|
||||||
systemInitReboot=1
|
systemInitReboot=1
|
||||||
sed -i "s/^message=.*/message='SSHRESET'/g" ${infoFile}
|
/home/admin/_cache.sh set message "SSHRESET"
|
||||||
else
|
else
|
||||||
echo "No SSHRESET switch found. " >> $logFile
|
echo "No SSHRESET switch found. " >> $logFile
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
##################################
|
||||||
|
# DISPLAY RESTORE (if needed)
|
||||||
|
##################################
|
||||||
|
if [ -f "/var/cache/raspiblitz/hdd-inspect/raspiblitz.conf" ]; then
|
||||||
|
|
||||||
|
echo "check that display class in raspiblitz.conf from HDD is different from as it is ow in raspiblitz.info ..." >> $logFile
|
||||||
|
|
||||||
|
# get display class value from raspiblitz.info
|
||||||
|
source <(cat ${infoFile} | grep "^displayClass=")
|
||||||
|
infoFileDisplayClass="${displayClass}"
|
||||||
|
echo "infoFileDisplayClass(${infoFileDisplayClass})" >> $logFile
|
||||||
|
|
||||||
|
# get display class value from raspiblitz.conf
|
||||||
|
source <(cat /var/cache/raspiblitz/hdd-inspect/raspiblitz.conf | grep "^displayClass=")
|
||||||
|
confFileDisplayClass="${displayClass}"
|
||||||
|
echo "confFileDisplayClass(${confFileDisplayClass})" >> $logFile
|
||||||
|
|
||||||
|
# check if values are different and need to change
|
||||||
|
if [ "${confFileDisplayClass}" != "" ] && [ "${infoFileDisplayClass}" != "${displayClass}" ]; then
|
||||||
|
echo "DISPLAY RESTORE - need to update displayClass from (${infoFileDisplayClass}) to (${confFileDisplayClass})'" >> ${logFile}
|
||||||
|
/home/admin/config.scripts/blitz.display.sh set-display ${confFileDisplayClass} >> ${logFile}
|
||||||
|
systemInitReboot=1
|
||||||
|
else
|
||||||
|
echo "No DISPLAY RESTORE because no need to change" >> $logFile
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "No DISPLAY RESTORE because no /var/cache/raspiblitz/hdd-inspect/raspiblitz.conf" >> $logFile
|
||||||
|
fi
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# UASP FIX - first try
|
# UASP FIX
|
||||||
# if HDD is connected on start
|
|
||||||
################################
|
################################
|
||||||
|
/home/admin/_cache.sh set message "checking HDD"
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh uasp-fix)
|
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh uasp-fix)
|
||||||
if [ "${neededReboot}" == "1" ]; then
|
if [ "${neededReboot}" == "1" ]; then
|
||||||
echo "UASP FIX applied (1st-try) ... reboot needed." >> $logFile
|
echo "UASP FIX applied ... reboot needed." >> $logFile
|
||||||
sed -i "s/^message=.*/message='UASP'/g" ${infoFile}
|
|
||||||
systemInitReboot=1
|
systemInitReboot=1
|
||||||
else
|
else
|
||||||
echo "No UASP FIX needed (1st-try)." >> $logFile
|
echo "No UASP FIX needed" >> $logFile
|
||||||
fi
|
fi
|
||||||
|
|
||||||
######################################
|
######################################
|
||||||
@ -208,127 +342,13 @@ fi
|
|||||||
|
|
||||||
if [ "${systemInitReboot}" == "1" ]; then
|
if [ "${systemInitReboot}" == "1" ]; then
|
||||||
sudo cp ${logFile} /home/admin/raspiblitz.systeminit.log
|
sudo cp ${logFile} /home/admin/raspiblitz.systeminit.log
|
||||||
sudo sed -i "s/^state=.*/state=reboot/g" ${infoFile}
|
/home/admin/_cache.sh set state "reboot"
|
||||||
sleep 8
|
sleep 8
|
||||||
sudo shutdown -r now
|
sudo shutdown -r now
|
||||||
sleep 100
|
sleep 100
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
################################
|
|
||||||
# BOOT LOGO
|
|
||||||
################################
|
|
||||||
|
|
||||||
# display 3 secs logo - try to kickstart LCD
|
|
||||||
# see https://github.com/rootzoll/raspiblitz/issues/195#issuecomment-469918692
|
|
||||||
# see https://github.com/rootzoll/raspiblitz/issues/647
|
|
||||||
# see https://github.com/rootzoll/raspiblitz/pull/1580
|
|
||||||
randnum=$(shuf -i 0-7 -n 1)
|
|
||||||
/home/admin/config.scripts/blitz.display.sh image /home/admin/raspiblitz/pictures/startlogo${randnum}.png
|
|
||||||
sleep 5
|
|
||||||
/home/admin/config.scripts/blitz.display.sh hide
|
|
||||||
|
|
||||||
################################
|
|
||||||
# CLEANING BOOT SYSTEM
|
|
||||||
################################
|
|
||||||
|
|
||||||
# resetting start count files
|
|
||||||
echo "SYSTEMD RESTART LOG: blockchain (bitcoind)" > /home/admin/systemd.blockchain.log
|
|
||||||
echo "SYSTEMD RESTART LOG: lightning (LND)" > /home/admin/systemd.lightning.log
|
|
||||||
sudo chmod 666 /home/admin/systemd.blockchain.log
|
|
||||||
sudo chmod 666 /home/admin/systemd.lightning.log
|
|
||||||
|
|
||||||
# Emergency cleaning logs when over 1GB (to prevent SD card filling up)
|
|
||||||
# see https://github.com/rootzoll/raspiblitz/issues/418#issuecomment-472180944
|
|
||||||
echo "*** Checking Log Size ***"
|
|
||||||
logsMegaByte=$(sudo du -c -m /var/log | grep "total" | awk '{print $1;}')
|
|
||||||
if [ ${logsMegaByte} -gt 1000 ]; then
|
|
||||||
echo "WARN !! Logs /var/log in are bigger then 1GB"
|
|
||||||
echo "ACTION --> DELETED ALL LOGS"
|
|
||||||
if [ -d "/var/log/nginx" ]; then
|
|
||||||
nginxLog=1
|
|
||||||
echo "/var/log/nginx is present"
|
|
||||||
fi
|
|
||||||
sudo rm -r /var/log/*
|
|
||||||
sudo service rsyslog restart
|
|
||||||
if [ $nginxLog == 1 ]; then
|
|
||||||
sudo mkdir /var/log/nginx
|
|
||||||
echo "Recreated /var/log/nginx"
|
|
||||||
fi
|
|
||||||
sleep 3
|
|
||||||
echo "WARN !! Logs in /var/log in were bigger then 1GB and got emergency delete to prevent fillup."
|
|
||||||
echo "If you see this in the logs please report to the GitHub issues, so LOG config needs to be optimized."
|
|
||||||
else
|
|
||||||
echo "OK - logs are at ${logsMegaByte} MB - within safety limit"
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
###############################
|
|
||||||
# WAIT FOR ALL SERVICES
|
|
||||||
|
|
||||||
# get the state of data drive
|
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
|
||||||
|
|
||||||
################################
|
|
||||||
# WAIT LOOP: HDD CONNECTED
|
|
||||||
################################
|
|
||||||
|
|
||||||
echo "Waiting for HDD/SSD ..." >> $logFile
|
|
||||||
sudo ls -la /etc/ssh >> $logFile
|
|
||||||
until [ ${isMounted} -eq 1 ] || [ ${#hddCandidate} -gt 0 ]
|
|
||||||
do
|
|
||||||
|
|
||||||
# recheck HDD/SSD
|
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
|
||||||
echo "isMounted: $isMounted"
|
|
||||||
echo "hddCandidate: $hddCandidate"
|
|
||||||
|
|
||||||
# in case of HDD analyse ERROR
|
|
||||||
if [ "${hddError}" != "" ]; then
|
|
||||||
echo "FAIL - error on HDD analysis: ${hddError}" >> $logFile
|
|
||||||
sed -i "s/^state=.*/state=errorHDD/g" ${infoFile}
|
|
||||||
sed -i "s/^message=.*/message='${hddError}'/g" ${infoFile}
|
|
||||||
elif [ "${isMounted}" == "0" ] && [ "${hddCandidate}" == "" ]; then
|
|
||||||
sed -i "s/^state=.*/state=noHDD/g" ${infoFile}
|
|
||||||
sed -i "s/^message=.*/message='>=1TB'/g" ${infoFile}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# wait for next check
|
|
||||||
sleep 2
|
|
||||||
|
|
||||||
done
|
|
||||||
echo "HDD/SSD connected: ${hddCandidate}" >> $logFile
|
|
||||||
|
|
||||||
# write info for LCD
|
|
||||||
sed -i "s/^state=.*/state=system-init/g" ${infoFile}
|
|
||||||
sed -i "s/^message=.*/message='please wait'/g" ${infoFile}
|
|
||||||
|
|
||||||
####################################
|
|
||||||
# WIFI RESTORE from HDD works with
|
|
||||||
# mem copy from datadrive inspection
|
|
||||||
####################################
|
|
||||||
|
|
||||||
# check if there is a WIFI configuration to backup or restore
|
|
||||||
/home/admin/config.scripts/internet.wifi.sh backup-restore >> $logFile
|
|
||||||
|
|
||||||
################################
|
|
||||||
# UASP FIX - second try
|
|
||||||
# when HDD gets connected later
|
|
||||||
################################
|
|
||||||
sed -i "s/^message=.*/message='checking HDD'/g" ${infoFile}
|
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh uasp-fix)
|
|
||||||
if [ "${neededReboot}" == "1" ]; then
|
|
||||||
echo "UASP FIX applied (2nd-try) ... reboot needed." >> $logFile
|
|
||||||
sudo cp ${logFile} ${logFile}.uasp
|
|
||||||
sudo sed -i "s/^state=.*/state=reboot/g" ${infoFile}
|
|
||||||
sleep 8
|
|
||||||
sudo shutdown -r now
|
|
||||||
sleep 100
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
echo "No UASP FIX needed (2nd-try)." >> $logFile
|
|
||||||
fi
|
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
# WAIT LOOP: LOCALNET / INTERNET
|
# WAIT LOOP: LOCALNET / INTERNET
|
||||||
# after HDD > can contain WIFI conf
|
# after HDD > can contain WIFI conf
|
||||||
@ -337,30 +357,28 @@ gotLocalIP=0
|
|||||||
until [ ${gotLocalIP} -eq 1 ]
|
until [ ${gotLocalIP} -eq 1 ]
|
||||||
do
|
do
|
||||||
|
|
||||||
# get latest network info & update raspiblitz.info
|
# get latest network info directly
|
||||||
source <(/home/admin/config.scripts/internet.sh status)
|
source <(/home/admin/config.scripts/internet.sh status online)
|
||||||
sed -i "s/^localip=.*/localip='${localip}'/g" ${infoFile}
|
|
||||||
|
|
||||||
# check state of network
|
# check state of network
|
||||||
if [ ${dhcp} -eq 0 ]; then
|
if [ ${dhcp} -eq 0 ]; then
|
||||||
# display user waiting for DHCP
|
# display user waiting for DHCP
|
||||||
sed -i "s/^state=.*/state=noDHCP/g" ${infoFile}
|
/home/admin/_cache.sh set state "noDHCP"
|
||||||
sed -i "s/^message=.*/message='Waiting for DHCP'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Waiting for DHCP"
|
||||||
elif [ ${#localip} -eq 0 ]; then
|
elif [ ${#localip} -eq 0 ]; then
|
||||||
configWifiExists=$(sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 2>/dev/null| grep -c "network=")
|
|
||||||
if [ ${configWifiExists} -eq 0 ]; then
|
if [ ${configWifiExists} -eq 0 ]; then
|
||||||
# display user to connect LAN
|
# display user to connect LAN
|
||||||
sed -i "s/^state=.*/state=noIP-LAN/g" ${infoFile}
|
/home/admin/_cache.sh set state "noIP-LAN"
|
||||||
sed -i "s/^message=.*/message='Connect the LAN/WAN'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Connect the LAN/WAN"
|
||||||
else
|
else
|
||||||
# display user that wifi settings are not working
|
# display user that wifi settings are not working
|
||||||
sed -i "s/^state=.*/state=noIP-WIFI/g" ${infoFile}
|
/home/admin/_cache.sh set state "noIP-WIFI"
|
||||||
sed -i "s/^message=.*/message='WIFI Settings not working'/g" ${infoFile}
|
/home/admin/_cache.sh set message "WIFI Settings not working"
|
||||||
fi
|
fi
|
||||||
elif [ ${online} -eq 0 ]; then
|
elif [ ${online} -eq 0 ]; then
|
||||||
# display user that wifi settings are not working
|
# display user that wifi settings are not working
|
||||||
sed -i "s/^state=.*/state=noInternet/g" ${infoFile}
|
/home/admin/_cache.sh set state "noInternet"
|
||||||
sed -i "s/^message=.*/message='No connection to Internet'/g" ${infoFile}
|
/home/admin/_cache.sh set message "No connection to Internet"
|
||||||
else
|
else
|
||||||
gotLocalIP=1
|
gotLocalIP=1
|
||||||
fi
|
fi
|
||||||
@ -368,40 +386,14 @@ do
|
|||||||
done
|
done
|
||||||
|
|
||||||
# write info for LCD
|
# write info for LCD
|
||||||
sed -i "s/^state=.*/state=inspect-hdd/g" ${infoFile}
|
/home/admin/_cache.sh set state "inspect-hdd"
|
||||||
sed -i "s/^message=.*/message='please wait'/g" ${infoFile}
|
/home/admin/_cache.sh set message "please wait"
|
||||||
|
|
||||||
# get fresh info about data drive to continue
|
# get fresh info about data drive to continue
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
||||||
|
|
||||||
echo "isMounted: $isMounted" >> $logFile
|
echo "isMounted: $isMounted" >> $logFile
|
||||||
|
|
||||||
# check if UASP is already deactivated (on RaspiOS)
|
|
||||||
# https://www.pragmaticlinux.com/2021/03/fix-for-getting-your-ssd-working-via-usb-3-on-your-raspberry-pi/
|
|
||||||
cmdlineExists=$(sudo ls /boot/cmdline.txt 2>/dev/null | grep -c "cmdline.txt")
|
|
||||||
if [ ${cmdlineExists} -eq 1 ] && [ ${#hddAdapterUSB} -gt 0 ] && [ ${hddAdapterUSAP} -eq 0 ]; then
|
|
||||||
echo "Checking for UASP deactivation ..." >> $logFile
|
|
||||||
usbQuirkActive=$(sudo cat /boot/cmdline.txt | grep -c "usb-storage.quirks=")
|
|
||||||
# check if its maybe other device
|
|
||||||
usbQuirkDone=$(sudo cat /boot/cmdline.txt | grep -c "usb-storage.quirks=${hddAdapterUSB}:u")
|
|
||||||
if [ ${usbQuirkActive} -gt 0 ] && [ ${usbQuirkDone} -eq 0 ]; then
|
|
||||||
# remove old usb-storage.quirks
|
|
||||||
sudo sed -i "s/usb-storage.quirks=[^ ]* //g" /boot/cmdline.txt
|
|
||||||
fi
|
|
||||||
if [ ${usbQuirkDone} -eq 0 ]; then
|
|
||||||
# add new usb-storage.quirks
|
|
||||||
sudo sed -i "1s/^/usb-storage.quirks=${hddAdapterUSB}:u /" /boot/cmdline.txt
|
|
||||||
sudo cat /boot/cmdline.txt >> $logFile
|
|
||||||
# go into reboot to activate new setting
|
|
||||||
echo "DONE deactivating UASP for ${hddAdapterUSB} ... one more reboot needed ... " >> $logFile
|
|
||||||
sudo cp ${logFile} ${logFile}.uasp
|
|
||||||
sudo shutdown -r now
|
|
||||||
sleep 100
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Skipping UASP deactivation ... cmdlineExists(${cmdlineExists}) hddAdapterUSB(${hddAdapterUSB}) hddAdapterUSAP(${hddAdapterUSAP})" >> $logFile
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if the HDD is auto-mounted ( auto-mounted = setup-done)
|
# check if the HDD is auto-mounted ( auto-mounted = setup-done)
|
||||||
echo "HDD already part of system: $isMounted" >> $logFile
|
echo "HDD already part of system: $isMounted" >> $logFile
|
||||||
|
|
||||||
@ -422,10 +414,11 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
echo "Temp mounting (1) result: ${isMounted}" >> $logFile
|
echo "Temp mounting (1) result: ${isMounted}" >> $logFile
|
||||||
|
|
||||||
# write data needed for setup process into raspiblitz.info
|
# write data needed for setup process into raspiblitz.info
|
||||||
echo "hddCandidate='${hddCandidate}'" >> ${infoFile}
|
/home/admin/_cache.sh set hddCandidate "${hddCandidate}"
|
||||||
echo "hddGigaBytes=${hddGigaBytes}" >> ${infoFile}
|
/home/admin/_cache.sh set hddGigaBytes "${hddGigaBytes}"
|
||||||
echo "hddBlocksBitcoin=${hddBlocksBitcoin}" >> ${infoFile}
|
/home/admin/_cache.sh set hddBlocksBitcoin "${hddBlocksBitcoin}"
|
||||||
echo "hddGotMigrationData=${hddGotMigrationData}" >> ${infoFile}
|
/home/admin/_cache.sh set hddBlocksLitecoin "${hddBlocksLitecoin}"
|
||||||
|
/home/admin/_cache.sh set hddGotMigrationData "${hddGotMigrationData}"
|
||||||
echo ""
|
echo ""
|
||||||
echo "HDD is there but not AutoMounted yet - Waiting for user Setup/Update" >> $logFile
|
echo "HDD is there but not AutoMounted yet - Waiting for user Setup/Update" >> $logFile
|
||||||
|
|
||||||
@ -445,10 +438,6 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
setupPhase="migration"
|
setupPhase="migration"
|
||||||
elif [ "${hddRaspiData}" == "1" ]; then
|
elif [ "${hddRaspiData}" == "1" ]; then
|
||||||
|
|
||||||
# INIT OLD SSH HOST KEYS on Update/Recovery to prevent "Unknown Host" on ssh client
|
|
||||||
echo "COPY und Activating old SSH host keys" >> $logFile
|
|
||||||
/home/admin/config.scripts/blitz.ssh.sh restore >> $logFile
|
|
||||||
|
|
||||||
# determine if this is a recovery or an update
|
# determine if this is a recovery or an update
|
||||||
# TODO: improve version/update detection later
|
# TODO: improve version/update detection later
|
||||||
isRecovery=$(echo "${hddRaspiVersion}" | grep -c "${codeVersion}")
|
isRecovery=$(echo "${hddRaspiVersion}" | grep -c "${codeVersion}")
|
||||||
@ -464,9 +453,9 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
|
|
||||||
# signal "WAIT LOOP: SETUP" to LCD, SSH & WEBAPI
|
# signal "WAIT LOOP: SETUP" to LCD, SSH & WEBAPI
|
||||||
echo "Displaying Info Message: ${infoMessage}" >> $logFile
|
echo "Displaying Info Message: ${infoMessage}" >> $logFile
|
||||||
sed -i "s/^state=.*/state=waitsetup/g" ${infoFile}
|
/home/admin/_cache.sh set state "waitsetup"
|
||||||
sed -i "s/^message=.*/message='${infoMessage}'/g" ${infoFile}
|
/home/admin/_cache.sh set message "${infoMessage}"
|
||||||
sed -i "s/^setupPhase=.*/setupPhase='${setupPhase}'/g" ${infoFile}
|
/home/admin/_cache.sh set setupPhase "${setupPhase}"
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# WAIT LOOP: USER SETUP/UPDATE/MIGRATION
|
# WAIT LOOP: USER SETUP/UPDATE/MIGRATION
|
||||||
@ -480,19 +469,16 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
# get fresh info about data drive (in case the hdd gets disconnected)
|
# get fresh info about data drive (in case the hdd gets disconnected)
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
||||||
if [ "${hddCandidate}" == "" ]; then
|
if [ "${hddCandidate}" == "" ]; then
|
||||||
echo "!!! WARNING !!! Lost HDD connection .. triggering reboot, to restart system-init." >> ${logFile}
|
/home/admin/config.scripts/blitz.error.sh _bootstrap.sh "lost-hdd" "Lost HDD connection .. triggering reboot." "happened during WAIT LOOP: USER SETUP/UPDATE/MIGRATION" ${logFile}
|
||||||
sed -i "s/^state=.*/state=errorHDD/g" ${infoFile}
|
|
||||||
sed -i "s/^message=.*/message='lost HDD - rebooting'/g" ${infoFile}
|
|
||||||
sudo cp ${logFile} ${logFile}.error
|
|
||||||
sleep 8
|
sleep 8
|
||||||
sudo shutdown -r now
|
sudo shutdown -r now
|
||||||
sleep 100
|
sleep 100
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# detect if network get deconnected again
|
# detect if network get deconnected again (call directly instead of cache)
|
||||||
# --> "removing network cable" can be used as signal to shutdown clean on test startup
|
# --> "removing network cable" can be used as signal to shutdown clean on test startup
|
||||||
source <(/home/admin/config.scripts/internet.sh status)
|
source <(/home/admin/config.scripts/internet.sh status local)
|
||||||
if [ "${localip}" == "" ]; then
|
if [ "${localip}" == "" ]; then
|
||||||
sed -i "s/^state=.*/state=errorNetwork/g" ${infoFile}
|
sed -i "s/^state=.*/state=errorNetwork/g" ${infoFile}
|
||||||
sleep 8
|
sleep 8
|
||||||
@ -504,9 +490,8 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
# give the loop a little bed time
|
# give the loop a little bed time
|
||||||
sleep 4
|
sleep 4
|
||||||
|
|
||||||
# check info file for updated values
|
# check for updated state value from SSH-UI or WEB-UI for loop
|
||||||
# especially the state for checking loop
|
source <(/home/admin/_cache.sh get state)
|
||||||
source ${infoFile}
|
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -515,7 +500,7 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
#############################################
|
#############################################
|
||||||
|
|
||||||
# refresh data from info file
|
# refresh data from info file
|
||||||
source ${infoFile}
|
source <(/home/admin/_cache.sh get state setupPhase)
|
||||||
echo "# PROVISION PROCESS with setupPhase(${setupPhase})" >> ${logFile}
|
echo "# PROVISION PROCESS with setupPhase(${setupPhase})" >> ${logFile}
|
||||||
|
|
||||||
# mark system on sd card as in setup process
|
# mark system on sd card as in setup process
|
||||||
@ -548,17 +533,12 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
sudo cp /var/cache/raspiblitz/temp/raspiblitz.conf ${configFile}
|
sudo cp /var/cache/raspiblitz/temp/raspiblitz.conf ${configFile}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# kick-off provision process
|
# enable tor service
|
||||||
sed -i "s/^state=.*/state=provision/g" ${infoFile}
|
sudo /home/admin/config.scripts/tor.install.sh enable >> ${logFile}
|
||||||
sed -i "s/^message=.*/message='Starting Provision'/g" ${infoFile}
|
|
||||||
|
|
||||||
# load setup data
|
# kick-off provision process
|
||||||
echo "# Sourcing ${configFile} " >> ${logFile}
|
/home/admin/_cache.sh set state "provision"
|
||||||
source ${configFile}
|
/home/admin/_cache.sh set message "Starting Provision"
|
||||||
cat ${configFile} >> ${logFile}
|
|
||||||
echo "# Sourcing ${setupFile} " >> ${logFile}
|
|
||||||
source ${setupFile}
|
|
||||||
sed -e '/^password/d' ${setupFile} >> ${logFile}
|
|
||||||
|
|
||||||
# add some debug info to logfile
|
# add some debug info to logfile
|
||||||
echo "# df " >> ${logFile}
|
echo "# df " >> ${logFile}
|
||||||
@ -566,30 +546,45 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
echo "# lsblk -o NAME,FSTYPE,LABEL " >> ${logFile}
|
echo "# lsblk -o NAME,FSTYPE,LABEL " >> ${logFile}
|
||||||
lsblk -o NAME,FSTYPE,LABEL >> ${logFile}
|
lsblk -o NAME,FSTYPE,LABEL >> ${logFile}
|
||||||
|
|
||||||
# make sure basic info is in raspiblitz.info
|
|
||||||
echo "# Update ${infoFile} " >> ${logFile}
|
|
||||||
sudo sed -i "s/^network=.*/network=${network}/g" ${infoFile}
|
|
||||||
sudo sed -i "s/^chain=.*/chain=${chain}/g" ${infoFile}
|
|
||||||
sudo sed -i "s/^lightning=.*/lightning=${lightning}/g" ${infoFile}
|
|
||||||
cat ${infoFile} >> ${logFile}
|
|
||||||
|
|
||||||
# if migrationFile was uploaded - now import it
|
# if migrationFile was uploaded - now import it
|
||||||
echo "# migrationFile(${migrationFile})" >> ${logFile}
|
echo "# migrationFile(${migrationFile})" >> ${logFile}
|
||||||
if [ "${migrationFile}" != "" ]; then
|
if [ "${migrationFile}" != "" ]; then
|
||||||
|
|
||||||
|
# unpack
|
||||||
sed -i "s/^message=.*/message='Unpacking Migration Data'/g" ${infoFile}
|
sed -i "s/^message=.*/message='Unpacking Migration Data'/g" ${infoFile}
|
||||||
/home/admin/config.scripts/blitz.migration.sh import "${migrationFile}" >> ${logFile}
|
source <(/home/admin/config.scripts/blitz.migration.sh import "${migrationFile}")
|
||||||
sed -i "s/^setupPhase=.*/setupPhase='recovery'/g" ${infoFile}
|
|
||||||
|
# check for errors
|
||||||
|
if [ "${error}" != "" ]; then
|
||||||
|
/home/admin/config.scripts/blitz.error.sh _bootstrap.sh "migration-import-error" "blitz.migration.sh import exited with error" "/home/admin/config.scripts/blitz.migration.sh import ${migrationFile} --> ${error}" ${logFile}
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# signal recovery provision phase
|
||||||
setupPhase="recovery"
|
setupPhase="recovery"
|
||||||
|
/home/admin/_cache.sh set setupPhase "${setupPhase}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# load fresh config data
|
||||||
|
echo "# Sourcing ${configFile} " >> ${logFile}
|
||||||
|
cat ${configFile} >> ${logFile}
|
||||||
|
source ${configFile}
|
||||||
|
|
||||||
|
# load fresh setup data
|
||||||
|
echo "# Sourcing ${setupFile} " >> ${logFile}
|
||||||
|
cat ${setupFile} >> ${logFile}
|
||||||
|
source ${setupFile}
|
||||||
|
|
||||||
|
# make sure basic info is in raspiblitz.info
|
||||||
|
/home/admin/_cache.sh set network "${network}"
|
||||||
|
/home/admin/_cache.sh set chain "${chain}"
|
||||||
|
/home/admin/_cache.sh set lightning "${lightning}"
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
# Set Password A (in all cases)
|
# Set Password A (in all cases)
|
||||||
|
|
||||||
if [ "${passwordA}" == "" ]; then
|
if [ "${passwordA}" == "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _bootstrap.sh "missing-passworda" "missing passwordA in (${setupFile})" "" ${logFile}
|
||||||
sed -i "s/^message=.*/message='config: missing passwordA'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: missing passwordA in (${setupFile})!" >> ${logFile}
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -605,10 +600,11 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
errorState=$?
|
errorState=$?
|
||||||
sudo cat /home/admin/raspiblitz.provision-setup.log
|
sudo cat /home/admin/raspiblitz.provision-setup.log
|
||||||
if [ "$errorState" != "0" ]; then
|
if [ "$errorState" != "0" ]; then
|
||||||
echo "EXIT _provision.setup.sh BECAUSE OF ERROR STATE ($errorState)" >> $logFile
|
# only trigger an error message if the script hasnt itself triggered an error message already
|
||||||
echo "This can also happen if _provision.setup.sh has syntax errors" >> $logFile
|
source <(/home/admin/_cache.sh get state)
|
||||||
sed -i "s/^state=.*/state='error'/g" ${infoFile}
|
if [ "${state}" != "error" ]; then
|
||||||
sed -i "s/^message=.*/message='_provision.setup.sh fail'/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _bootstrap.sh "provision-setup-exit" "unknown or syntax error on (${errorState}) _provision.setup.sh" "" ${logFile}
|
||||||
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -621,10 +617,11 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
errorState=$?
|
errorState=$?
|
||||||
cat /home/admin/raspiblitz.provision-migration.log
|
cat /home/admin/raspiblitz.provision-migration.log
|
||||||
if [ "$errorState" != "0" ]; then
|
if [ "$errorState" != "0" ]; then
|
||||||
echo "EXIT _provision.migration.sh BECAUSE OF ERROR STATE ($errorState)" >> $logFile
|
# only trigger an error message if the script hasnt itself triggered an error message already
|
||||||
echo "This can also happen if _provision.migration.sh has syntax errros" >> $logFile
|
source <(/home/admin/_cache.sh get state)
|
||||||
sed -i "s/^state=.*/state='error'/g" ${infoFile}
|
if [ "${state}" != "error" ]; then
|
||||||
sed -i "s/^message=.*/message='_provision.migration.sh fail'/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _bootstrap.sh "provision-migration-exit" "unknown or syntax error on (${errorState}) _provision.migration.sh" "" ${logFile}
|
||||||
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -637,10 +634,11 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
errorState=$?
|
errorState=$?
|
||||||
cat /home/admin/raspiblitz.provision-update.log
|
cat /home/admin/raspiblitz.provision-update.log
|
||||||
if [ "$errorState" != "0" ]; then
|
if [ "$errorState" != "0" ]; then
|
||||||
echo "EXIT _provision.update.sh BECAUSE OF ERROR STATE ($errorState)" >> $logFile
|
# only trigger an error message if the script hasnt itself triggered an error message already
|
||||||
echo "This can also happen if _provision.update.sh has syntax errors" >> $logFile
|
source <(/home/admin/_cache.sh get state)
|
||||||
sed -i "s/^state=.*/state='error'/g" ${infoFile}
|
if [ "${state}" != "error" ]; then
|
||||||
sed -i "s/^message=.*/message='_provision.update.sh fail'/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _bootstrap.sh "provision-update-exit" "unknown or syntax error on (${errorState}) _provision.update.sh" "" ${logFile}
|
||||||
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -651,30 +649,32 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
/home/admin/_provision_.sh
|
/home/admin/_provision_.sh
|
||||||
errorState=$?
|
errorState=$?
|
||||||
if [ "$errorState" != "0" ]; then
|
if [ "$errorState" != "0" ]; then
|
||||||
echo "EXIT _provision_.sh BECAUSE OF ERROR STATE ($errorState)" >> $logFile
|
# only trigger an error message if the script hasnt itself triggered an error message already
|
||||||
echo "This can also happen if _provision_.sh has syntax errors" >> $logFile
|
source <(/home/admin/_cache.sh get state)
|
||||||
sed -i "s/^state=.*/state='error'/g" ${infoFile}
|
if [ "${state}" != "error" ]; then
|
||||||
sed -i "s/^message=.*/message='_provision_.sh fail'/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _bootstrap.sh "provision-exit" "unknown or syntax error on (${errorState}) _provision_.sh" "" ${logFile}
|
||||||
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# everyone can read the config but it can only be
|
# everyone can read the config but it can only be
|
||||||
# edited/written by root ot admin user (part of group sudo)
|
# edited/written by root ot admin user (part of group sudo)
|
||||||
sudo chown root:sudo ${configFile}
|
chown root:sudo ${configFile}
|
||||||
sudo chmod 664 ${configFile}
|
chmod 664 ${configFile}
|
||||||
|
|
||||||
# delete provision in progress flag
|
# delete provision in progress flag
|
||||||
sudo rm /home/admin/provision.flag
|
rm /home/admin/provision.flag
|
||||||
|
|
||||||
# mark provision process done
|
# mark provision process done
|
||||||
sed -i "s/^message=.*/message='Provision Done'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Provision Done"
|
||||||
|
|
||||||
# wait until syncProgress is available (neeed for final dialogs)
|
# wait until syncProgress is available (neeed for final dialogs)
|
||||||
while [ "${syncProgress}" == "" ]
|
/home/admin/_cache.sh set state "waitsync"
|
||||||
|
btc_default_ready="0"
|
||||||
|
while [ "${btc_default_ready}" != "1" ]
|
||||||
do
|
do
|
||||||
echo "# Waiting for blockchain sync progress info ..." >> $logFile
|
source <(/home/admin/_cache.sh get btc_default_ready)
|
||||||
source <(sudo /home/admin/config.scripts/blitz.statusscan.sh)
|
echo "# waitsync loop ... btc_default_ready(${btc_default_ready})" >> $logFile
|
||||||
sed -i "s/^state=.*/state=waitsync/g" ${infoFile}
|
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -683,8 +683,8 @@ if [ ${isMounted} -eq 0 ]; then
|
|||||||
###################################################
|
###################################################
|
||||||
|
|
||||||
echo "# HANDOVER TO FINAL SETUP CONTROLLER ..." >> $logFile
|
echo "# HANDOVER TO FINAL SETUP CONTROLLER ..." >> $logFile
|
||||||
sed -i "s/^state=.*/state=waitfinal/g" ${infoFile}
|
/home/admin/_cache.sh set state "waitfinal"
|
||||||
sed -i "s/^message=.*/message='Setup Done'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Done"
|
||||||
|
|
||||||
# system has to wait before reboot to present like seed words and other info/options to user
|
# system has to wait before reboot to present like seed words and other info/options to user
|
||||||
echo "BOOTSTRAP EXIT ... waiting for final setup controller to initiate final reboot." >> $logFile
|
echo "BOOTSTRAP EXIT ... waiting for final setup controller to initiate final reboot." >> $logFile
|
||||||
@ -702,14 +702,14 @@ else
|
|||||||
# FIX BLOCKCHAINDATA OWNER (just in case)
|
# FIX BLOCKCHAINDATA OWNER (just in case)
|
||||||
# https://github.com/rootzoll/raspiblitz/issues/239#issuecomment-450887567
|
# https://github.com/rootzoll/raspiblitz/issues/239#issuecomment-450887567
|
||||||
#################################
|
#################################
|
||||||
sudo chown bitcoin:bitcoin -R /mnt/hdd/bitcoin 2>/dev/null
|
chown bitcoin:bitcoin -R /mnt/hdd/bitcoin 2>/dev/null
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# FIX BLOCKING FILES (just in case)
|
# FIX BLOCKING FILES (just in case)
|
||||||
# https://github.com/rootzoll/raspiblitz/issues/1901#issue-774279088
|
# https://github.com/rootzoll/raspiblitz/issues/1901#issue-774279088
|
||||||
# https://github.com/rootzoll/raspiblitz/issues/1836#issue-755342375
|
# https://github.com/rootzoll/raspiblitz/issues/1836#issue-755342375
|
||||||
sudo rm -f /mnt/hdd/bitcoin/bitcoind.pid 2>/dev/null
|
rm -f /mnt/hdd/bitcoin/bitcoind.pid 2>/dev/null
|
||||||
sudo rm -f /mnt/hdd/bitcoin/.lock 2>/dev/null
|
rm -f /mnt/hdd/bitcoin/.lock 2>/dev/null
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# DELETE LOG & LOCK FILES
|
# DELETE LOG & LOCK FILES
|
||||||
@ -717,11 +717,11 @@ else
|
|||||||
# LND and Blockchain Errors will be still in systemd journals
|
# LND and Blockchain Errors will be still in systemd journals
|
||||||
|
|
||||||
# /mnt/hdd/bitcoin/debug.log
|
# /mnt/hdd/bitcoin/debug.log
|
||||||
sudo rm /mnt/hdd/${network}/debug.log 2>/dev/null
|
rm /mnt/hdd/${network}/debug.log 2>/dev/null
|
||||||
# /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log
|
# /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log
|
||||||
sudo rm /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log 2>/dev/null
|
rm /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log 2>/dev/null
|
||||||
# https://github.com/rootzoll/raspiblitz/issues/1700
|
# https://github.com/rootzoll/raspiblitz/issues/1700
|
||||||
sudo rm /mnt/storage/app-storage/electrs/db/mainnet/LOCK 2>/dev/null
|
rm /mnt/storage/app-storage/electrs/db/mainnet/LOCK 2>/dev/null
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -729,57 +729,23 @@ fi
|
|||||||
##############################
|
##############################
|
||||||
# BOOSTRAP IN EVERY SITUATION
|
# BOOSTRAP IN EVERY SITUATION
|
||||||
##############################
|
##############################
|
||||||
|
/home/admin/_cache.sh set setupPhase "starting"
|
||||||
sed -i "s/^setupPhase=.*/setupPhase='starting'/g" ${infoFile}
|
|
||||||
|
|
||||||
# if a WIFI config exists backup to HDD
|
|
||||||
configWifiExists=$(sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 2>/dev/null| grep -c "network=")
|
|
||||||
if [ ${configWifiExists} -eq 1 ]; then
|
|
||||||
echo "Making Backup Copy of WIFI config to HDD" >> $logFile
|
|
||||||
sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /mnt/hdd/app-data/wpa_supplicant.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# make sure lndAddress & lndPort exist in configfile
|
|
||||||
valueExists=$(cat ${configFile} | grep -c 'lndPort=')
|
|
||||||
if [ ${valueExists} -eq 0 ]; then
|
|
||||||
lndPort=$(sudo cat /mnt/hdd/lnd/lnd.conf | grep "^listen=*" | cut -f2 -d':')
|
|
||||||
if [ ${#lndPort} -eq 0 ]; then
|
|
||||||
lndPort="9735"
|
|
||||||
fi
|
|
||||||
echo "lndPort='${lndPort}'" >> ${configFile}
|
|
||||||
fi
|
|
||||||
valueExists=$(cat ${configFile} | grep -c 'lndAddress=')
|
|
||||||
if [ ${valueExists} -eq 0 ]; then
|
|
||||||
echo "lndAddress=''" >> ${configFile}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# load data from config file fresh
|
# load data from config file fresh
|
||||||
echo "load configfile data" >> $logFile
|
echo "load configfile data" >> $logFile
|
||||||
source ${configFile}
|
source ${configFile}
|
||||||
|
|
||||||
# update public IP on boot - set to domain if available
|
# if a WIFI config exists backup to HDD
|
||||||
/home/admin/config.scripts/internet.sh update-publicip ${lndAddress}
|
source <(/home/admin/config.scripts/internet.sh status)
|
||||||
|
if [ ${configWifiExists} -eq 1 ]; then
|
||||||
# make constant UASP entry in raspiblitz.conf if still done by flag file
|
echo "Making Backup Copy of WIFI config to HDD" >> $logFile
|
||||||
# uaspForced comes from blitz.datadrive.sh status
|
cp /etc/wpa_supplicant/wpa_supplicant.conf /mnt/hdd/app-data/wpa_supplicant.conf
|
||||||
if [ ${uaspForced} -eq 1 ]; then
|
|
||||||
entryExists=$(cat /mnt/hdd/raspiblitz.conf 2>/dev/null | grep -c 'forceUasp=on')
|
|
||||||
if [ ${entryExists} -eq 0 ]; then
|
|
||||||
sudo sed -i '/forceUasp=.*/d' /mnt/hdd/raspiblitz.conf
|
|
||||||
echo "forceUasp=on" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
echo "DONE forceUasp=on recorded in raspiblitz.conf" >> $logFile
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#################################
|
# make sure users have latest credentials (if lnd is on)
|
||||||
# MAKE SURE USERS HAVE LATEST LND CREDENTIALS
|
if [ "${lightning}" == "lnd" ] || [ "${lnd}" == "on" ]; then
|
||||||
#################################
|
|
||||||
source ${configFile}
|
|
||||||
if [ ${#network} -gt 0 ] && [ ${#chain} -gt 0 ]; then
|
|
||||||
|
|
||||||
echo "running LND users credentials update" >> $logFile
|
echo "running LND users credentials update" >> $logFile
|
||||||
sudo /home/admin/config.scripts/lnd.credentials.sh sync >> $logFile
|
/home/admin/config.scripts/lnd.credentials.sh sync >> $logFile
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "skipping LND credentials sync" >> $logFile
|
echo "skipping LND credentials sync" >> $logFile
|
||||||
fi
|
fi
|
||||||
@ -789,11 +755,10 @@ fi
|
|||||||
# if "localBackupDeviceUUID" is set in
|
# if "localBackupDeviceUUID" is set in
|
||||||
# raspiblitz.conf mount it on boot
|
# raspiblitz.conf mount it on boot
|
||||||
################################
|
################################
|
||||||
source ${configFile}
|
|
||||||
echo "Checking if additional backup device is configured .. (${localBackupDeviceUUID})" >> $logFile
|
echo "Checking if additional backup device is configured .. (${localBackupDeviceUUID})" >> $logFile
|
||||||
if [ "${localBackupDeviceUUID}" != "" ] && [ "${localBackupDeviceUUID}" != "off" ]; then
|
if [ "${localBackupDeviceUUID}" != "" ] && [ "${localBackupDeviceUUID}" != "off" ]; then
|
||||||
echo "Yes - Mounting BackupDrive: ${localBackupDeviceUUID}" >> $logFile
|
echo "Yes - Mounting BackupDrive: ${localBackupDeviceUUID}" >> $logFile
|
||||||
sudo /home/admin/config.scripts/blitz.backupdevice.sh mount >> $logFile
|
/home/admin/config.scripts/blitz.backupdevice.sh mount >> $logFile
|
||||||
else
|
else
|
||||||
echo "No additional backup device was configured." >> $logFile
|
echo "No additional backup device was configured." >> $logFile
|
||||||
fi
|
fi
|
||||||
@ -801,7 +766,6 @@ fi
|
|||||||
#####################################
|
#####################################
|
||||||
# CLEAN HDD TEMP
|
# CLEAN HDD TEMP
|
||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
echo "CLEANING TEMP DRIVE/FOLDER" >> $logFile
|
echo "CLEANING TEMP DRIVE/FOLDER" >> $logFile
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh clean temp)
|
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh clean temp)
|
||||||
if [ ${#error} -gt 0 ]; then
|
if [ ${#error} -gt 0 ]; then
|
||||||
@ -818,7 +782,17 @@ fi
|
|||||||
if [ ${isRaid} -eq 1 ]; then
|
if [ ${isRaid} -eq 1 ]; then
|
||||||
echo "TRIGGERING BTRFS RAID DATA CHECK ..."
|
echo "TRIGGERING BTRFS RAID DATA CHECK ..."
|
||||||
echo "Check status with: sudo btrfs scrub status /mnt/hdd/"
|
echo "Check status with: sudo btrfs scrub status /mnt/hdd/"
|
||||||
sudo btrfs scrub start /mnt/hdd/
|
btrfs scrub start /mnt/hdd/
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
# FORCE UASP FLAG
|
||||||
|
####################
|
||||||
|
# if uasp.force flag was set on sd card - now move into raspiblitz.conf
|
||||||
|
if [ -f "/boot/uasp.force" ]; then
|
||||||
|
/home/admin/config.scripts/blitz.conf.sh set forceUasp "on"
|
||||||
|
echo "DONE forceUasp=on recorded in raspiblitz.conf" >> $logFile
|
||||||
fi
|
fi
|
||||||
|
|
||||||
######################################
|
######################################
|
||||||
@ -830,18 +804,27 @@ if [ -d "/mnt/hdd/app-data/subscriptions" ]; then
|
|||||||
sudo chown admin:admin /mnt/hdd/app-data/subscriptions
|
sudo chown admin:admin /mnt/hdd/app-data/subscriptions
|
||||||
else
|
else
|
||||||
echo "CREATE: subscription data directory"
|
echo "CREATE: subscription data directory"
|
||||||
sudo mkdir /mnt/hdd/app-data/subscriptions
|
mkdir /mnt/hdd/app-data/subscriptions
|
||||||
sudo chown admin:admin /mnt/hdd/app-data/subscriptions
|
chown admin:admin /mnt/hdd/app-data/subscriptions
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# make sure that bitcoin service is active
|
# make sure that bitcoin service is active
|
||||||
sudo systemctl enable ${network}d
|
sudo systemctl enable ${network}d
|
||||||
|
|
||||||
# make sure setup/provision is marked as done
|
# make sure setup/provision is marked as done
|
||||||
sudo rm /home/admin/provision.flag
|
/home/admin/_cache.sh set setupPhase "done"
|
||||||
sed -i "s/^setupPhase=.*/setupPhase='done'/g" ${infoFile}
|
/home/admin/_cache.sh set state "ready"
|
||||||
sed -i "s/^state=.*/state=ready/g" ${infoFile}
|
/home/admin/_cache.sh set message "Node Running"
|
||||||
sed -i "s/^message=.*/message='Node Running'/g" ${infoFile}
|
|
||||||
|
# relax systemscan on certain values
|
||||||
|
/home/admin/_cache.sh focus internet_localip -1
|
||||||
|
|
||||||
|
# if node is stil in inital blockchain download
|
||||||
|
source <(/home/admin/_cache.sh get btc_default_sync_initialblockdownload)
|
||||||
|
if [ "${btc_default_sync_initialblockdownload}" == "1" ]; then
|
||||||
|
echo "Node is still in IBD .. refresh btc_default_sync_progress faster" >> $logFile
|
||||||
|
/home/admin/_cache.sh focus btc_default_sync_progress 0
|
||||||
|
fi
|
||||||
|
|
||||||
echo "DONE BOOTSTRAP" >> $logFile
|
echo "DONE BOOTSTRAP" >> $logFile
|
||||||
exit 0
|
exit 0
|
||||||
|
474
home.admin/_cache.sh
Executable file
474
home.admin/_cache.sh
Executable file
@ -0,0 +1,474 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# the cache concept of RaspiBlitz has two options
|
||||||
|
# 1) RAMDISK for files under /var/cache/raspiblitz
|
||||||
|
# 2) KEY-VALUE STORE for system state infos (REDIS)
|
||||||
|
|
||||||
|
# SECURITY NOTE: The files on the RAMDISK can be set with unix file permissions and so restrict certain users access.
|
||||||
|
# But all data stored in the KEY-VALUE STORE has to be asumed as system-wide public information.
|
||||||
|
|
||||||
|
# command info
|
||||||
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ]; then
|
||||||
|
echo "RaspiBlitz Cache"
|
||||||
|
echo
|
||||||
|
echo "_cache.sh ramdisk [on|off]"
|
||||||
|
echo "_cache.sh keyvalue [on|off]"
|
||||||
|
echo
|
||||||
|
echo "_cache.sh set [key] [value] [?expire-seconds]"
|
||||||
|
echo "_cache.sh get [key1] [?key2] [?key3] ..."
|
||||||
|
echo
|
||||||
|
echo "_cache.sh increment [key1]"
|
||||||
|
echo
|
||||||
|
echo "_cache.sh focus [key] [update-seconds] [?duration-seconds]"
|
||||||
|
echo "# set in how many seconds value is marked to be rescanned"
|
||||||
|
echo "# -1 = slowest default update cycle"
|
||||||
|
echo "# 0 = update on every cycle"
|
||||||
|
echo "# set a 'duration-seconds' after defaults to -1 (optional)"
|
||||||
|
echo
|
||||||
|
echo "_cache.sh meta [key] [?default]"
|
||||||
|
echo "# get single key with additional metadata:"
|
||||||
|
echo "# updateseconds= see above"
|
||||||
|
echo "# stillvalid=0/1 if value is still valid or outdated"
|
||||||
|
echo "# lasttouch= last update timestamp in unix seconds"
|
||||||
|
echo
|
||||||
|
echo "_cache.sh valid [key1] [?key2] [?key3] ..."
|
||||||
|
echo "# check multiple keys if all are still not outdated"
|
||||||
|
echo "# use for example to check if a complex call needs"
|
||||||
|
echo "# to be made that covers multiple single data points"
|
||||||
|
echo
|
||||||
|
echo "_cache.sh import [bash-keyvalue-file]"
|
||||||
|
echo "# import a bash style key-value file into store"
|
||||||
|
echo
|
||||||
|
echo "_cache.sh export [?key-prefix]"
|
||||||
|
echo "# export bash-style key-value to stdout"
|
||||||
|
echo "# can be used with a key-prefix just get a subset"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# BACKGROUND: we need to build outdated meta info manually,
|
||||||
|
# because there is nothing as "AGE" in redis: https://github.com/redis/redis/issues/1147
|
||||||
|
# only feature that can be used uis the EXPIRE feature to determine if a value is still valid
|
||||||
|
|
||||||
|
# postfixes for metadata in key/value store
|
||||||
|
META_OUTDATED_SECONDS=":out"
|
||||||
|
META_LASTTOUCH_TS=":ts"
|
||||||
|
META_VALID_FLAG=":val"
|
||||||
|
|
||||||
|
# path of the raspiblitz.info file (persiting cache values)
|
||||||
|
infoFile="/home/admin/raspiblitz.info"
|
||||||
|
|
||||||
|
###################
|
||||||
|
# RAMDISK
|
||||||
|
# will be available under /var/cache/raspiblitz
|
||||||
|
###################
|
||||||
|
|
||||||
|
# install
|
||||||
|
if [ "$1" = "ramdisk" ] && [ "$2" = "on" ]; then
|
||||||
|
|
||||||
|
echo "# Turn ON: RAMDISK"
|
||||||
|
|
||||||
|
if ! grep -Eq '^tmpfs.*/var/cache/raspiblitz' /etc/fstab; then
|
||||||
|
|
||||||
|
if grep -Eq '/var/cache/raspiblitz' /etc/fstab; then
|
||||||
|
# entry is in file but most likely just disabled -> re-enable it
|
||||||
|
sudo sed -i -E 's|^#(tmpfs.*/var/cache/raspiblitz.*)$|\1|g' /etc/fstab
|
||||||
|
else
|
||||||
|
# missing -> add
|
||||||
|
echo "" | sudo tee -a /etc/fstab >/dev/null
|
||||||
|
echo "tmpfs /var/cache/raspiblitz tmpfs nodev,nosuid,size=32M 0 0" | sudo tee -a /etc/fstab >/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! findmnt -l /var/cache/raspiblitz >/dev/null; then
|
||||||
|
sudo mkdir -p /var/cache/raspiblitz
|
||||||
|
sudo mount /var/cache/raspiblitz
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# uninstall
|
||||||
|
elif [ "$1" = "ramdisk" ] && [ "$2" = "off" ]; then
|
||||||
|
|
||||||
|
echo "# Turn OFF: RAMDISK"
|
||||||
|
|
||||||
|
if grep -Eq '/var/cache/raspiblitz' /etc/fstab; then
|
||||||
|
sudo sed -i -E 's|^(tmpfs.*/var/cache/raspiblitz.*)$|#\1|g' /etc/fstab
|
||||||
|
fi
|
||||||
|
|
||||||
|
if findmnt -l /var/cache/raspiblitz >/dev/null; then
|
||||||
|
sudo umount /var/cache/raspiblitz
|
||||||
|
fi
|
||||||
|
|
||||||
|
###################
|
||||||
|
# KEYVALUE (REDIS)
|
||||||
|
###################
|
||||||
|
|
||||||
|
# install
|
||||||
|
elif [ "$1" = "keyvalue" ] && [ "$2" = "on" ]; then
|
||||||
|
|
||||||
|
echo "# Turn ON: KEYVALUE-STORE (REDIS)"
|
||||||
|
sudo apt install -y redis-server
|
||||||
|
|
||||||
|
# edit config: dont save to disk
|
||||||
|
sudo sed -i "/^save .*/d" /etc/redis/redis.conf
|
||||||
|
|
||||||
|
# restart with new config
|
||||||
|
sudo systemctl restart redis-server
|
||||||
|
|
||||||
|
# clean old databases if exist
|
||||||
|
sudo rm /var/lib/redis/dump.rdb 2>/dev/null
|
||||||
|
|
||||||
|
# restart again this time there is no old data dump to load
|
||||||
|
sudo systemctl restart redis-server
|
||||||
|
|
||||||
|
# uninstall
|
||||||
|
elif [ "$1" = "keyvalue" ] && [ "$2" = "off" ]; then
|
||||||
|
|
||||||
|
echo "# Turn OFF: KEYVALUE-STORE (REDIS)"
|
||||||
|
sudo apt remove -y redis-server
|
||||||
|
|
||||||
|
###################
|
||||||
|
# SET/GET/IMPORT
|
||||||
|
# basic key value
|
||||||
|
###################
|
||||||
|
|
||||||
|
# set
|
||||||
|
elif [ "$1" = "set" ]; then
|
||||||
|
|
||||||
|
# get parameters
|
||||||
|
keystr=$2
|
||||||
|
valuestr=$3
|
||||||
|
expire=$4
|
||||||
|
|
||||||
|
# check that key & value are given
|
||||||
|
if [ "${keystr}" == "" ]; then
|
||||||
|
echo "# Fail: missing parameter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# filter from expire just numbers
|
||||||
|
expire="${expire//[^0-9.]/}"
|
||||||
|
|
||||||
|
# add an expire flag if given
|
||||||
|
additionalParams=""
|
||||||
|
if [ "${expire}" != "" ]; then
|
||||||
|
additionalParams="EX ${expire}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set in redis key value cache
|
||||||
|
redis-cli set ${keystr} "${valuestr}" ${additionalParams} 1>/dev/null
|
||||||
|
|
||||||
|
# set in redis the timestamp
|
||||||
|
timestamp=$(date +%s)
|
||||||
|
redis-cli set ${keystr}${META_LASTTOUCH_TS} "${timestamp}" ${additionalParams} 1>/dev/null
|
||||||
|
#echo "# lasttouch(${timestamp})"
|
||||||
|
|
||||||
|
# check if the value has a outdate policy
|
||||||
|
outdatesecs=$(redis-cli get ${keystr}${META_OUTDATED_SECONDS})
|
||||||
|
if [ "${outdatesecs}" == "" ]; then
|
||||||
|
outdatesecs="-1"
|
||||||
|
fi
|
||||||
|
#echo "# outdatesecs(${outdatesecs})"
|
||||||
|
if [ "${outdatesecs}" != "-1" ]; then
|
||||||
|
# set exipire valid flag (if its gone - value is considered as outdated)
|
||||||
|
redis-cli set ${keystr}${META_VALID_FLAG} "1" EX ${outdatesecs} 1>/dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
# also update value if part of raspiblitz.info (persiting values to survice boot)
|
||||||
|
persistKey=$(cat ${infoFile} | grep -c "^${keystr}=")
|
||||||
|
if [ ${persistKey} -gt 0 ]; then
|
||||||
|
sudo sed -i "s/^${keystr}=.*/${keystr}='${valuestr}'/g" ${infoFile}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get
|
||||||
|
elif [ "$1" = "get" ]; then
|
||||||
|
|
||||||
|
position=0
|
||||||
|
for keystr in $@
|
||||||
|
do
|
||||||
|
|
||||||
|
# skip first parameter
|
||||||
|
((position++))
|
||||||
|
if [ $position -eq 1 ]; then
|
||||||
|
echo "# _cache.sh $@"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get redis value
|
||||||
|
valuestr=$(redis-cli get ${keystr})
|
||||||
|
|
||||||
|
# output key value in bash script compatible way
|
||||||
|
echo "${keystr}=\"${valuestr}\""
|
||||||
|
done
|
||||||
|
|
||||||
|
# import values from bash key-value store
|
||||||
|
elif [ "$1" = "import" ]; then
|
||||||
|
|
||||||
|
# get parameter
|
||||||
|
filename=$2
|
||||||
|
|
||||||
|
# source values from given file (to be used for import later)
|
||||||
|
source ${filename}
|
||||||
|
|
||||||
|
# read file and go thru line by line
|
||||||
|
n=1
|
||||||
|
while read line; do
|
||||||
|
|
||||||
|
# skip comment lines
|
||||||
|
isComment=$(echo "${line}" | grep -c "^#")
|
||||||
|
if [ ${isComment} -eq 1 ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# skip if not a value line
|
||||||
|
isValueLine=$(echo "${line}" | grep -c "=")
|
||||||
|
if [ ${isValueLine} -eq 0 ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# import key from line & value from source above (that way quotes are habdled correctly)
|
||||||
|
keyValue=$(echo "$line" | cut -d "=" -f1)
|
||||||
|
echo "# redis-cli set ${keyValue} ${!keyValue}"
|
||||||
|
redis-cli set ${keyValue} "${!keyValue}" 1>/dev/null
|
||||||
|
|
||||||
|
# also set the timestamp on import for each value
|
||||||
|
timestamp=$(date +%s)
|
||||||
|
redis-cli set ${keyValue}${META_LASTTOUCH_TS} "${timestamp}" 1>/dev/null
|
||||||
|
|
||||||
|
done < $filename
|
||||||
|
|
||||||
|
# import values from bash key-value store
|
||||||
|
elif [ "$1" = "export" ]; then
|
||||||
|
|
||||||
|
# get parameter
|
||||||
|
keyfilter="${2}*"
|
||||||
|
|
||||||
|
# go thru all keys by keyfilter
|
||||||
|
keylist=$(redis-cli KEYS "${keyfilter}")
|
||||||
|
readarray -t arr <<< "${keylist}"
|
||||||
|
for key in "${arr[@]}";do
|
||||||
|
|
||||||
|
# skip empty keys
|
||||||
|
if [ "${key}" == "" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# skip metadata keys
|
||||||
|
isMeta=$(echo "${key}" | grep -c ":")
|
||||||
|
if [ ${isMeta} -gt 0 ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# print out key/value
|
||||||
|
value=$(redis-cli get "${key}")
|
||||||
|
echo "${key}=\"${value}\""
|
||||||
|
done
|
||||||
|
|
||||||
|
##################################
|
||||||
|
# COUNT
|
||||||
|
# count value up
|
||||||
|
##################################
|
||||||
|
|
||||||
|
# set
|
||||||
|
elif [ "$1" = "increment" ]; then
|
||||||
|
|
||||||
|
# get parameters
|
||||||
|
keystr=$2
|
||||||
|
|
||||||
|
# check that key & value are given
|
||||||
|
if [ "${keystr}" == "" ]; then
|
||||||
|
echo "# Fail: missing parameter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# set in redis key value cache
|
||||||
|
redis-cli incr ${keystr} 1>/dev/null
|
||||||
|
|
||||||
|
# set in redis the timestamp
|
||||||
|
timestamp=$(date +%s)
|
||||||
|
redis-cli set ${keystr}${META_LASTTOUCH_TS} "${timestamp}" 1>/dev/null
|
||||||
|
|
||||||
|
|
||||||
|
##################################
|
||||||
|
# FOCUS
|
||||||
|
# signal update rate on value
|
||||||
|
##################################
|
||||||
|
|
||||||
|
# focus (set outdated policy)
|
||||||
|
elif [ "$1" = "focus" ]; then
|
||||||
|
|
||||||
|
# get parameters
|
||||||
|
keystr=$2
|
||||||
|
outdatesecs=$3
|
||||||
|
durationsecs=$4
|
||||||
|
|
||||||
|
# if no further parameters - list all values with running focus
|
||||||
|
if [ "${keystr}" == "" ]; then
|
||||||
|
echo "# cache values with active focus:"
|
||||||
|
keylist=$(redis-cli KEYS "*:out")
|
||||||
|
readarray -t arr <<< "${keylist}"
|
||||||
|
for key in "${arr[@]}";do
|
||||||
|
if [ "${key}" == "" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
keyClean=$(echo $key | cut -d ":" -f1)
|
||||||
|
value=$(redis-cli get "${key}")
|
||||||
|
echo "${keyClean}=${value}"
|
||||||
|
done
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# delete outdate policy field ==> default
|
||||||
|
if [ "${outdatesecs}" == "-1" ]; then
|
||||||
|
echo "# redis-cli del ${keystr}${META_OUTDATED_SECONDS}"
|
||||||
|
redis-cli del ${keystr}${META_OUTDATED_SECONDS}
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# sanatize parameters (if not -1)
|
||||||
|
outdatesecs="${outdatesecs//[^0-9.]/}"
|
||||||
|
|
||||||
|
# check that key & value are given
|
||||||
|
if [ "${outdatesecs}" == "" ]; then
|
||||||
|
echo "# Fail: missing parameter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# add an expire flag if given
|
||||||
|
additionalParams=""
|
||||||
|
if [ "${durationsecs//[^0-9.]/}" != "" ]; then
|
||||||
|
additionalParams="EX ${durationsecs//[^0-9.]/}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# store the seconds policy
|
||||||
|
echo "# redis-cli set ${keystr}${META_OUTDATED_SECONDS} ${outdatesecs} ${additionalParams}"
|
||||||
|
redis-cli set ${keystr}${META_OUTDATED_SECONDS} "${outdatesecs}" ${additionalParams}
|
||||||
|
|
||||||
|
# set/renew exipire valid flag (important in case the key had before no expire)
|
||||||
|
redis-cli set ${keystr}${META_VALID_FLAG} "1" EX ${outdatesecs} 1>/dev/null
|
||||||
|
|
||||||
|
##################################
|
||||||
|
# META
|
||||||
|
# metadata on values
|
||||||
|
##################################
|
||||||
|
|
||||||
|
# meta
|
||||||
|
elif [ "$1" = "meta" ]; then
|
||||||
|
|
||||||
|
# get parameters
|
||||||
|
keystr=$2
|
||||||
|
default=$3
|
||||||
|
|
||||||
|
# check that key & value are given
|
||||||
|
if [ "${keystr}" == "" ]; then
|
||||||
|
echo "# Fail: missing parameter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get redis basic value
|
||||||
|
valuestr=$(redis-cli get ${keystr})
|
||||||
|
echo "value=\"${valuestr}\""
|
||||||
|
|
||||||
|
# get META_LASTTOUCH_TS
|
||||||
|
lasttouch=$(redis-cli get ${keystr}${META_LASTTOUCH_TS})
|
||||||
|
if [ "${lasttouch}" == "" ]; then
|
||||||
|
echo "initiated=0"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo "initiated=1"
|
||||||
|
echo "lasttouch=\"${lasttouch}\""
|
||||||
|
|
||||||
|
# get META_OUTDATED_SECONDS
|
||||||
|
outdatesecs=$(redis-cli get ${keystr}${META_OUTDATED_SECONDS})
|
||||||
|
if [ "${outdatesecs}" == "" ]; then
|
||||||
|
# default is -1 --> never outdate
|
||||||
|
outdatesecs="-1"
|
||||||
|
fi
|
||||||
|
echo "outdatesecs=\"${outdatesecs}\""
|
||||||
|
|
||||||
|
# get META_VALID_FLAG
|
||||||
|
valuestr=$(redis-cli get ${keystr}${META_VALID_FLAG})
|
||||||
|
if [ "${valuestr}" == "" ] && [ "${outdatesecs}" != "-1" ]; then
|
||||||
|
stillvalid=0
|
||||||
|
else
|
||||||
|
stillvalid=1
|
||||||
|
fi
|
||||||
|
echo "stillvalid=\"${stillvalid}\""
|
||||||
|
|
||||||
|
##################################
|
||||||
|
# VALID
|
||||||
|
# check if a value needs update
|
||||||
|
##################################
|
||||||
|
|
||||||
|
# valid
|
||||||
|
elif [ "$1" = "valid" ]; then
|
||||||
|
|
||||||
|
position=0
|
||||||
|
lasttouch_overall=""
|
||||||
|
for keystr in $@
|
||||||
|
do
|
||||||
|
|
||||||
|
# skip first parameter from script - thats the action string
|
||||||
|
((position++))
|
||||||
|
if [ $position -eq 1 ]; then
|
||||||
|
echo "# _cache.sh $@"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check lasttouch for value
|
||||||
|
lasttouch=$(redis-cli get ${keystr}${META_LASTTOUCH_TS})
|
||||||
|
#echo "# lasttouch(${lasttouch})"
|
||||||
|
|
||||||
|
# no lasttouch entry ==> was not initiated ==> not valid
|
||||||
|
if [ "${lasttouch}" == "" ]; then
|
||||||
|
# break loop on first unvalid value found
|
||||||
|
echo "stillvalid=\"0\""
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# record the smallest timestamp (oldest date) of all values
|
||||||
|
if [ "${lasttouch}" != "" ]; then
|
||||||
|
# find smallest lasttouch
|
||||||
|
if [ "${lasttouch_overall}" == "" ] || [ ${lasttouch_overall} -gt ${lasttouch} ]; then
|
||||||
|
lasttouch_overall="${lasttouch}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get outdate police of value (outdated = not valid anymore)
|
||||||
|
outdatesecs=$(redis-cli get ${keystr}${META_OUTDATED_SECONDS})
|
||||||
|
#echo "# ${keystr}${META_OUTDATED_SECONDS}=\"${outdatesecs}\""
|
||||||
|
|
||||||
|
# if outdate policy is default or -1 ==> never outdated
|
||||||
|
if [ "${outdatesecs}" == "" ] || [ "${outdatesecs}" == "-1" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# so outdate policy is active - check if valid flag exists
|
||||||
|
validflag=$(redis-cli get ${keystr}${META_VALID_FLAG})
|
||||||
|
#echo "# ${keystr}${META_VALID_FLAG}=\"${validflag}\""
|
||||||
|
|
||||||
|
# if valid flag exists this value is valid
|
||||||
|
if [ "${valuestr}" != "" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# so valid flag does not exists anymore
|
||||||
|
# ==> this means value is outdated
|
||||||
|
# break loop and
|
||||||
|
echo "stillvalid=\"0\""
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
# so if all were valid
|
||||||
|
echo "stillvalid=\"1\""
|
||||||
|
|
||||||
|
# calculate age in seconds of oldest entry
|
||||||
|
if [ "${lasttouch_overall}" != "" ]; then
|
||||||
|
timestamp=$(date +%s)
|
||||||
|
age=$(($timestamp-$lasttouch_overall))
|
||||||
|
echo "age=\"${age}\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "# FAIL: parameter not known - run with -h for help"
|
||||||
|
fi
|
@ -33,6 +33,7 @@ function blitzhelp() {
|
|||||||
echo " debug print debug logs"
|
echo " debug print debug logs"
|
||||||
echo " debug -l print debug logs with bin link"
|
echo " debug -l print debug logs with bin link"
|
||||||
echo " patch sync scripts with latest set github and branch"
|
echo " patch sync scripts with latest set github and branch"
|
||||||
|
echo " cache check on chache system state"
|
||||||
echo " github jumping directly into the options to change branch/repo/pr"
|
echo " github jumping directly into the options to change branch/repo/pr"
|
||||||
echo
|
echo
|
||||||
echo "Power:"
|
echo "Power:"
|
||||||
@ -157,6 +158,11 @@ function headless() {
|
|||||||
restart
|
restart
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# command: cache
|
||||||
|
function cache() {
|
||||||
|
sudo /home/admin/_cache.sh $@
|
||||||
|
}
|
||||||
|
|
||||||
# command: torthistx
|
# command: torthistx
|
||||||
function torthistx() {
|
function torthistx() {
|
||||||
if [ $(cat /mnt/hdd/raspiblitz.conf 2>/dev/null | grep -c "runBehindTor=on") -eq 1 ]; then
|
if [ $(cat /mnt/hdd/raspiblitz.conf 2>/dev/null | grep -c "runBehindTor=on") -eq 1 ]; then
|
||||||
@ -164,14 +170,18 @@ function torthistx() {
|
|||||||
curl --socks5-hostname localhost:9050 -d $1 -X POST http://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion/api/tx
|
curl --socks5-hostname localhost:9050 -d $1 -X POST http://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion/api/tx
|
||||||
else
|
else
|
||||||
echo "Not running behind Tor - to install run:"
|
echo "Not running behind Tor - to install run:"
|
||||||
echo "sudo /home/admin/config.scripts/internet.tor.sh on"
|
echo "sudo /home/admin/config.scripts/tor.network.sh on"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# command: status
|
# command: status
|
||||||
# start the status screen in the terminal
|
# start the status screen in the terminal
|
||||||
function status() {
|
function status() {
|
||||||
echo "Gathering data - please wait a moment..."
|
echo
|
||||||
|
echo "Keep X pressed to EXIT loop ... (please wait)"
|
||||||
|
echo
|
||||||
|
/home/admin/_cache.sh set system_scan_all_temp "1"
|
||||||
|
sleep 4
|
||||||
while :
|
while :
|
||||||
do
|
do
|
||||||
# show the same info as on LCD screen
|
# show the same info as on LCD screen
|
||||||
@ -181,10 +191,10 @@ function status() {
|
|||||||
#echo
|
#echo
|
||||||
#echo -en "Screen is updating in a loop .... press 'x' now to get back to menu."
|
#echo -en "Screen is updating in a loop .... press 'x' now to get back to menu."
|
||||||
read -n 1 -t 6 keyPressed
|
read -n 1 -t 6 keyPressed
|
||||||
#echo -en "\rGathering information to update info ... please wait. \n"
|
|
||||||
# check if user wants to abort session
|
# check if user wants to abort session
|
||||||
if [ "${keyPressed}" = "x" ]; then
|
if [ "${keyPressed}" = "x" ]; then
|
||||||
echo
|
echo
|
||||||
|
/home/admin/_cache.sh set system_scan_all_temp "0"
|
||||||
echo "Returning to menu ....."
|
echo "Returning to menu ....."
|
||||||
sleep 4
|
sleep 4
|
||||||
break
|
break
|
||||||
@ -294,10 +304,10 @@ if [ -f "/mnt/hdd/raspiblitz.conf" ] && [ $(grep -c "lit=on" < /mnt/hdd/raspibl
|
|||||||
--tlscertpath=/home/lit/.lit/tls.cert \
|
--tlscertpath=/home/lit/.lit/tls.cert \
|
||||||
--macaroonpath=/home/lit/.faraday/${chain}net/faraday.macaroon"
|
--macaroonpath=/home/lit/.faraday/${chain}net/faraday.macaroon"
|
||||||
alias lit-loop="sudo -u lit loop --rpcserver=localhost:8443 \\
|
alias lit-loop="sudo -u lit loop --rpcserver=localhost:8443 \\
|
||||||
--tlscertpath=/home/lit/.lit/tls.cert \\
|
--tlscertpath=/home/lit/.lit/tls.cert \\
|
||||||
--macaroonpath=/home/lit/.loop/${chain}net/loop.macaroon"
|
--macaroonpath=/home/lit/.loop/${chain}net/loop.macaroon"
|
||||||
alias lit-pool="sudo -u lit pool --rpcserver=localhost:8443 \
|
alias lit-pool="sudo -u lit pool --rpcserver=localhost:8443 \
|
||||||
--tlscertpath=/home/lit/.lit/tls.cert \
|
--tlscertpath=/home/lit/.lit/tls.cert \
|
||||||
--macaroonpath=/home/lit/.pool/${chain}net/pool.macaroon"
|
--macaroonpath=/home/lit/.pool/${chain}net/pool.macaroon"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -316,7 +326,7 @@ function gettx() {
|
|||||||
|
|
||||||
# command: watchtx
|
# command: watchtx
|
||||||
# try to retrieve transaction from mempool or blockchain until certain confirmation target
|
# try to retrieve transaction from mempool or blockchain until certain confirmation target
|
||||||
# is reached and then exit cleanly. Default is to wait for 2 confs and to sleep for 60 secs.
|
# is reached and then exit cleanly. Default is to wait for 2 confs and to sleep for 60 secs.
|
||||||
# $ watchtx "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16" 6 30
|
# $ watchtx "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16" 6 30
|
||||||
function watchtx() {
|
function watchtx() {
|
||||||
tx_id="${1}"
|
tx_id="${1}"
|
||||||
@ -348,8 +358,8 @@ function watchtx() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# command: notifyme
|
# command: notifyme
|
||||||
# A wrapper for blitz.notify.sh that will send a notification using the configured
|
# A wrapper for blitz.notify.sh that will send a notification using the configured
|
||||||
# method and settings.
|
# method and settings.
|
||||||
# This makes sense when waiting for commands to finish and then sending a notification.
|
# This makes sense when waiting for commands to finish and then sending a notification.
|
||||||
# $ notifyme "Hello there..!"
|
# $ notifyme "Hello there..!"
|
||||||
# $ ./run_job_which_takes_long.sh && notifyme "I'm done."
|
# $ ./run_job_which_takes_long.sh && notifyme "I'm done."
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# check if started with sudo
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "error='run as root'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# LOGFILE - store debug logs of bootstrap
|
# LOGFILE - store debug logs of bootstrap
|
||||||
logFile="/home/admin/raspiblitz.provision-migration.log"
|
logFile="/home/admin/raspiblitz.provision-migration.log"
|
||||||
|
|
||||||
@ -10,26 +16,20 @@ source ${infoFile}
|
|||||||
# SETUPFILE - data from setup process
|
# SETUPFILE - data from setup process
|
||||||
source /var/cache/raspiblitz/temp/raspiblitz.setup
|
source /var/cache/raspiblitz/temp/raspiblitz.setup
|
||||||
|
|
||||||
# CONFIGFILE - configuration of RaspiBlitz
|
|
||||||
configFile="/mnt/hdd/raspiblitz.conf"
|
|
||||||
|
|
||||||
# log header
|
# log header
|
||||||
echo "" > ${logFile}
|
echo "" > ${logFile}
|
||||||
echo "###################################" >> ${logFile}
|
echo "###################################" >> ${logFile}
|
||||||
echo "# _provision.migration.sh" >> ${logFile}
|
echo "# _provision.migration.sh" >> ${logFile}
|
||||||
echo "###################################" >> ${logFile}
|
echo "###################################" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Provision Migration'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Provision Migration"
|
||||||
|
|
||||||
|
source <(/home/admin/config.scripts/blitz.datadrive.sh status)
|
||||||
|
|
||||||
if [ "${hddGotMigrationData}" == "" ]; then
|
if [ "${hddGotMigrationData}" == "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.migration.sh "missing-hostnamemigrationdata" "missing hddGotMigrationData" "" ${logFile}
|
||||||
sed -i "s/^message=.*/message='config: missing hddGotMigrationData'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: missing hddGotMigrationData in (${infoFile})!" >> ${logFile}
|
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
|
||||||
|
|
||||||
err=""
|
err=""
|
||||||
nodenameUpperCase=$(echo "${hddGotMigrationData}" | tr "[a-z]" "[A-Z]")
|
nodenameUpperCase=$(echo "${hddGotMigrationData}" | tr "[a-z]" "[A-Z]")
|
||||||
echo "**************************************************" >> ${logFile}
|
echo "**************************************************" >> ${logFile}
|
||||||
@ -38,16 +38,13 @@ echo "**************************************************" >> ${logFile}
|
|||||||
echo "- started ..." >> ${logFile}
|
echo "- started ..." >> ${logFile}
|
||||||
source <(sudo /home/admin/config.scripts/blitz.migration.sh migration-${hddGotMigrationData})
|
source <(sudo /home/admin/config.scripts/blitz.migration.sh migration-${hddGotMigrationData})
|
||||||
if [ "${err}" != "" ]; then
|
if [ "${err}" != "" ]; then
|
||||||
echo "MIGRATION FAILED: ${err}" >> ${logFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.migration.sh "migration-failed" "${err}" "Recover funds with fresh sd card using seed words + static channel backup." ${logFile}
|
||||||
echo "Format data disk on laptop & recover funds with fresh sd card using seed words + static channel backup." >> ${logFile}
|
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
|
||||||
sed -i "s/^message=.*/message='migration failed'/g" ${infoFile}
|
|
||||||
exit 3
|
exit 3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# make sure for the rest of the seup info is set correctly
|
# make sure for the rest of the seup info is set correctly
|
||||||
sudo sed -i "s/^network=.*/network=bitcoin/g" ${infoFile}
|
/home/admin/config.scripts/blitz.conf.sh set network "bitcoin"
|
||||||
sudo sed -i "s/^chain=.*/chain=main/g" ${infoFile}
|
/home/admin/config.scripts/blitz.conf.sh set chain "main"
|
||||||
|
|
||||||
# set Password B
|
# set Password B
|
||||||
echo "## SETTING PASSWORD B" >> ${logFile}
|
echo "## SETTING PASSWORD B" >> ${logFile}
|
||||||
@ -57,20 +54,21 @@ if [ "${setPasswordB}" == "1" ]; then
|
|||||||
echo "# setting PASSWORD B" >> ${logFile}
|
echo "# setting PASSWORD B" >> ${logFile}
|
||||||
/home/admin/config.scripts/blitz.setpassword.sh b "${passwordB}" >> ${logFile}
|
/home/admin/config.scripts/blitz.setpassword.sh b "${passwordB}" >> ${logFile}
|
||||||
else
|
else
|
||||||
echo "FAIL: Password B should be set but was empty! Running with default." >> ${logFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.migration.sh "missing-passwordb" "FAIL: Password B should be set but was empty! Running with default." "" ${logFile}
|
||||||
|
exit 4
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "WARN: setPasswordB!=1 this not normal on migration! Running with default." >> ${logFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.migration.sh "missing-setpasswordb" "setPasswordB!=1 this not normal on migration! Running with default." "" ${logFile}
|
||||||
|
exit 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# if free space is lower than 100GB (100000000) delete backup files
|
# if free space is lower than 100GB (100000000) delete backup files
|
||||||
if [ "${hddDataFreeKB}" != "" ] && [ ${hddDataFreeKB} -lt 407051412 ]; then
|
if [ "${hddDataFreeKB}" != "" ] && [ ${hddDataFreeKB} -lt 407051412 ]; then
|
||||||
echo "- free space of data disk is low ... deleting 'backup_migration'" >> ${logFile}
|
echo "- free space of data disk is low ... deleting 'backup_migration'" >> ${logFile}
|
||||||
sudo rm -R /mnt/hdd/backup_migration
|
rm -R /mnt/hdd/backup_migration
|
||||||
else
|
else
|
||||||
echo "- old data of ${nodenameUpperCase} can be found in '/mnt/hdd/backup_migration'" >> ${logFile}
|
echo "- old data of ${nodenameUpperCase} can be found in '/mnt/hdd/backup_migration'" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
echo "OK MIGRATION" >> ${logFile}
|
echo "OK MIGRATION" >> ${logFile}
|
||||||
echo "END Migration" >> ${logFile}
|
echo "END Migration" >> ${logFile}
|
||||||
exit 0
|
exit 0
|
||||||
|
|
@ -1,5 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# check if started with sudo
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "error='run as root'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# this provision file is just executed on fresh setups
|
# this provision file is just executed on fresh setups
|
||||||
# not on recoveries or updates
|
# not on recoveries or updates
|
||||||
|
|
||||||
@ -23,35 +29,29 @@ echo "" > ${logFile}
|
|||||||
echo "###################################" >> ${logFile}
|
echo "###################################" >> ${logFile}
|
||||||
echo "# _provision.setup.sh" >> ${logFile}
|
echo "# _provision.setup.sh" >> ${logFile}
|
||||||
echo "###################################" >> ${logFile}
|
echo "###################################" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Provision Setup'/g" ${infoFile}
|
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
# Preserve SSH keys
|
# Preserve SSH keys
|
||||||
# just copy dont link anymore
|
# just copy dont link anymore
|
||||||
# see: https://github.com/rootzoll/raspiblitz/issues/1798
|
# see: https://github.com/rootzoll/raspiblitz/issues/1798
|
||||||
sed -i "s/^message=.*/message='SSH Keys'/g" ${infoFile}
|
/home/admin/_cache.sh set message "SSH Keys"
|
||||||
|
|
||||||
# link ssh directory from SD card to HDD
|
# link ssh directory from SD card to HDD
|
||||||
/home/admin/config.scripts/blitz.ssh.sh backup
|
/home/admin/config.scripts/blitz.ssh.sh backup
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
# Prepare Blockchain Service
|
# Prepare Blockchain Service
|
||||||
sed -i "s/^message=.*/message='Blockchain Setup'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Blockchain Setup"
|
||||||
|
source <(/home/admin/_cache.sh get network chain hddBlocksBitcoin)
|
||||||
|
|
||||||
if [ "${network}" == "" ]; then
|
if [ "${network}" == "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "missing-network" "" "" ${logFile}
|
||||||
sed -i "s/^message=.*/message='config: missing network'/g" ${infoFile}
|
exit 2
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: missing network in (${setupFile})!" >> ${logFile}
|
|
||||||
exit 20
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${chain}" == "" ]; then
|
if [ "${chain}" == "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "missing-chain" "" "" ${logFile}
|
||||||
sed -i "s/^message=.*/message='config: missing chain'/g" ${infoFile}
|
exit 3
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: missing chain in (${setupFile})!" >> ${logFile}
|
|
||||||
exit 2
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# copy configs files and directories
|
# copy configs files and directories
|
||||||
@ -74,7 +74,7 @@ chown -R admin:admin /home/admin/.${network} >>${logFile} 2>&1
|
|||||||
confExists=$(sudo ls /mnt/hdd/${network}/${network}.conf | grep -c "${network}.conf")
|
confExists=$(sudo ls /mnt/hdd/${network}/${network}.conf | grep -c "${network}.conf")
|
||||||
echo "File Exists: /mnt/hdd/${network}/${network}.conf --> ${confExists}" >> ${logFile}
|
echo "File Exists: /mnt/hdd/${network}/${network}.conf --> ${confExists}" >> ${logFile}
|
||||||
|
|
||||||
# set password B as RPC password
|
# set password B as RPC password (from setup file)
|
||||||
echo "# setting PASSWORD B" >> ${logFile}
|
echo "# setting PASSWORD B" >> ${logFile}
|
||||||
/home/admin/config.scripts/blitz.setpassword.sh b "${passwordB}" >> ${logFile}
|
/home/admin/config.scripts/blitz.setpassword.sh b "${passwordB}" >> ${logFile}
|
||||||
|
|
||||||
@ -119,9 +119,7 @@ do
|
|||||||
sync
|
sync
|
||||||
loopcount=$(($loopcount +1))
|
loopcount=$(($loopcount +1))
|
||||||
if [ ${loopcount} -gt 50 ]; then
|
if [ ${loopcount} -gt 50 ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "btc-testrun-fail" "${network}d not running" "sudo -u bitcoin ${network}-cli getblockchaininfo | grep "initialblockdownload" -c --> ${bitcoinRunning}" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: failed ${network}'/g" ${infoFile}
|
|
||||||
echo "FAIL: setup: failed ${network}" >> ${logFile}
|
|
||||||
exit 4
|
exit 4
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -130,14 +128,20 @@ echo "OK ${network} startup successful " >> ${logFile}
|
|||||||
|
|
||||||
###################################
|
###################################
|
||||||
# Prepare Lightning
|
# Prepare Lightning
|
||||||
|
source /mnt/hdd/raspiblitz.conf
|
||||||
echo "Prepare Lightning (${lightning})" >> ${logFile}
|
echo "Prepare Lightning (${lightning})" >> ${logFile}
|
||||||
|
|
||||||
|
if [ "${hostname}" == "" ]; then
|
||||||
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "missing-hostname" "" "" ${logFile}
|
||||||
|
exit 41
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${lightning}" != "lnd" ]; then
|
if [ "${lightning}" != "lnd" ]; then
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
# Remove LND from systemd
|
# Remove LND from systemd
|
||||||
echo "Remove LND" >> ${logFile}
|
echo "Remove LND" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Deactivate Lightning'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Deactivate Lightning"
|
||||||
sudo systemctl disable lnd
|
sudo systemctl disable lnd
|
||||||
sudo rm /etc/systemd/system/lnd.service 2>/dev/null
|
sudo rm /etc/systemd/system/lnd.service 2>/dev/null
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
@ -148,30 +152,24 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
###################################
|
###################################
|
||||||
# LND
|
# LND
|
||||||
echo "############## Setup LND" >> ${logFile}
|
echo "############## Setup LND" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='LND Setup'/g" ${infoFile}
|
/home/admin/_cache.sh set message "LND Setup"
|
||||||
|
|
||||||
|
# password C (raspiblitz.setup)
|
||||||
if [ "${passwordC}" == "" ]; then
|
if [ "${passwordC}" == "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "missing-passwordc" "config: missing passwordC" "" ${logFile}
|
||||||
sed -i "s/^message=.*/message='config: missing passwordC'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: missing passwordC in (${setupFile})!" >> ${logFile}
|
|
||||||
exit 5
|
exit 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# if user uploaded an LND rescue file
|
# if user uploaded an LND rescue file (raspiblitz.setup)
|
||||||
if [ "${lndrescue}" != "" ]; then
|
if [ "${lndrescue}" != "" ]; then
|
||||||
echo "Restore LND data from uploaded rescue file ${lndrescue} ..." >> ${logFile}
|
echo "Restore LND data from uploaded rescue file ${lndrescue} ..." >> ${logFile}
|
||||||
source <(sudo /home/admin/config.scripts/lnd.backup.sh lnd-import ${lndrescue})
|
source <(sudo /home/admin/config.scripts/lnd.backup.sh lnd-import ${lndrescue})
|
||||||
if [ "${error}" != "" ]; then
|
if [ "${error}" != "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lndrescue-import" "setup: lnd import backup failed" "${error}" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: lnd import backup failed'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: setup: lnd import backup failed" >> ${logFile}
|
|
||||||
echo "${error}" >> ${logFile}
|
|
||||||
exit 6
|
exit 6
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# preparing new LND config
|
# preparing new LND config (raspiblitz.setup)
|
||||||
echo "Creating new LND config ..." >> ${logFile}
|
echo "Creating new LND config ..." >> ${logFile}
|
||||||
sudo -u bitcoin mkdir /mnt/hdd/lnd 2> /dev/null
|
sudo -u bitcoin mkdir /mnt/hdd/lnd 2> /dev/null
|
||||||
sudo cp /home/admin/assets/lnd.bitcoin.conf /mnt/hdd/lnd/lnd.conf
|
sudo cp /home/admin/assets/lnd.bitcoin.conf /mnt/hdd/lnd/lnd.conf
|
||||||
@ -186,16 +184,13 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
# check if now a config exists
|
# check if now a config exists
|
||||||
configLinkedCorrectly=$(sudo ls sudo ls /home/bitcoin/.lnd/lnd.conf | grep -c "lnd.conf")
|
configLinkedCorrectly=$(sudo ls sudo ls /home/bitcoin/.lnd/lnd.conf | grep -c "lnd.conf")
|
||||||
if [ "${configLinkedCorrectly}" != "1" ]; then
|
if [ "${configLinkedCorrectly}" != "1" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-link-broken" "link /home/bitcoin/.lnd/lnd.conf broken" "" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: lnd conf link broken'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: setup: lnd conf link broken" >> ${logFile}
|
|
||||||
exit 7
|
exit 7
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Init LND service & start
|
# Init LND service & start
|
||||||
echo "*** Init LND Service & Start ***" >> ${logFile}
|
echo "*** Init LND Service & Start ***" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='LND Testrun'/g" ${infoFile}
|
/home/admin/_cache.sh set message "LND Testrun"
|
||||||
|
|
||||||
# just in case
|
# just in case
|
||||||
sudo systemctl stop lnd 2>/dev/null
|
sudo systemctl stop lnd 2>/dev/null
|
||||||
@ -208,13 +203,14 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
echo "Starting LND Service ..." >> ${logFile}
|
echo "Starting LND Service ..." >> ${logFile}
|
||||||
sudo systemctl enable lnd >> ${logFile}
|
sudo systemctl enable lnd >> ${logFile}
|
||||||
sudo systemctl start lnd >> ${logFile}
|
sudo systemctl start lnd >> ${logFile}
|
||||||
|
echo "Starting LND Service ... executed" >> ${logFile}
|
||||||
|
|
||||||
# check that lnd started
|
# check that lnd started
|
||||||
lndRunning=0
|
lndRunning=0
|
||||||
loopcount=0
|
loopcount=0
|
||||||
while [ ${lndRunning} -eq 0 ]
|
while [ ${lndRunning} -eq 0 ]
|
||||||
do
|
do
|
||||||
lndRunning=$(sudo systemctl status lnd.service | grep -c running)
|
lndRunning=$(systemctl status lnd.service | grep -c running)
|
||||||
if [ ${lndRunning} -eq 0 ]; then
|
if [ ${lndRunning} -eq 0 ]; then
|
||||||
date +%s >> ${logFile}
|
date +%s >> ${logFile}
|
||||||
echo "LND not ready yet ... waiting another 60 seconds." >> ${logFile}
|
echo "LND not ready yet ... waiting another 60 seconds." >> ${logFile}
|
||||||
@ -222,10 +218,7 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
fi
|
fi
|
||||||
loopcount=$(($loopcount +1))
|
loopcount=$(($loopcount +1))
|
||||||
if [ ${loopcount} -gt 100 ]; then
|
if [ ${loopcount} -gt 100 ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-start-fail" "lnd service not getting to running status" "sudo systemctl status lnd.service | grep -c running --> ${lndRunning}" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: failed lnd start'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: setup: failed lnd start" >> ${logFile}
|
|
||||||
exit 8
|
exit 8
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -233,25 +226,18 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
# Check LND health/fails (to be extended)
|
# Check LND health/fails (to be extended)
|
||||||
tlsExists=$(sudo ls /mnt/hdd/lnd/tls.cert 2>/dev/null | grep -c "tls.cert")
|
tlsExists=$(ls /mnt/hdd/lnd/tls.cert 2>/dev/null | grep -c "tls.cert")
|
||||||
if [ ${tlsExists} -eq 0 ]; then
|
if [ ${tlsExists} -eq 0 ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-no-tls" "lnd not created TLS cert" "no /mnt/hdd/lnd/tls.cert" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: missing lnd tls'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: setup: missing lnd tls" >> ${logFile}
|
|
||||||
exit 9
|
exit 9
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# import static channel backup if was uploaded
|
# import static channel backup if was uploaded
|
||||||
if [ "${staticchannelbackup}" != "" ]; then
|
if [ "${staticchannelbackup}" != "" ]; then
|
||||||
echo "Preparing static channel backup file ${staticchannelbackup} ..." >> ${logFile}
|
echo "Preparing static channel backup file ${staticchannelbackup} ..." >> ${logFile}
|
||||||
source <(sudo /home/admin/config.scripts/lnd.backup.sh scb-import ${staticchannelbackup})
|
source <(/home/admin/config.scripts/lnd.backup.sh scb-import ${staticchannelbackup})
|
||||||
if [ "${error}" != "" ]; then
|
if [ "${error}" != "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-scb-import" "lnd.backup.sh scb-import returned error" "/home/admin/config.scripts/lnd.backup.sh scb-import ${staticchannelbackup} --> ${error}" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: lnd import SCB failed'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: setup: lnd import SCB failed" >> ${logFile}
|
|
||||||
echo "${error}" >> ${logFile}
|
|
||||||
exit 10
|
exit 10
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -260,33 +246,23 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
if [ "${seedWords}" != "" ] && [ "${staticchannelbackup}" != "" ]; then
|
if [ "${seedWords}" != "" ] && [ "${staticchannelbackup}" != "" ]; then
|
||||||
|
|
||||||
echo "WALLET --> SEED + SCB " >> ${logFile}
|
echo "WALLET --> SEED + SCB " >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='LND Wallet (SEED & SCB)'/g" ${infoFile}
|
/home/admin/_cache.sh set message "LND Wallet (SEED & SCB)"
|
||||||
if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi
|
if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi
|
||||||
sudo /home/admin/config.scripts/lnd.initwallet.py scb mainnet ${passwordC} "${seedWords}" "${staticchannelbackup}" ${seedPassword}
|
source <(/home/admin/config.scripts/lnd.initwallet.py scb mainnet ${passwordC} "${seedWords}" "${staticchannelbackup}" ${seedPassword})
|
||||||
if [ "${err}" != "" ]; then
|
if [ "${err}" != "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-wallet-seed+scb" "lnd.initwallet.py scb returned error" "/home/admin/config.scripts/lnd.initwallet.py scb mainnet ... --> ${err} + ${errMore}" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: lnd wallet SCB failed'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: setup: lnd wallet SCB failed" >> ${logFile}
|
|
||||||
echo "${err}" >> ${logFile}
|
|
||||||
echo "${errMore}" >> ${logFile}
|
|
||||||
exit 11
|
exit 11
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# WALLET --> SEED
|
# WALLET --> SEED
|
||||||
elif [ "${seedWords}" != "" ]; then
|
elif [ "${seedWords}" != "" ]; then
|
||||||
|
|
||||||
echo "WALLET --> SEED" >> ${logFile}
|
echo "WALLET --> SEED" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='LND Wallet (SEED)'/g" ${infoFile}
|
/home/admin/_cache.sh set message "LND Wallet (SEED)"
|
||||||
if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi
|
if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi
|
||||||
sudo /home/admin/config.scripts/lnd.initwallet.py seed mainnet ${passwordC} "${seedWords}" ${seedPassword}
|
source <(/home/admin/config.scripts/lnd.initwallet.py seed mainnet ${passwordC} "${seedWords}" ${seedPassword})
|
||||||
if [ "${err}" != "" ]; then
|
if [ "${err}" != "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-wallet-seed" "lnd.initwallet.py seed returned error" "/home/admin/config.scripts/lnd.initwallet.py seed mainnet ... --> ${err} + ${errMore}" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: lnd wallet SEED failed'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: setup: lnd wallet SEED failed" >> ${logFile}
|
|
||||||
echo "${err}" >> ${logFile}
|
|
||||||
echo "${errMore}" >> ${logFile}
|
|
||||||
exit 12
|
exit 12
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -294,14 +270,15 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
else
|
else
|
||||||
|
|
||||||
echo "WALLET --> NEW" >> ${logFile}
|
echo "WALLET --> NEW" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='LND Wallet (NEW)'/g" ${infoFile}
|
/home/admin/_cache.sh set message "LND Wallet (NEW)"
|
||||||
if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi
|
if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi
|
||||||
source <(sudo /home/admin/config.scripts/lnd.initwallet.py new mainnet ${passwordC})
|
source <(/home/admin/config.scripts/lnd.initwallet.py new mainnet ${passwordC})
|
||||||
if [ "${err}" != "" ]; then
|
if [ "${err}" != "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-wallet-new" "lnd.initwallet.py new returned error" "/home/admin/config.scripts/lnd.initwallet.py new mainnet ... --> ${err} + ${errMore}" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: lnd wallet SEED failed'/g" ${infoFile}
|
/home/admin/_cache.sh set state "error"
|
||||||
|
/home/admin/_cache.sh set message "setup: lnd wallet NEW failed"
|
||||||
echo "FAIL see ${logFile}"
|
echo "FAIL see ${logFile}"
|
||||||
echo "FAIL: setup: lnd wallet SEED failed" >> ${logFile}
|
echo "FAIL: setup: lnd wallet SEED failed (2)" >> ${logFile}
|
||||||
echo "${err}" >> ${logFile}
|
echo "${err}" >> ${logFile}
|
||||||
echo "${errMore}" >> ${logFile}
|
echo "${errMore}" >> ${logFile}
|
||||||
exit 13
|
exit 13
|
||||||
@ -315,14 +292,12 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
|
|
||||||
# sync macaroons & TLS to other users
|
# sync macaroons & TLS to other users
|
||||||
echo "*** Copy LND Macaroons to user admin ***" >> ${logFile}
|
echo "*** Copy LND Macaroons to user admin ***" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='LND Credentials'/g" ${infoFile}
|
/home/admin/_cache.sh set message "LND Credentials"
|
||||||
|
|
||||||
# check if macaroon exists now - if not fail
|
# check if macaroon exists now - if not fail
|
||||||
macaroonExists=$(sudo -u bitcoin ls -la /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon 2>/dev/null | grep -c admin.macaroon)
|
macaroonExists=$(sudo -u bitcoin ls -la /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon 2>/dev/null | grep -c admin.macaroon)
|
||||||
if [ ${macaroonExists} -eq 0 ]; then
|
if [ ${macaroonExists} -eq 0 ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-no-macaroons" "lnd did not create macaroons" "/home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon --> missing" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: lnd no macaroons'/g" ${infoFile}
|
|
||||||
echo "FAIL: setup: lnd no macaroons" >> ${logFile}
|
|
||||||
exit 14
|
exit 14
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -332,10 +307,7 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
# make a final lnd check
|
# make a final lnd check
|
||||||
source <(/home/admin/config.scripts/lnd.check.sh basic-setup)
|
source <(/home/admin/config.scripts/lnd.check.sh basic-setup)
|
||||||
if [ "${err}" != "" ]; then
|
if [ "${err}" != "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-check-error" "lnd.check.sh basic-setup with error" "/home/admin/config.scripts/lnd.check.sh basic-setup --> ${err}" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: lnd wallet SEED failed'/g" ${infoFile}
|
|
||||||
echo "FAIL: setup: lnd wallet SEED failed" >> ${logFile}
|
|
||||||
echo "${err}" >> ${logFile}
|
|
||||||
exit 15
|
exit 15
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -351,21 +323,17 @@ if [ "${lightning}" == "cl" ]; then
|
|||||||
# c-lightning
|
# c-lightning
|
||||||
echo "############## c-lightning" >> ${logFile}
|
echo "############## c-lightning" >> ${logFile}
|
||||||
|
|
||||||
sudo sed -i "s/^message=.*/message='C-Lightning Install'/g" ${infoFile}
|
/home/admin/_cache.sh set message "C-Lightning Install"
|
||||||
sudo /home/admin/config.scripts/cl.install.sh on mainnet >> ${logFile}
|
sudo /home/admin/config.scripts/cl.install.sh on mainnet >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='C-Lightning Setup'/g" ${infoFile}
|
/home/admin/_cache.sh set message "C-Lightning Setup"
|
||||||
|
|
||||||
# OLD WALLET FROM CLIGHTNING RESCUE
|
# OLD WALLET FROM CLIGHTNING RESCUE
|
||||||
if [ "${clrescue}" != "" ]; then
|
if [ "${clrescue}" != "" ]; then
|
||||||
|
|
||||||
echo "Restore CL data from uploaded rescue file ${clrescue} ..." >> ${logFile}
|
echo "Restore CL data from uploaded rescue file ${clrescue} ..." >> ${logFile}
|
||||||
source <(sudo /home/admin/config.scripts/cl.backup.sh cl-import ${clrescue})
|
source <(/home/admin/config.scripts/cl.backup.sh cl-import ${clrescue})
|
||||||
if [ "${error}" != "" ]; then
|
if [ "${error}" != "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "cl-import-backup" "cl.backup.sh cl-import with error" "/home/admin/config.scripts/cl.backup.sh cl-import ${clrescue} --> ${error}" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: cl import backup failed'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: setup: cl import backup failed" >> ${logFile}
|
|
||||||
echo "${error}" >> ${logFile}
|
|
||||||
exit 16
|
exit 16
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -373,14 +341,12 @@ if [ "${lightning}" == "cl" ]; then
|
|||||||
elif [ "${seedWords}" != "" ]; then
|
elif [ "${seedWords}" != "" ]; then
|
||||||
|
|
||||||
echo "Restore CL wallet from seedWords ..." >> ${logFile}
|
echo "Restore CL wallet from seedWords ..." >> ${logFile}
|
||||||
source <(sudo /home/admin/config.scripts/cl.hsmtool.sh seed-force mainnet "${seedWords}" "${seedPassword}")
|
source <(/home/admin/config.scripts/cl.hsmtool.sh seed-force mainnet "${seedWords}" "${seedPassword}")
|
||||||
|
|
||||||
# check if wallet really got created
|
# check if wallet really got created
|
||||||
walletExistsNow=$(sudo ls /home/bitcoin/.lightning/bitcoin/hsm_secret 2>/dev/null | grep -c "hsm_secret")
|
walletExistsNow=$(ls /home/bitcoin/.lightning/bitcoin/hsm_secret 2>/dev/null | grep -c "hsm_secret")
|
||||||
if [ $walletExistsNow -eq 0 ]; then
|
if [ $walletExistsNow -eq 0 ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "cl-wallet-seed" "cl.hsmtool.sh seed-force not created wallet" "ls /home/bitcoin/.lightning/bitcoin/hsm_secret --> 0" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: seed maybe wrong'/g" ${infoFile}
|
|
||||||
echo "FAIL: setup: no cl wallet created - seed maybe wrong" >> ${logFile}
|
|
||||||
exit 17
|
exit 17
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -390,22 +356,18 @@ if [ "${lightning}" == "cl" ]; then
|
|||||||
echo "Generate new CL wallet ..." >> ${logFile}
|
echo "Generate new CL wallet ..." >> ${logFile}
|
||||||
|
|
||||||
# generate new wallet
|
# generate new wallet
|
||||||
source <(sudo /home/admin/config.scripts/cl.hsmtool.sh new-force mainnet)
|
source <(/home/admin/config.scripts/cl.hsmtool.sh new-force mainnet)
|
||||||
|
|
||||||
# check if got new seedwords
|
# check if got new seedwords
|
||||||
if [ "${seedwords}" == "" ] || [ "${seedwords6x4}" == "" ]; then
|
if [ "${seedwords}" == "" ] || [ "${seedwords6x4}" == "" ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "cl-wallet-new-noseeds" "cl.hsmtool.sh new-force did not returned seedwords" "/home/admin/config.scripts/cl.hsmtool.sh new-force mainnet --> seedwords=''" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: no cl seedwords'/g" ${infoFile}
|
|
||||||
echo "FAIL: setup: no cl seedwords" >> ${logFile}
|
|
||||||
exit 18
|
exit 18
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check if wallet really got created
|
# check if wallet really got created
|
||||||
walletExistsNow=$(sudo ls /home/bitcoin/.lightning/bitcoin/hsm_secret 2>/dev/null | grep -c "hsm_secret")
|
walletExistsNow=$(sudo ls /home/bitcoin/.lightning/bitcoin/hsm_secret 2>/dev/null | grep -c "hsm_secret")
|
||||||
if [ $walletExistsNow -eq 0 ]; then
|
if [ $walletExistsNow -eq 0 ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.setup.sh "cl-wallet-new-nowallet" "cl.hsmtool.sh new-force did not created wallet" "/home/bitcoin/.lightning/bitcoin/hsm_secret --> missing" ${logFile}
|
||||||
sed -i "s/^message=.*/message='setup: no cl wallet created'/g" ${infoFile}
|
|
||||||
echo "FAIL: setup: no cl wallet created" >> ${logFile}
|
|
||||||
exit 19
|
exit 19
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -425,6 +387,6 @@ fi
|
|||||||
echo "stopping bitcoind for the rest provision again (will start on next boot)" >> ${logFile}
|
echo "stopping bitcoind for the rest provision again (will start on next boot)" >> ${logFile}
|
||||||
systemctl stop bitcoind >> ${logFile}
|
systemctl stop bitcoind >> ${logFile}
|
||||||
|
|
||||||
sudo sed -i "s/^message=.*/message='Provision Setup Finish'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Provision Setup Finish"
|
||||||
echo "END Setup" >> ${logFile}
|
echo "END Setup" >> ${logFile}
|
||||||
exit 0
|
exit 0
|
@ -1,5 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# check if started with sudo
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "error='run as root'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# LOGFILE - store debug logs of bootstrap
|
# LOGFILE - store debug logs of bootstrap
|
||||||
logFile="/home/admin/raspiblitz.provision-update.log"
|
logFile="/home/admin/raspiblitz.provision-update.log"
|
||||||
|
|
||||||
@ -18,7 +24,7 @@ echo "" > ${logFile}
|
|||||||
echo "###################################" >> ${logFile}
|
echo "###################################" >> ${logFile}
|
||||||
echo "# _provision.update.sh" >> ${logFile}
|
echo "# _provision.update.sh" >> ${logFile}
|
||||||
echo "###################################" >> ${logFile}
|
echo "###################################" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Running Data Update'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Running Data Update"
|
||||||
|
|
||||||
# HDD BTRFS RAID REPAIR IF NEEDED
|
# HDD BTRFS RAID REPAIR IF NEEDED
|
||||||
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
||||||
@ -40,15 +46,13 @@ source ${configFile}
|
|||||||
|
|
||||||
# check if config files contains basic: hostname
|
# check if config files contains basic: hostname
|
||||||
if [ ${#hostname} -eq 0 ]; then
|
if [ ${#hostname} -eq 0 ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.update.sh "missing-hostname" "${setupFile} or ${configFile} contains no hostname" "" ${logFile}
|
||||||
sed -i "s/^message=.*/message='config: missing hostname'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: missing hostname in (${configFile})!" >> ${logFile}
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check if config files contain lightning (lnd is default)
|
# check if config files contain lightning (lnd is default) introduced in v1.7.1
|
||||||
if [ "${lightning}" == "" ]; then
|
entryExists=$(cat ${configFile} | grep -c "^lightning=")
|
||||||
|
if [ "${entryExists}" != "1" ]; then
|
||||||
lightning="lnd"
|
lightning="lnd"
|
||||||
echo "lightning=${lightning}" >> ${configFile}
|
echo "lightning=${lightning}" >> ${configFile}
|
||||||
fi
|
fi
|
||||||
@ -58,10 +62,7 @@ source /home/admin/_version.info
|
|||||||
|
|
||||||
# check if code version was loaded
|
# check if code version was loaded
|
||||||
if [ ${#codeVersion} -eq 0 ]; then
|
if [ ${#codeVersion} -eq 0 ]; then
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
/home/admin/config.scripts/blitz.error.sh _provision.update.sh "missing-version" "missing /home/admin/_version.info" "" ${logFile}
|
||||||
sed -i "s/^message=.*/message='missing /home/admin/_version.info'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: no code version (/home/admin/_version.info) found!" >> ${logFile}
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -143,7 +144,7 @@ if [ "${raspiBlitzVersion}" != "${codeVersion}" ]; then
|
|||||||
echo "detected version change ... starting migration script" >> ${logFile}
|
echo "detected version change ... starting migration script" >> ${logFile}
|
||||||
# nothing specific here yet
|
# nothing specific here yet
|
||||||
echo "OK Done - Updating version in config"
|
echo "OK Done - Updating version in config"
|
||||||
sudo sed -i "s/^raspiBlitzVersion=.*/raspiBlitzVersion='${codeVersion}'/g" ${configFile}
|
/home/admin/config.scripts/blitz.conf.sh set raspiBlitzVersion "${codeVersion}"
|
||||||
else
|
else
|
||||||
echo "OK - version of config data is up to date" >> ${logFile}
|
echo "OK - version of config data is up to date" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
@ -151,26 +152,25 @@ fi
|
|||||||
# start network service
|
# start network service
|
||||||
echo ""
|
echo ""
|
||||||
echo "*** Start ${network} (UPDATE) ***" >> ${logFile}
|
echo "*** Start ${network} (UPDATE) ***" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Blockchain Testrun'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Blockchain Testrun"
|
||||||
echo "- This can take a while .." >> ${logFile}
|
echo "- This can take a while .." >> ${logFile}
|
||||||
sudo chown -R bitcoin:bitcoin /mnt/hdd/${network} >>${logFile} 2>&1
|
chown -R bitcoin:bitcoin /mnt/hdd/${network} >>${logFile} 2>&1
|
||||||
sudo cp /home/admin/assets/${network}d.service /etc/systemd/system/${network}d.service
|
cp /home/admin/assets/${network}d.service /etc/systemd/system/${network}d.service
|
||||||
sudo systemctl daemon-reload >> ${logFile}
|
systemctl daemon-reload >> ${logFile}
|
||||||
sudo systemctl enable ${network}d.service >> ${logFile}
|
systemctl enable ${network}d.service >> ${logFile}
|
||||||
sudo systemctl start ${network}d.service >> ${logFile}
|
systemctl start ${network}d.service >> ${logFile}
|
||||||
|
|
||||||
# INSTALL LND on Upadte/Recovery
|
# INSTALL LND on Upadte/Recovery
|
||||||
if [ "${lightning}" == "lnd" ]; then
|
if [ "${lightning}" == "lnd" ] || [ "${lnd}" == "on" ]; then
|
||||||
|
|
||||||
# prepare lnd service
|
# prepare lnd service
|
||||||
sudo cp /home/admin/assets/lnd.service /etc/systemd/system/lnd.service >> ${logFile} 2>&1
|
cp /home/admin/assets/lnd.service /etc/systemd/system/lnd.service >> ${logFile} 2>&1
|
||||||
|
|
||||||
# convert old keysend by lndExtraParameter to raspiblitz.conf setting (will be enforced by lnd.check.sh prestart) since 1.7.1
|
# convert old keysend by lndExtraParameter to raspiblitz.conf setting (will be enforced by lnd.check.sh prestart) since 1.7.1
|
||||||
if [ "${lndExtraParameter}" == "--accept-keysend" ]; then
|
if [ "${lndExtraParameter}" == "--accept-keysend" ]; then
|
||||||
echo "# MIGRATION KEYSEND from lndExtraParameter --> raspiblitz.conf" >> ${logFile}
|
echo "# MIGRATION KEYSEND from lndExtraParameter --> raspiblitz.conf" >> ${logFile}
|
||||||
sudo sed -i '/lndKeysend=.*/d' /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lndKeysend "on"
|
||||||
echo "lndKeysend=on" >> /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh delete lndExtraParameter
|
||||||
sudo sed -i "/^lndExtraParameter=/d" /mnt/hdd/raspiblitz.conf 2>/dev/null
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# if old lnd.conf exists ...
|
# if old lnd.conf exists ...
|
||||||
@ -178,61 +178,61 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
if [ ${configExists} -eq 1 ]; then
|
if [ ${configExists} -eq 1 ]; then
|
||||||
|
|
||||||
# make sure correct file permisions are set
|
# make sure correct file permisions are set
|
||||||
sudo chown bitcoin:bitcoin /mnt/hdd/lnd/lnd.conf
|
chown bitcoin:bitcoin /mnt/hdd/lnd/lnd.conf
|
||||||
sudo chmod 664 /mnt/hdd/lnd/lnd.conf
|
chmod 664 /mnt/hdd/lnd/lnd.conf
|
||||||
|
|
||||||
# make sure additional values are added to [Application Options] since v1.7
|
# make sure additional values are added to [Application Options] since v1.7
|
||||||
echo "- lnd.conf --> checking additional [Application Options] since v1.7" >> ${logFile}
|
echo "- lnd.conf --> checking additional [Application Options] since v1.7" >> ${logFile}
|
||||||
applicationOptionsLineNumber=$(sudo grep -n "\[Application Options\]" /mnt/hdd/lnd/lnd.conf | cut -d ":" -f1)
|
applicationOptionsLineNumber=$(grep -n "\[Application Options\]" /mnt/hdd/lnd/lnd.conf | cut -d ":" -f1)
|
||||||
if [ "${applicationOptionsLineNumber}" != "" ]; then
|
if [ "${applicationOptionsLineNumber}" != "" ]; then
|
||||||
applicationOptionsLineNumber="$(($applicationOptionsLineNumber+1))"
|
applicationOptionsLineNumber="$(($applicationOptionsLineNumber+1))"
|
||||||
|
|
||||||
# Avoid historical graph data sync
|
# Avoid historical graph data sync
|
||||||
# ignore-historical-gossip-filters=1
|
# ignore-historical-gossip-filters=1
|
||||||
configParamExists=$(sudo grep -c "^ignore-historical-gossip-filters=" /mnt/hdd/lnd/lnd.conf)
|
configParamExists=$(grep -c "^ignore-historical-gossip-filters=" /mnt/hdd/lnd/lnd.conf)
|
||||||
if [ "${configParamExists}" == "0" ]; then
|
if [ "${configParamExists}" == "0" ]; then
|
||||||
echo " - ADDING 'ignore-historical-gossip-filters'" >> ${logFile}
|
echo " - ADDING 'ignore-historical-gossip-filters'" >> ${logFile}
|
||||||
sudo sed -i "${applicationOptionsLineNumber}iignore-historical-gossip-filters=1" /mnt/hdd/lnd/lnd.conf
|
sed -i "${applicationOptionsLineNumber}iignore-historical-gossip-filters=1" /mnt/hdd/lnd/lnd.conf
|
||||||
else
|
else
|
||||||
echo " - OK 'ignore-historical-gossip-filters' exists (${configParamExists})" >> ${logFile}
|
echo " - OK 'ignore-historical-gossip-filters' exists (${configParamExists})" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Avoid slow startup time
|
# Avoid slow startup time
|
||||||
# sync-freelist=1
|
# sync-freelist=1
|
||||||
configParamExists=$(sudo grep -c "^sync-freelist=" /mnt/hdd/lnd/lnd.conf)
|
configParamExists=$(grep -c "^sync-freelist=" /mnt/hdd/lnd/lnd.conf)
|
||||||
if [ "${configParamExists}" == "0" ]; then
|
if [ "${configParamExists}" == "0" ]; then
|
||||||
echo " - ADDING 'sync-freelist'" >> ${logFile}
|
echo " - ADDING 'sync-freelist'" >> ${logFile}
|
||||||
sudo sed -i "${applicationOptionsLineNumber}isync-freelist=1" /mnt/hdd/lnd/lnd.conf
|
sed -i "${applicationOptionsLineNumber}isync-freelist=1" /mnt/hdd/lnd/lnd.conf
|
||||||
else
|
else
|
||||||
echo " - OK 'sync-freelist' exists (${configParamExists})" >> ${logFile}
|
echo " - OK 'sync-freelist' exists (${configParamExists})" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Avoid high startup overhead
|
# Avoid high startup overhead
|
||||||
# stagger-initial-reconnect=1
|
# stagger-initial-reconnect=1
|
||||||
configParamExists=$(sudo grep -c "^stagger-initial-reconnect=" /mnt/hdd/lnd/lnd.conf)
|
configParamExists=$(grep -c "^stagger-initial-reconnect=" /mnt/hdd/lnd/lnd.conf)
|
||||||
if [ "${configParamExists}" == "0" ]; then
|
if [ "${configParamExists}" == "0" ]; then
|
||||||
echo " - ADDING 'stagger-initial-reconnect'" >> ${logFile}
|
echo " - ADDING 'stagger-initial-reconnect'" >> ${logFile}
|
||||||
sudo sed -i "${applicationOptionsLineNumber}istagger-initial-reconnect=1" /mnt/hdd/lnd/lnd.conf
|
sed -i "${applicationOptionsLineNumber}istagger-initial-reconnect=1" /mnt/hdd/lnd/lnd.conf
|
||||||
else
|
else
|
||||||
echo " - OK 'stagger-initial-reconnect' exists (${configParamExists})" >> ${logFile}
|
echo " - OK 'stagger-initial-reconnect' exists (${configParamExists})" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Delete and recreate RPC TLS certificate when details change or cert expires
|
# Delete and recreate RPC TLS certificate when details change or cert expires
|
||||||
# tlsautorefresh=1
|
# tlsautorefresh=1
|
||||||
configParamExists=$(sudo grep -c "^tlsautorefresh=" /mnt/hdd/lnd/lnd.conf)
|
configParamExists=$(grep -c "^tlsautorefresh=" /mnt/hdd/lnd/lnd.conf)
|
||||||
if [ "${configParamExists}" == "0" ]; then
|
if [ "${configParamExists}" == "0" ]; then
|
||||||
echo " - ADDING 'tlsautorefresh'" >> ${logFile}
|
echo " - ADDING 'tlsautorefresh'" >> ${logFile}
|
||||||
sudo sed -i "${applicationOptionsLineNumber}itlsautorefresh=1" /mnt/hdd/lnd/lnd.conf
|
sed -i "${applicationOptionsLineNumber}itlsautorefresh=1" /mnt/hdd/lnd/lnd.conf
|
||||||
else
|
else
|
||||||
echo " - OK 'tlsautorefresh' exists (${configParamExists})" >> ${logFile}
|
echo " - OK 'tlsautorefresh' exists (${configParamExists})" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Do not include IPs in the RPC TLS certificate
|
# Do not include IPs in the RPC TLS certificate
|
||||||
# tlsdisableautofill=1
|
# tlsdisableautofill=1
|
||||||
configParamExists=$(sudo grep -c "^tlsdisableautofill=" /mnt/hdd/lnd/lnd.conf)
|
configParamExists=$(grep -c "^tlsdisableautofill=" /mnt/hdd/lnd/lnd.conf)
|
||||||
if [ "${configParamExists}" == "0" ]; then
|
if [ "${configParamExists}" == "0" ]; then
|
||||||
echo " - ADDING 'tlsdisableautofill'" >> ${logFile}
|
echo " - ADDING 'tlsdisableautofill'" >> ${logFile}
|
||||||
sudo sed -i "${applicationOptionsLineNumber}itlsdisableautofill=1" /mnt/hdd/lnd/lnd.conf
|
sed -i "${applicationOptionsLineNumber}itlsdisableautofill=1" /mnt/hdd/lnd/lnd.conf
|
||||||
else
|
else
|
||||||
echo " - OK 'tlsdisableautofill' exists (${configParamExists})" >> ${logFile}
|
echo " - OK 'tlsdisableautofill' exists (${configParamExists})" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
@ -246,29 +246,19 @@ if [ "${lightning}" == "lnd" ]; then
|
|||||||
|
|
||||||
# start LND service
|
# start LND service
|
||||||
echo "Starting LND Service ..." >> ${logFile}
|
echo "Starting LND Service ..." >> ${logFile}
|
||||||
sudo systemctl enable lnd >> ${logFile}
|
systemctl enable lnd >> ${logFile}
|
||||||
sudo systemctl start lnd >> ${logFile}
|
systemctl start lnd >> ${logFile}
|
||||||
|
|
||||||
elif [ "${lightning}" == "cl" ]; then
|
fi
|
||||||
|
|
||||||
|
if [ "${lightning}" == "cl" ] || [ "${cl}" == "on" ]; then
|
||||||
|
|
||||||
echo "Install C-lightning on update" >> ${logFile}
|
echo "Install C-lightning on update" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='C-Lightning Install'/g" ${infoFile}
|
/home/admin/_cache.sh set message "C-Lightning Install"
|
||||||
sudo /home/admin/config.scripts/cl.install.sh on mainnet >> ${logFile}
|
/home/admin/config.scripts/cl.install.sh on mainnet >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='C-Lightning Setup'/g" ${infoFile}
|
/home/admin/_cache.sh set message "C-Lightning Setup"
|
||||||
|
|
||||||
elif [ "${lightning}" == "none" ]; then
|
fi
|
||||||
|
|
||||||
echo "No Lightning" >> ${logFile}
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
sed -i "s/^state=.*/state=error/g" ${infoFile}
|
|
||||||
sed -i "s/^message=.*/message='unknown lightning (${lightning})'/g" ${infoFile}
|
|
||||||
echo "FAIL see ${logFile}"
|
|
||||||
echo "FAIL: unknown lightning (${lightning}) in (${configFile})!" >> ${logFile}
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "END Migration/Init" >> ${logFile}
|
echo "END Migration/Init" >> ${logFile}
|
||||||
|
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# check if started with sudo
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "error='run as root'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# This script gets called from a fresh SD card
|
# This script gets called from a fresh SD card
|
||||||
# starting up that has an config file on HDD
|
# starting up that has an config file on HDD
|
||||||
# from old RaspiBlitz or manufacturer to
|
# from old RaspiBlitz or manufacturer to
|
||||||
@ -10,7 +16,6 @@ logFile="/home/admin/raspiblitz.log"
|
|||||||
|
|
||||||
# INFOFILE - state data from bootstrap
|
# INFOFILE - state data from bootstrap
|
||||||
infoFile="/home/admin/raspiblitz.info"
|
infoFile="/home/admin/raspiblitz.info"
|
||||||
infoFileDisplayClass="${displayClass}"
|
|
||||||
|
|
||||||
# CONFIGFILE - configuration of RaspiBlitz
|
# CONFIGFILE - configuration of RaspiBlitz
|
||||||
configFile="/mnt/hdd/raspiblitz.conf"
|
configFile="/mnt/hdd/raspiblitz.conf"
|
||||||
@ -25,78 +30,24 @@ echo "" >> ${logFile}
|
|||||||
echo "###################################" >> ${logFile}
|
echo "###################################" >> ${logFile}
|
||||||
echo "# _provision_.sh" >> ${logFile}
|
echo "# _provision_.sh" >> ${logFile}
|
||||||
echo "###################################" >> ${logFile}
|
echo "###################################" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Provisioning from Config'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Provisioning from Config"
|
||||||
|
|
||||||
# check if there is a config file
|
# check if there is a config file
|
||||||
configExists=$(ls ${configFile} 2>/dev/null | grep -c '.conf')
|
configExists=$(ls ${configFile} 2>/dev/null | grep -c '.conf')
|
||||||
if [ ${configExists} -eq 0 ]; then
|
if [ ${configExists} -eq 0 ]; then
|
||||||
echo "FAIL: no config file (${configFile}) found to run provision!" >> ${logFile}
|
/home/admin/config.scripts/blitz.error.sh _provision_.sh "missing-config" "no config file (${configFile}) found to run provision" "" ${logFile}
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# import config values
|
# import config values
|
||||||
source ${configFile}
|
source ${configFile}
|
||||||
|
|
||||||
##########################
|
|
||||||
# DISPLAY SETTINGS
|
|
||||||
##########################
|
|
||||||
|
|
||||||
# check if the raspiblitz config has a different display mode than the build image
|
|
||||||
echo "### DISPLAY SETTINGS ###" >> ${logFile}
|
|
||||||
|
|
||||||
# OLD: when nothing is set in raspiblitz.conf (<1.7)
|
|
||||||
existsDisplayClass=$(sudo cat ${configFile} | grep -c "displayClass=")
|
|
||||||
if [ "${existsDisplayClass}" == "0" ]; then
|
|
||||||
displayClass="lcd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# OLD: lcd2hdmi (deprecated)
|
|
||||||
if [ "${lcd2hdmi}" == "on" ]; then
|
|
||||||
echo "Convert lcd2hdmi=on to displayClass='hdmi'" >> ${logFile}
|
|
||||||
sudo sed -i "s/^lcd2hdmi=.*//g" ${configFile}
|
|
||||||
echo "displayClass=hdmi" >> ${configFile}
|
|
||||||
displayClass="hdmi"
|
|
||||||
elif [ "${lcd2hdmi}" != "" ]; then
|
|
||||||
echo "Remove old lcd2hdmi pramater from config" >> ${logFile}
|
|
||||||
sudo sed -i "s/^lcd2hdmi=.*//g" ${configFile}
|
|
||||||
displayClass="lcd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# OLD: headless (deprecated)
|
|
||||||
if [ "${headless}" == "on" ]; then
|
|
||||||
echo "Convert headless=on to displayClass='headless'" >> ${logFile}
|
|
||||||
sudo sed -i "s/^headless=.*//g" ${configFile}
|
|
||||||
echo "displayClass=headless" >> ${configFile}
|
|
||||||
displayClass="headless"
|
|
||||||
elif [ "${headless}" != "" ]; then
|
|
||||||
echo "Remove old headless parameter from config" >> ${logFile}
|
|
||||||
sudo sed -i "s/^headless=.*//g" ${configFile}
|
|
||||||
displayClass="lcd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NEW: decide by displayClass
|
|
||||||
echo "raspiblitz.info(${infoFileDisplayClass}) raspiblitz.conf(${displayClass})" >> ${logFile}
|
|
||||||
if [ "${infoFileDisplayClass}" != "" ] && [ "${displayClass}" != "" ]; then
|
|
||||||
if [ "${infoFileDisplayClass}" != "${displayClass}" ]; then
|
|
||||||
echo "Need to update displayClass from (${infoFileDisplayClass}) to (${displayClass})'" >> ${logFile}
|
|
||||||
sudo /home/admin/config.scripts/blitz.display.sh set-display ${displayClass} >> ${logFile}
|
|
||||||
echo "going into reboot" >> ${logFile}
|
|
||||||
sudo cp ${logFile} ${logFile}.display.recover
|
|
||||||
sudo shutdown -r now
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
echo "Display Setting is correct ... no need for change" >> ${logFile}
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "WARN values in raspiblitz info and/or conf file seem broken" >> ${logFile}
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################
|
##########################
|
||||||
# BASIC SYSTEM SETTINGS
|
# BASIC SYSTEM SETTINGS
|
||||||
##########################
|
##########################
|
||||||
|
|
||||||
echo "### BASIC SYSTEM SETTINGS ###" >> ${logFile}
|
echo "### BASIC SYSTEM SETTINGS ###" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup System .'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup System ."
|
||||||
|
|
||||||
echo "# Make sure the user bitcoin is in the debian-tor group"
|
echo "# Make sure the user bitcoin is in the debian-tor group"
|
||||||
sudo usermod -a -G debian-tor bitcoin
|
sudo usermod -a -G debian-tor bitcoin
|
||||||
@ -160,7 +111,7 @@ echo "" >> ${logFile}
|
|||||||
##########################
|
##########################
|
||||||
|
|
||||||
# finish setup (SWAP, Benus, Firewall, Update, ..)
|
# finish setup (SWAP, Benus, Firewall, Update, ..)
|
||||||
sudo sed -i "s/^message=.*/message='Setup System ..'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup System .."
|
||||||
|
|
||||||
# add bonus scripts (auto install deactivated to reduce third party repos)
|
# add bonus scripts (auto install deactivated to reduce third party repos)
|
||||||
mkdir /home/admin/tmpScriptDL
|
mkdir /home/admin/tmpScriptDL
|
||||||
@ -231,7 +182,7 @@ sudo sed -i "s/^setupStep=.*/setupStep=100/g" /home/admin/raspiblitz.info
|
|||||||
##########################
|
##########################
|
||||||
# PROVISIONING SERVICES
|
# PROVISIONING SERVICES
|
||||||
##########################
|
##########################
|
||||||
sudo sed -i "s/^message=.*/message='Installing Services'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Installing Services"
|
||||||
|
|
||||||
echo "### RUNNING PROVISIONING SERVICES ###" >> ${logFile}
|
echo "### RUNNING PROVISIONING SERVICES ###" >> ${logFile}
|
||||||
|
|
||||||
@ -241,7 +192,7 @@ echo "Provisioning BLITZ WEB SERVICE - run config script" >> ${logFile}
|
|||||||
|
|
||||||
# BITCOIN INTERIMS UPDATE
|
# BITCOIN INTERIMS UPDATE
|
||||||
if [ ${#bitcoinInterimsUpdate} -gt 0 ]; then
|
if [ ${#bitcoinInterimsUpdate} -gt 0 ]; then
|
||||||
sudo sed -i "s/^message=.*/message='Provisioning Bitcoin Core update'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Provisioning Bitcoin Core update"
|
||||||
if [ "${bitcoinInterimsUpdate}" == "reckless" ]; then
|
if [ "${bitcoinInterimsUpdate}" == "reckless" ]; then
|
||||||
# recklessly update Bitcoin Core to latest release on GitHub
|
# recklessly update Bitcoin Core to latest release on GitHub
|
||||||
echo "Provisioning Bitcoin Core reckless interims update" >> ${logFile}
|
echo "Provisioning Bitcoin Core reckless interims update" >> ${logFile}
|
||||||
@ -250,7 +201,7 @@ if [ ${#bitcoinInterimsUpdate} -gt 0 ]; then
|
|||||||
# when installing the same sd image - this will re-trigger the secure interims update
|
# when installing the same sd image - this will re-trigger the secure interims update
|
||||||
# if this a update with a newer RaspiBlitz version .. interims update will be ignored
|
# if this a update with a newer RaspiBlitz version .. interims update will be ignored
|
||||||
# because standard Bitcoin Core version is most more up to date
|
# because standard Bitcoin Core version is most more up to date
|
||||||
echo "Provisioning BItcoin Core tested interims update" >> ${logFile}
|
echo "Provisioning Bitcoin Core tested interims update" >> ${logFile}
|
||||||
sudo /home/admin/config.scripts/bitcoin.update.sh tested ${bitcoinInterimsUpdate} >> ${logFile}
|
sudo /home/admin/config.scripts/bitcoin.update.sh tested ${bitcoinInterimsUpdate} >> ${logFile}
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@ -259,7 +210,7 @@ fi
|
|||||||
|
|
||||||
# LND INTERIMS UPDATE
|
# LND INTERIMS UPDATE
|
||||||
if [ ${#lndInterimsUpdate} -gt 0 ]; then
|
if [ ${#lndInterimsUpdate} -gt 0 ]; then
|
||||||
sudo sed -i "s/^message=.*/message='Provisioning LND update'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Provisioning LND update"
|
||||||
if [ "${lndInterimsUpdate}" == "reckless" ]; then
|
if [ "${lndInterimsUpdate}" == "reckless" ]; then
|
||||||
# recklessly update LND to latest release on GitHub (just for test & dev nodes)
|
# recklessly update LND to latest release on GitHub (just for test & dev nodes)
|
||||||
echo "Provisioning LND reckless interims update" >> ${logFile}
|
echo "Provisioning LND reckless interims update" >> ${logFile}
|
||||||
@ -277,7 +228,7 @@ fi
|
|||||||
|
|
||||||
# CL INTERIMS UPDATE
|
# CL INTERIMS UPDATE
|
||||||
if [ ${#clInterimsUpdate} -gt 0 ]; then
|
if [ ${#clInterimsUpdate} -gt 0 ]; then
|
||||||
sudo sed -i "s/^message=.*/message='Provisioning CL update'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Provisioning CL update"
|
||||||
if [ "${clInterimsUpdate}" == "reckless" ]; then
|
if [ "${clInterimsUpdate}" == "reckless" ]; then
|
||||||
# recklessly update CL to latest release on GitHub (just for test & dev nodes)
|
# recklessly update CL to latest release on GitHub (just for test & dev nodes)
|
||||||
echo "Provisioning CL reckless interims update" >> ${logFile}
|
echo "Provisioning CL reckless interims update" >> ${logFile}
|
||||||
@ -364,16 +315,16 @@ fi
|
|||||||
# TOR
|
# TOR
|
||||||
if [ "${runBehindTor}" == "on" ]; then
|
if [ "${runBehindTor}" == "on" ]; then
|
||||||
echo "Provisioning TOR - run config script" >> ${logFile}
|
echo "Provisioning TOR - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Tor (takes time)'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Tor (takes time)"
|
||||||
sudo /home/admin/config.scripts/internet.tor.sh on >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/internet.tor.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning TOR - keep default" >> ${logFile}
|
echo "Provisioning Tor - keep default" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# AUTO PILOT
|
# AUTO PILOT
|
||||||
if [ "${autoPilot}" = "on" ]; then
|
if [ "${autoPilot}" = "on" ]; then
|
||||||
echo "Provisioning AUTO PILOT - run config script" >> ${logFile}
|
echo "Provisioning AUTO PILOT - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup AutoPilot'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup AutoPilot"
|
||||||
sudo /home/admin/config.scripts/lnd.autopilot.sh on >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/lnd.autopilot.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning AUTO PILOT - keep default" >> ${logFile}
|
echo "Provisioning AUTO PILOT - keep default" >> ${logFile}
|
||||||
@ -382,7 +333,7 @@ fi
|
|||||||
# NETWORK UPNP
|
# NETWORK UPNP
|
||||||
if [ "${networkUPnP}" = "on" ]; then
|
if [ "${networkUPnP}" = "on" ]; then
|
||||||
echo "Provisioning NETWORK UPnP - run config script" >> ${logFile}
|
echo "Provisioning NETWORK UPnP - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup UPnP'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup UPnP"
|
||||||
sudo /home/admin/config.scripts/network.upnp.sh on >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/network.upnp.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning NETWORK UPnP - keep default" >> ${logFile}
|
echo "Provisioning NETWORK UPnP - keep default" >> ${logFile}
|
||||||
@ -391,7 +342,7 @@ fi
|
|||||||
# LND AUTO NAT DISCOVERY
|
# LND AUTO NAT DISCOVERY
|
||||||
if [ "${autoNatDiscovery}" = "on" ]; then
|
if [ "${autoNatDiscovery}" = "on" ]; then
|
||||||
echo "Provisioning LND AUTO NAT DISCOVERY - run config script" >> ${logFile}
|
echo "Provisioning LND AUTO NAT DISCOVERY - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup AutoNAT'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup AutoNAT"
|
||||||
sudo /home/admin/config.scripts/lnd.autonat.sh on >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/lnd.autonat.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning AUTO NAT DISCOVERY - keep default" >> ${logFile}
|
echo "Provisioning AUTO NAT DISCOVERY - keep default" >> ${logFile}
|
||||||
@ -400,7 +351,7 @@ fi
|
|||||||
# DYNAMIC DOMAIN
|
# DYNAMIC DOMAIN
|
||||||
if [ "${#dynDomain}" -gt 0 ]; then
|
if [ "${#dynDomain}" -gt 0 ]; then
|
||||||
echo "Provisioning DYNAMIC DOMAIN - run config script" >> ${logFile}
|
echo "Provisioning DYNAMIC DOMAIN - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup DynamicDomain'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup DynamicDomain"
|
||||||
sudo /home/admin/config.scripts/internet.dyndomain.sh on ${dynDomain} ${dynUpdateUrl} >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/internet.dyndomain.sh on ${dynDomain} ${dynUpdateUrl} >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning DYNAMIC DOMAIN - keep default" >> ${logFile}
|
echo "Provisioning DYNAMIC DOMAIN - keep default" >> ${logFile}
|
||||||
@ -409,7 +360,7 @@ fi
|
|||||||
# RTL (LND)
|
# RTL (LND)
|
||||||
if [ "${rtlWebinterface}" = "on" ]; then
|
if [ "${rtlWebinterface}" = "on" ]; then
|
||||||
echo "Provisioning RTL LND - run config script" >> ${logFile}
|
echo "Provisioning RTL LND - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup RTL (takes time)'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup RTL LND (takes time)"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.rtl.sh on lnd mainnet >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.rtl.sh on lnd mainnet >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning RTL LND - keep default" >> ${logFile}
|
echo "Provisioning RTL LND - keep default" >> ${logFile}
|
||||||
@ -418,7 +369,7 @@ fi
|
|||||||
# RTL (CL)
|
# RTL (CL)
|
||||||
if [ "${crtlWebinterface}" = "on" ]; then
|
if [ "${crtlWebinterface}" = "on" ]; then
|
||||||
echo "Provisioning RTL CL - run config script" >> ${logFile}
|
echo "Provisioning RTL CL - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup RTL (takes time)'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup RTL CL (takes time)"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.rtl.sh on cl mainnet >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.rtl.sh on cl mainnet >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning RTL CL - keep default" >> ${logFile}
|
echo "Provisioning RTL CL - keep default" >> ${logFile}
|
||||||
@ -427,7 +378,7 @@ fi
|
|||||||
# SPARKO
|
# SPARKO
|
||||||
if [ "${sparko}" = "on" ]; then
|
if [ "${sparko}" = "on" ]; then
|
||||||
echo "Provisioning Sparko - run config script" >> ${logFile}
|
echo "Provisioning Sparko - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup SPARKO'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup SPARKO"
|
||||||
sudo -u admin /home/admin/config.scripts/cl-plugin.sparko.sh on mainnet >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/cl-plugin.sparko.sh on mainnet >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Sparko - keep default" >> ${logFile}
|
echo "Provisioning Sparko - keep default" >> ${logFile}
|
||||||
@ -436,7 +387,7 @@ fi
|
|||||||
# clHTTPplugin
|
# clHTTPplugin
|
||||||
if [ "${clHTTPplugin}" = "on" ]; then
|
if [ "${clHTTPplugin}" = "on" ]; then
|
||||||
echo "Provisioning clHTTPplugin - run config script" >> ${logFile}
|
echo "Provisioning clHTTPplugin - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup clHTTPplugin'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup clHTTPplugin"
|
||||||
sudo -u admin /home/admin/config.scripts/cl-plugin.http.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/cl-plugin.http.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning clHTTPplugin - keep default" >> ${logFile}
|
echo "Provisioning clHTTPplugin - keep default" >> ${logFile}
|
||||||
@ -445,7 +396,7 @@ fi
|
|||||||
# SPARK
|
# SPARK
|
||||||
if [ "${spark}" = "on" ]; then
|
if [ "${spark}" = "on" ]; then
|
||||||
echo "Provisioning Spark Wallet - run config script" >> ${logFile}
|
echo "Provisioning Spark Wallet - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup SPARK WALLET'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup SPARK WALLET"
|
||||||
sudo -u admin /home/admin/config.scripts/cl.spark.sh on mainnet >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/cl.spark.sh on mainnet >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Spark Wallet - keep default" >> ${logFile}
|
echo "Provisioning Spark Wallet - keep default" >> ${logFile}
|
||||||
@ -454,7 +405,7 @@ fi
|
|||||||
#LOOP - install only if LiT won't be installed
|
#LOOP - install only if LiT won't be installed
|
||||||
if [ "${loop}" = "on" ] && [ "${lit}" != "on" ]; then
|
if [ "${loop}" = "on" ] && [ "${lit}" != "on" ]; then
|
||||||
echo "Provisioning Lightning Loop - run config script" >> ${logFile}
|
echo "Provisioning Lightning Loop - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Lightning Loop'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Lightning Loop"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.loop.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.loop.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Lightning Loop - keep default" >> ${logFile}
|
echo "Provisioning Lightning Loop - keep default" >> ${logFile}
|
||||||
@ -463,7 +414,7 @@ fi
|
|||||||
#BTC RPC EXPLORER
|
#BTC RPC EXPLORER
|
||||||
if [ "${BTCRPCexplorer}" = "on" ]; then
|
if [ "${BTCRPCexplorer}" = "on" ]; then
|
||||||
echo "Provisioning BTCRPCexplorer - run config script" >> ${logFile}
|
echo "Provisioning BTCRPCexplorer - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup BTCRPCexplorer (takes time)'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup BTCRPCexplorer (takes time)"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.btc-rpc-explorer.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.btc-rpc-explorer.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning BTCRPCexplorer - keep default" >> ${logFile}
|
echo "Provisioning BTCRPCexplorer - keep default" >> ${logFile}
|
||||||
@ -472,19 +423,19 @@ fi
|
|||||||
#ELECTRS
|
#ELECTRS
|
||||||
if [ "${ElectRS}" = "on" ]; then
|
if [ "${ElectRS}" = "on" ]; then
|
||||||
echo "Provisioning ElectRS - run config script" >> ${logFile}
|
echo "Provisioning ElectRS - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup ElectRS (takes time)'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup ElectRS (takes time)"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.electrs.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.electrs.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning ElectRS - keep default" >> ${logFile}
|
echo "Provisioning ElectRS - keep default" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# BTCPAYSERVER
|
# BTCPAYSERVER
|
||||||
if [ "${BTCPayServer}" = "on" ]; then
|
if [ "${BTCPayServer}" = "on" ]; then
|
||||||
|
|
||||||
echo "Provisioning BTCPAYSERVER on TOR - running setup" >> ${logFile}
|
echo "Provisioning BTCPAYSERVER on TOR - running setup" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup BTCPay (takes time)'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup BTCPay (takes time)"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.btcpayserver.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.btcpayserver.sh on >> ${logFile} 2>&1
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "Provisioning BTCPayServer - keep default" >> ${logFile}
|
echo "Provisioning BTCPayServer - keep default" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
@ -493,7 +444,7 @@ fi
|
|||||||
# LNDMANAGE
|
# LNDMANAGE
|
||||||
#if [ "${lndmanage}" = "on" ]; then
|
#if [ "${lndmanage}" = "on" ]; then
|
||||||
# echo "Provisioning lndmanage - run config script" >> ${logFile}
|
# echo "Provisioning lndmanage - run config script" >> ${logFile}
|
||||||
# sudo sed -i "s/^message=.*/message='Setup lndmanage '/g" ${infoFile}
|
# /home/admin/_cache.sh set message "Setup lndmanage"
|
||||||
# sudo -u admin /home/admin/config.scripts/bonus.lndmanage.sh on >> ${logFile} 2>&1
|
# sudo -u admin /home/admin/config.scripts/bonus.lndmanage.sh on >> ${logFile} 2>&1
|
||||||
#else
|
#else
|
||||||
# echo "Provisioning lndmanage - not active" >> ${logFile}
|
# echo "Provisioning lndmanage - not active" >> ${logFile}
|
||||||
@ -526,6 +477,7 @@ fi
|
|||||||
# CHANTOOLS
|
# CHANTOOLS
|
||||||
if [ "${chantools}" == "on" ]; then
|
if [ "${chantools}" == "on" ]; then
|
||||||
echo "Provisioning chantools - run config script" >> ${logFile}
|
echo "Provisioning chantools - run config script" >> ${logFile}
|
||||||
|
/home/admin/_cache.sh set message "Setup Chantools"
|
||||||
sudo /home/admin/config.scripts/bonus.chantools.sh on >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/bonus.chantools.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning chantools - keep default" >> ${logFile}
|
echo "Provisioning chantools - keep default" >> ${logFile}
|
||||||
@ -534,7 +486,7 @@ fi
|
|||||||
# SSH TUNNEL
|
# SSH TUNNEL
|
||||||
if [ "${#sshtunnel}" -gt 0 ]; then
|
if [ "${#sshtunnel}" -gt 0 ]; then
|
||||||
echo "Provisioning SSH Tunnel - run config script" >> ${logFile}
|
echo "Provisioning SSH Tunnel - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup SSH Tunnel'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup SSH Tunnel"
|
||||||
sudo /home/admin/config.scripts/internet.sshtunnel.py restore ${sshtunnel} >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/internet.sshtunnel.py restore ${sshtunnel} >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning SSH Tunnel - not active" >> ${logFile}
|
echo "Provisioning SSH Tunnel - not active" >> ${logFile}
|
||||||
@ -543,7 +495,7 @@ fi
|
|||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
if [ "${#zerotier}" -gt 0 ] && [ "${zerotier}" != "off" ]; then
|
if [ "${#zerotier}" -gt 0 ] && [ "${zerotier}" != "off" ]; then
|
||||||
echo "Provisioning ZeroTier - run config script" >> ${logFile}
|
echo "Provisioning ZeroTier - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup ZeroTier'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup ZeroTier"
|
||||||
sudo /home/admin/config.scripts/bonus.zerotier.sh on ${zerotier} >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/bonus.zerotier.sh on ${zerotier} >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning ZeroTier - not active" >> ${logFile}
|
echo "Provisioning ZeroTier - not active" >> ${logFile}
|
||||||
@ -556,7 +508,7 @@ if [ ${#lcdrotate} -eq 0 ]; then
|
|||||||
fi
|
fi
|
||||||
if [ "${lcdrotate}" == "0" ]; then
|
if [ "${lcdrotate}" == "0" ]; then
|
||||||
echo "Provisioning LCD rotate - run config script" >> ${logFile}
|
echo "Provisioning LCD rotate - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='LCD Rotate'/g" ${infoFile}
|
/home/admin/_cache.sh set message "LCD Rotate"
|
||||||
sudo /home/admin/config.scripts/blitz.display.sh rotate ${lcdrotate} >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/blitz.display.sh rotate ${lcdrotate} >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning LCD rotate - not needed, keep default rotate on" >> ${logFile}
|
echo "Provisioning LCD rotate - not needed, keep default rotate on" >> ${logFile}
|
||||||
@ -565,7 +517,7 @@ fi
|
|||||||
# TOUCHSCREEN
|
# TOUCHSCREEN
|
||||||
if [ "${#touchscreen}" -gt 0 ]; then
|
if [ "${#touchscreen}" -gt 0 ]; then
|
||||||
echo "Provisioning Touchscreen - run config script" >> ${logFile}
|
echo "Provisioning Touchscreen - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Touchscreen'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Touchscreen"
|
||||||
sudo /home/admin/config.scripts/blitz.touchscreen.sh ${touchscreen} >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/blitz.touchscreen.sh ${touchscreen} >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Touchscreen - not active" >> ${logFile}
|
echo "Provisioning Touchscreen - not active" >> ${logFile}
|
||||||
@ -574,7 +526,7 @@ fi
|
|||||||
# UPS
|
# UPS
|
||||||
if [ "${#ups}" -gt 0 ]; then
|
if [ "${#ups}" -gt 0 ]; then
|
||||||
echo "Provisioning UPS - run config script" >> ${logFile}
|
echo "Provisioning UPS - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup UPS'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup UPS"
|
||||||
sudo /home/admin/config.scripts/blitz.ups.sh on ${ups} >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/blitz.ups.sh on ${ups} >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning UPS - not active" >> ${logFile}
|
echo "Provisioning UPS - not active" >> ${logFile}
|
||||||
@ -583,7 +535,7 @@ fi
|
|||||||
# LNbits
|
# LNbits
|
||||||
if [ "${LNBits}" = "on" ]; then
|
if [ "${LNBits}" = "on" ]; then
|
||||||
echo "Provisioning LNbits - run config script" >> ${logFile}
|
echo "Provisioning LNbits - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup LNbits '/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup LNbits"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.lnbits.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.lnbits.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning LNbits - keep default" >> ${logFile}
|
echo "Provisioning LNbits - keep default" >> ${logFile}
|
||||||
@ -592,7 +544,7 @@ fi
|
|||||||
# JoinMarket
|
# JoinMarket
|
||||||
if [ "${joinmarket}" = "on" ]; then
|
if [ "${joinmarket}" = "on" ]; then
|
||||||
echo "Provisioning JoinMarket - run config script" >> ${logFile}
|
echo "Provisioning JoinMarket - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup JoinMarket'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup JoinMarket"
|
||||||
sudo /home/admin/config.scripts/bonus.joinmarket.sh on >> ${logFile} 2>&1
|
sudo /home/admin/config.scripts/bonus.joinmarket.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning JoinMarket - keep default" >> ${logFile}
|
echo "Provisioning JoinMarket - keep default" >> ${logFile}
|
||||||
@ -601,7 +553,7 @@ fi
|
|||||||
# Specter
|
# Specter
|
||||||
if [ "${specter}" = "on" ]; then
|
if [ "${specter}" = "on" ]; then
|
||||||
echo "Provisioning Specter - run config script" >> ${logFile}
|
echo "Provisioning Specter - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Specter'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Specter"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.specter.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.specter.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Specter - keep default" >> ${logFile}
|
echo "Provisioning Specter - keep default" >> ${logFile}
|
||||||
@ -610,7 +562,7 @@ fi
|
|||||||
# Faraday
|
# Faraday
|
||||||
if [ "${faraday}" = "on" ]; then
|
if [ "${faraday}" = "on" ]; then
|
||||||
echo "Provisioning Faraday - run config script" >> ${logFile}
|
echo "Provisioning Faraday - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Faraday'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Faraday"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.faraday.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.faraday.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Faraday - keep default" >> ${logFile}
|
echo "Provisioning Faraday - keep default" >> ${logFile}
|
||||||
@ -619,7 +571,7 @@ fi
|
|||||||
# BOS
|
# BOS
|
||||||
if [ "${bos}" = "on" ]; then
|
if [ "${bos}" = "on" ]; then
|
||||||
echo "Provisioning Balance of Satoshis - run config script" >> ${logFile}
|
echo "Provisioning Balance of Satoshis - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Balance of Satoshis'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Balance of Satoshis"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.bos.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.bos.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Balance of Satoshis - keep default" >> ${logFile}
|
echo "Provisioning Balance of Satoshis - keep default" >> ${logFile}
|
||||||
@ -628,7 +580,7 @@ fi
|
|||||||
# thunderhub
|
# thunderhub
|
||||||
if [ "${thunderhub}" = "on" ]; then
|
if [ "${thunderhub}" = "on" ]; then
|
||||||
echo "Provisioning ThunderHub - run config script" >> ${logFile}
|
echo "Provisioning ThunderHub - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup ThunderHub'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup ThunderHub"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.thunderhub.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.thunderhub.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning ThunderHub - keep default" >> ${logFile}
|
echo "Provisioning ThunderHub - keep default" >> ${logFile}
|
||||||
@ -637,7 +589,7 @@ fi
|
|||||||
# mempool space
|
# mempool space
|
||||||
if [ "${mempoolExplorer}" = "on" ]; then
|
if [ "${mempoolExplorer}" = "on" ]; then
|
||||||
echo "Provisioning MempoolSpace - run config script" >> ${logFile}
|
echo "Provisioning MempoolSpace - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Mempool Space'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Mempool Space"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.mempool.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.mempool.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Mempool Explorer - keep default" >> ${logFile}
|
echo "Provisioning Mempool Explorer - keep default" >> ${logFile}
|
||||||
@ -646,7 +598,7 @@ fi
|
|||||||
# letsencrypt
|
# letsencrypt
|
||||||
if [ "${letsencrypt}" = "on" ]; then
|
if [ "${letsencrypt}" = "on" ]; then
|
||||||
echo "Provisioning letsencrypt - run config script" >> ${logFile}
|
echo "Provisioning letsencrypt - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup letsencrypt'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup letsencrypt"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.letsencrypt.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.letsencrypt.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning letsencrypt - keep default" >> ${logFile}
|
echo "Provisioning letsencrypt - keep default" >> ${logFile}
|
||||||
@ -655,7 +607,7 @@ fi
|
|||||||
# kindle-display
|
# kindle-display
|
||||||
if [ "${kindleDisplay}" = "on" ]; then
|
if [ "${kindleDisplay}" = "on" ]; then
|
||||||
echo "Provisioning kindle-display - run config script" >> ${logFile}
|
echo "Provisioning kindle-display - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup kindle-display'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup kindle-display"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.kindle-display.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.kindle-display.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning kindle-display - keep default" >> ${logFile}
|
echo "Provisioning kindle-display - keep default" >> ${logFile}
|
||||||
@ -664,7 +616,7 @@ fi
|
|||||||
# pyblock
|
# pyblock
|
||||||
if [ "${pyblock}" = "on" ]; then
|
if [ "${pyblock}" = "on" ]; then
|
||||||
echo "Provisioning pyblock - run config script" >> ${logFile}
|
echo "Provisioning pyblock - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup pyblock'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup pyblock"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.pyblock.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.pyblock.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning pyblock - keep default" >> ${logFile}
|
echo "Provisioning pyblock - keep default" >> ${logFile}
|
||||||
@ -673,7 +625,7 @@ fi
|
|||||||
# stacking-sats-kraken
|
# stacking-sats-kraken
|
||||||
if [ "${stackingSatsKraken}" = "on" ]; then
|
if [ "${stackingSatsKraken}" = "on" ]; then
|
||||||
echo "Provisioning Stacking Sats Kraken - run config script" >> ${logFile}
|
echo "Provisioning Stacking Sats Kraken - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Stacking Sats Kraken'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Stacking Sats Kraken"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.stacking-sats-kraken.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.stacking-sats-kraken.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Stacking Sats Kraken - keep default" >> ${logFile}
|
echo "Provisioning Stacking Sats Kraken - keep default" >> ${logFile}
|
||||||
@ -682,7 +634,7 @@ fi
|
|||||||
# Pool - install only if LiT won't be installed
|
# Pool - install only if LiT won't be installed
|
||||||
if [ "${pool}" = "on" ] && [ "${lit}" != "on" ]; then
|
if [ "${pool}" = "on" ] && [ "${lit}" != "on" ]; then
|
||||||
echo "Provisioning Pool - run config script" >> ${logFile}
|
echo "Provisioning Pool - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Pool'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Pool"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.pool.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.pool.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning Pool - keep default" >> ${logFile}
|
echo "Provisioning Pool - keep default" >> ${logFile}
|
||||||
@ -691,7 +643,7 @@ fi
|
|||||||
# lit (make sure to be installed after RTL)
|
# lit (make sure to be installed after RTL)
|
||||||
if [ "${lit}" = "on" ]; then
|
if [ "${lit}" = "on" ]; then
|
||||||
echo "Provisioning LIT - run config script" >> ${logFile}
|
echo "Provisioning LIT - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup LIT'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup LIT"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.lit.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.lit.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning LIT - keep default" >> ${logFile}
|
echo "Provisioning LIT - keep default" >> ${logFile}
|
||||||
@ -700,7 +652,7 @@ fi
|
|||||||
# sphinxrelay
|
# sphinxrelay
|
||||||
if [ "${sphinxrelay}" = "on" ]; then
|
if [ "${sphinxrelay}" = "on" ]; then
|
||||||
echo "Sphinx-Relay - run config script" >> ${logFile}
|
echo "Sphinx-Relay - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup Sphinx-Relay'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Sphinx-Relay"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.sphinxrelay.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.sphinxrelay.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Sphinx-Relay - keep default" >> ${logFile}
|
echo "Sphinx-Relay - keep default" >> ${logFile}
|
||||||
@ -709,7 +661,7 @@ fi
|
|||||||
# circuitbreaker
|
# circuitbreaker
|
||||||
if [ "${circuitbreaker}" = "on" ]; then
|
if [ "${circuitbreaker}" = "on" ]; then
|
||||||
echo "Provisioning CircuitBreaker - run config script" >> ${logFile}
|
echo "Provisioning CircuitBreaker - run config script" >> ${logFile}
|
||||||
sudo sed -i "s/^message=.*/message='Setup CircuitBreaker'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup CircuitBreaker"
|
||||||
sudo -u admin /home/admin/config.scripts/bonus.circuitbreaker.sh on >> ${logFile} 2>&1
|
sudo -u admin /home/admin/config.scripts/bonus.circuitbreaker.sh on >> ${logFile} 2>&1
|
||||||
else
|
else
|
||||||
echo "Provisioning CircuitBreaker - keep default" >> ${logFile}
|
echo "Provisioning CircuitBreaker - keep default" >> ${logFile}
|
||||||
@ -719,6 +671,7 @@ fi
|
|||||||
customInstallAvailable=$(sudo ls /mnt/hdd/app-data/custom-installs.sh 2>/dev/null | grep -c "custom-installs.sh")
|
customInstallAvailable=$(sudo ls /mnt/hdd/app-data/custom-installs.sh 2>/dev/null | grep -c "custom-installs.sh")
|
||||||
if [ ${customInstallAvailable} -gt 0 ]; then
|
if [ ${customInstallAvailable} -gt 0 ]; then
|
||||||
echo "Running the custom install script .." >> ${logFile}
|
echo "Running the custom install script .." >> ${logFile}
|
||||||
|
/home/admin/_cache.sh set message "Running Custom Install Script"
|
||||||
# copy script over to admin (in case HDD is not allowing exec)
|
# copy script over to admin (in case HDD is not allowing exec)
|
||||||
sudo cp -av /mnt/hdd/app-data/custom-installs.sh /home/admin/custom-installs.sh >> ${logFile}
|
sudo cp -av /mnt/hdd/app-data/custom-installs.sh /home/admin/custom-installs.sh >> ${logFile}
|
||||||
# make sure script is executable
|
# make sure script is executable
|
||||||
@ -760,7 +713,7 @@ if [ ${confExists} -eq 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# signal setup done
|
# signal setup done
|
||||||
sudo sed -i "s/^message=.*/message='Setup Done'/g" ${infoFile}
|
/home/admin/_cache.sh set message "Setup Done"
|
||||||
|
|
||||||
# set the local network hostname (just if set in config - will not be set anymore by default in newer version)
|
# set the local network hostname (just if set in config - will not be set anymore by default in newer version)
|
||||||
# have at the end - see https://github.com/rootzoll/raspiblitz/issues/462
|
# have at the end - see https://github.com/rootzoll/raspiblitz/issues/462
|
||||||
@ -811,7 +764,7 @@ if [ "${lightning}" == "lnd" ];then
|
|||||||
oldPasswordC=$(sudo cat /mnt/hdd/passwordc.flag)
|
oldPasswordC=$(sudo cat /mnt/hdd/passwordc.flag)
|
||||||
if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi
|
if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi
|
||||||
sudo /home/admin/config.scripts/lnd.initwallet.py change-password mainnet "${oldPasswordC}" "${passwordC}" >> ${logFile}
|
sudo /home/admin/config.scripts/lnd.initwallet.py change-password mainnet "${oldPasswordC}" "${passwordC}" >> ${logFile}
|
||||||
sudo shred -u /mnt/hdd/passwordc.flag
|
sudo shred -u /mnt/hdd/passwordc.flag
|
||||||
else
|
else
|
||||||
echo "No /mnt/hdd/passwordc.flag" >> ${logFile}
|
echo "No /mnt/hdd/passwordc.flag" >> ${logFile}
|
||||||
fi
|
fi
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# script for custom tmux status bar
|
# script for custom tmux status bar
|
||||||
|
|
||||||
configFile="/mnt/hdd/raspiblitz.conf"
|
if [ -f "/mnt/hdd/raspiblitz.conf" ]; then
|
||||||
|
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
||||||
if [ -f "$configFile" ]; then
|
|
||||||
source ${configFile} 2>/dev/null
|
|
||||||
echo "${hostname}"
|
echo "${hostname}"
|
||||||
else
|
else
|
||||||
#echo "$configFile does not exist"
|
#echo "$configFile does not exist"
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# script for custom tmux status bar
|
# script for custom tmux status bar
|
||||||
|
|
||||||
configFile="/mnt/hdd/raspiblitz.conf"
|
if [ -f "/mnt/hdd/raspiblitz.conf" ]; then
|
||||||
|
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
||||||
if [ -f "$configFile" ]; then
|
|
||||||
source ${configFile} 2>/dev/null
|
|
||||||
echo " ${chain}net "
|
echo " ${chain}net "
|
||||||
else
|
else
|
||||||
#echo "$configFile does not exist"
|
#echo "$configFile does not exist"
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# script for custom tmux status bar
|
# script for custom tmux status bar
|
||||||
|
|
||||||
configFile="/mnt/hdd/raspiblitz.conf"
|
if [ -f "/mnt/hdd/raspiblitz.conf" ]; then
|
||||||
|
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
||||||
if [ -f "$configFile" ]; then
|
|
||||||
source ${configFile} 2>/dev/null
|
|
||||||
echo " ${network} "
|
echo " ${network} "
|
||||||
else
|
else
|
||||||
#echo "$configFile does not exist"
|
#echo "$configFile does not exist"
|
||||||
echo " unknown "
|
echo " unknown "
|
||||||
fi
|
fi
|
@ -185,48 +185,48 @@ datadir=/mnt/hdd/bitcoin
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# make sure rpcbind is correctly configured
|
# make sure rpcbind is correctly configured
|
||||||
sudo sed -i s/^rpcbind=/main.rpcbind=/g /mnt/hdd/${network}/${network}.conf
|
sudo sed -i s/^rpcbind=/main.rpcbind=/g /mnt/hdd/bitcoin/bitcoin.conf
|
||||||
if [ $(grep -c "rpcallowip" < /mnt/hdd/${network}/${network}.conf) -gt 0 ];then
|
if [ $(grep -c "rpcallowip" < /mnt/hdd/bitcoin/bitcoin.conf) -gt 0 ];then
|
||||||
if [ $(grep -c "${bitcoinprefix}.rpcbind=" < /mnt/hdd/${network}/${network}.conf) -eq 0 ];then
|
if [ $(grep -c "${bitcoinprefix}.rpcbind=" < /mnt/hdd/bitcoin/bitcoin.conf) -eq 0 ];then
|
||||||
echo "\
|
echo "\
|
||||||
${bitcoinprefix}.rpcbind=127.0.0.1"|\
|
${bitcoinprefix}.rpcbind=127.0.0.1"|\
|
||||||
sudo tee -a /mnt/hdd/${network}/${network}.conf
|
sudo tee -a /mnt/hdd/bitcoin/bitcoin.conf
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# correct rpcport entry
|
# correct rpcport entry
|
||||||
sudo sed -i s/^rpcport=/main.rpcport=/g /mnt/hdd/${network}/${network}.conf
|
sudo sed -i s/^rpcport=/main.rpcport=/g /mnt/hdd/bitcoin/bitcoin.conf
|
||||||
if [ $(grep -c "${bitcoinprefix}.rpcport" < /mnt/hdd/${network}/${network}.conf) -eq 0 ];then
|
if [ $(grep -c "${bitcoinprefix}.rpcport" < /mnt/hdd/bitcoin/bitcoin.conf) -eq 0 ];then
|
||||||
echo "\
|
echo "\
|
||||||
${bitcoinprefix}.rpcport=${rpcprefix}8332"|\
|
${bitcoinprefix}.rpcport=${rpcprefix}8332"|\
|
||||||
sudo tee -a /mnt/hdd/${network}/${network}.conf
|
sudo tee -a /mnt/hdd/bitcoin/bitcoin.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# correct zmq entry
|
# correct zmq entry
|
||||||
sudo sed -i s/^zmqpubraw/main.zmqpubraw/g /mnt/hdd/${network}/${network}.conf
|
sudo sed -i s/^zmqpubraw/main.zmqpubraw/g /mnt/hdd/bitcoin/bitcoin.conf
|
||||||
if [ $(grep -c "${bitcoinprefix}.zmqpubrawblock" < /mnt/hdd/${network}/${network}.conf) -eq 0 ];then
|
if [ $(grep -c "${bitcoinprefix}.zmqpubrawblock" < /mnt/hdd/bitcoin/bitcoin.conf) -eq 0 ];then
|
||||||
echo "\
|
echo "\
|
||||||
${bitcoinprefix}.zmqpubrawblock=tcp://127.0.0.1:${zmqprefix}332
|
${bitcoinprefix}.zmqpubrawblock=tcp://127.0.0.1:${zmqprefix}332
|
||||||
${bitcoinprefix}.zmqpubrawtx=tcp://127.0.0.1:${zmqprefix}333"|\
|
${bitcoinprefix}.zmqpubrawtx=tcp://127.0.0.1:${zmqprefix}333"|\
|
||||||
sudo tee -a /mnt/hdd/${network}/${network}.conf
|
sudo tee -a /mnt/hdd/bitcoin/bitcoin.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# addnode
|
# addnode
|
||||||
if [ ${bitcoinprefix} = signet ];then
|
if [ ${bitcoinprefix} = signet ];then
|
||||||
if [ $(grep -c "${bitcoinprefix}.addnode" < /mnt/hdd/${network}/${network}.conf) -eq 0 ];then
|
if [ $(grep -c "${bitcoinprefix}.addnode" < /mnt/hdd/bitcoin/bitcoin.conf) -eq 0 ];then
|
||||||
echo "\
|
echo "\
|
||||||
signet.addnode=s7fcvn5rblem7tiquhhr7acjdhu7wsawcph7ck44uxyd6sismumemcyd.onion:38333
|
signet.addnode=s7fcvn5rblem7tiquhhr7acjdhu7wsawcph7ck44uxyd6sismumemcyd.onion:38333
|
||||||
signet.addnode=6megrst422lxzsqvshkqkg6z2zhunywhyrhy3ltezaeyfspfyjdzr3qd.onion:38333
|
signet.addnode=6megrst422lxzsqvshkqkg6z2zhunywhyrhy3ltezaeyfspfyjdzr3qd.onion:38333
|
||||||
signet.addnode=jahtu4veqnvjldtbyxjiibdrltqiiighauai7hmvknwxhptsb4xat4qd.onion:38333
|
signet.addnode=jahtu4veqnvjldtbyxjiibdrltqiiighauai7hmvknwxhptsb4xat4qd.onion:38333
|
||||||
signet.addnode=f4kwoin7kk5a5kqpni7yqe25z66ckqu6bv37sqeluon24yne5rodzkqd.onion:38333
|
signet.addnode=f4kwoin7kk5a5kqpni7yqe25z66ckqu6bv37sqeluon24yne5rodzkqd.onion:38333
|
||||||
signet.addnode=nsgyo7begau4yecc46ljfecaykyzszcseapxmtu6adrfagfrrzrlngyd.onion:38333"|\
|
signet.addnode=nsgyo7begau4yecc46ljfecaykyzszcseapxmtu6adrfagfrrzrlngyd.onion:38333"|\
|
||||||
sudo tee -a /mnt/hdd/${network}/${network}.conf
|
sudo tee -a /mnt/hdd/bitcoin/bitcoin.conf
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
removeParallelService
|
removeParallelService
|
||||||
if [ ${CHAIN} = mainnet ];then
|
if [ ${CHAIN} = mainnet ];then
|
||||||
sudo cp /home/admin/assets/${network}d.service /etc/systemd/system/${network}d.service
|
sudo cp /home/admin/assets/bitcoind.service /etc/systemd/system/bitcoind.service
|
||||||
else
|
else
|
||||||
# /etc/systemd/system/${prefix}bitcoind.service
|
# /etc/systemd/system/${prefix}bitcoind.service
|
||||||
echo "
|
echo "
|
||||||
@ -281,7 +281,8 @@ alias ${prefix}bitcoinlog=\"sudo tail -n 30 -f ${bitcoinlogpath}\"\
|
|||||||
fi
|
fi
|
||||||
sudo chown admin:admin /home/admin/_aliases
|
sudo chown admin:admin /home/admin/_aliases
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
|
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# OK - the ${prefix}bitcoind.service is enabled, system is ready so starting service"
|
echo "# OK - the ${prefix}bitcoind.service is enabled, system is ready so starting service"
|
||||||
sudo systemctl start ${prefix}bitcoind
|
sudo systemctl start ${prefix}bitcoind
|
||||||
@ -307,17 +308,11 @@ alias ${prefix}bitcoinlog=\"sudo tail -n 30 -f ${bitcoinlogpath}\"\
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^${CHAIN}=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
NEWENTRY="${CHAIN}=off"
|
|
||||||
sudo /bin/sh -c "echo '$NEWENTRY' >> /mnt/hdd/raspiblitz.conf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# switch on
|
# switch on
|
||||||
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||||
installParallelService
|
installParallelService
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^${CHAIN}=.*/${CHAIN}=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${CHAIN} "on"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -326,7 +321,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "# Uninstall Bitcoin Core instance on ${CHAIN}"
|
echo "# Uninstall Bitcoin Core instance on ${CHAIN}"
|
||||||
removeParallelService
|
removeParallelService
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^${CHAIN}=.*/${CHAIN}=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${CHAIN} "off"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
309
home.admin/config.scripts/bitcoin.monitor.sh
Executable file
309
home.admin/config.scripts/bitcoin.monitor.sh
Executable file
@ -0,0 +1,309 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# command info
|
||||||
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||||
|
echo "monitor and troubleshot the bitcoin network"
|
||||||
|
echo "bitcoin.monitor.sh [mainnet|testnet|signet] status"
|
||||||
|
echo "bitcoin.monitor.sh [mainnet|testnet|signet] info"
|
||||||
|
echo "bitcoin.monitor.sh [mainnet|testnet|signet] mempool"
|
||||||
|
echo "bitcoin.monitor.sh [mainnet|testnet|signet] network"
|
||||||
|
echo "bitcoin.monitor.sh [mainnet] peer-kickstart [ipv4|ipv6|tor|auto]"
|
||||||
|
echo "bitcoin.monitor.sh [mainnet] peer-disconnectall"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if started with sudo
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "error='run as root'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set based on network type
|
||||||
|
if [ "$1" == "mainnet" ]; then
|
||||||
|
bitcoincli_alias="/usr/local/bin/bitcoin-cli -datadir=/home/bitcoin/.bitcoin -rpcport=8332"
|
||||||
|
service_alias="bitcoind"
|
||||||
|
elif [ "$1" == "testnet" ]; then
|
||||||
|
bitcoincli_alias="/usr/local/bin/bitcoin-cli -datadir=/home/bitcoin/.bitcoin -rpcport=18332"
|
||||||
|
service_alias="tbitcoind"
|
||||||
|
elif [ "$1" == "signet" ]; then
|
||||||
|
bitcoincli_alias="/usr/local/bin/bitcoin-cli -datadir=/home/bitcoin/.bitcoin -rpcport=38332"
|
||||||
|
service_alias="sbitcoind"
|
||||||
|
else
|
||||||
|
echo "error='not supported net'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# STATUS
|
||||||
|
# check general status info
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
if [ "$2" = "status" ]; then
|
||||||
|
|
||||||
|
btc_version=$($bitcoincli_alias -version 2>/dev/null | cut -d ' ' -f6)
|
||||||
|
btc_running=$(systemctl status $service_alias 2>/dev/null | grep -c "active (running)")
|
||||||
|
btc_ready="0"
|
||||||
|
btc_online="0"
|
||||||
|
btc_error_short=""
|
||||||
|
btc_error_full=""
|
||||||
|
|
||||||
|
if [ "${btc_running}" != "0" ]; then
|
||||||
|
btc_running="1"
|
||||||
|
|
||||||
|
# test connection - record win & fail info
|
||||||
|
randStr=$(echo "$RANDOM")
|
||||||
|
rm /var/cache/raspiblitz/.bitcoind-${randStr}.out 2>/dev/null
|
||||||
|
rm /var/cache/raspiblitz/.bitcoind-${randStr}.error 2>/dev/null
|
||||||
|
touch /var/cache/raspiblitz/.bitcoind-${randStr}.out
|
||||||
|
touch /var/cache/raspiblitz/.bitcoind-${randStr}.error
|
||||||
|
$bitcoincli_alias getnetworkinfo 1>/var/cache/raspiblitz/.bitcoind-${randStr}.out 2>/var/cache/raspiblitz/.bitcoind-${randStr}.error
|
||||||
|
winData=$(cat /var/cache/raspiblitz/.bitcoind-${randStr}.out 2>/dev/null)
|
||||||
|
failData=$(cat /var/cache/raspiblitz/.bitcoind-${randStr}.error 2>/dev/null)
|
||||||
|
rm /var/cache/raspiblitz/.bitcoind-${randStr}.out
|
||||||
|
rm /var/cache/raspiblitz/.bitcoind-${randStr}.error
|
||||||
|
|
||||||
|
# check for errors
|
||||||
|
if [ "${failData}" != "" ]; then
|
||||||
|
btc_ready="0"
|
||||||
|
btc_error_short=$(echo ${failData/error*:/} | sed 's/[^a-zA-Z0-9 ]//g')
|
||||||
|
btc_error_full=$(echo ${failData} | tr -d "'" | tr -d '"')
|
||||||
|
btc_ready="0"
|
||||||
|
|
||||||
|
# check results if proof for online
|
||||||
|
else
|
||||||
|
btc_ready="1"
|
||||||
|
connections=$( echo "${winData}" | grep "connections\"" | tr -cd '[[:digit:]]')
|
||||||
|
if [ "${connections}" != "" ] && [ "${connections}" != "0" ]; then
|
||||||
|
btc_online="1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# print results
|
||||||
|
echo "btc_version='${btc_version}'"
|
||||||
|
echo "btc_running='${btc_running}'"
|
||||||
|
echo "btc_ready='${btc_ready}'"
|
||||||
|
echo "btc_online='${btc_online}'"
|
||||||
|
echo "btc_error_short='${btc_error_short}'"
|
||||||
|
echo "btc_error_full='${btc_error_full}'"
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# NETWORK
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
if [ "$2" = "network" ]; then
|
||||||
|
|
||||||
|
# get data
|
||||||
|
getnetworkinfo=$($bitcoincli_alias getnetworkinfo 2>/dev/null)
|
||||||
|
if [ "${getnetworkinfo}" == "" ]; then
|
||||||
|
echo "error='no data'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# parse data
|
||||||
|
btc_peers=$(echo "${getnetworkinfo}" | grep "connections\"" | tr -cd '[[:digit:]]')
|
||||||
|
btc_address=$(echo ${getnetworkinfo} | jq -r '.localaddresses [0] .address')
|
||||||
|
btc_port=$(echo "${getnetworkinfo}" | jq -r '.localaddresses [0] .port')
|
||||||
|
|
||||||
|
# print data
|
||||||
|
echo "btc_peers='${btc_peers}'"
|
||||||
|
echo "btc_address='${btc_address}'"
|
||||||
|
echo "btc_port='${btc_port}'"
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# INFO
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
if [ "$2" = "info" ]; then
|
||||||
|
|
||||||
|
# get data
|
||||||
|
blockchaininfo=$($bitcoincli_alias getblockchaininfo 2>/dev/null)
|
||||||
|
if [ "${blockchaininfo}" == "" ]; then
|
||||||
|
echo "error='no data'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# parse data
|
||||||
|
btc_blocks_headers=$(echo "${blockchaininfo}" | jq -r '.headers')
|
||||||
|
btc_blocks_verified=$(echo "${blockchaininfo}" | jq -r '.blocks')
|
||||||
|
btc_blocks_behind=$((${btc_blocks_headers} - ${btc_blocks_verified}))
|
||||||
|
btc_sync_initialblockdownload=$(echo "${blockchaininfo}" | jq -r '.initialblockdownload' | grep -c 'true')
|
||||||
|
btc_sync_progress=$(echo "${blockchaininfo}" | jq -r '.verificationprogress')
|
||||||
|
btc_sync_percentage=$(echo ${btc_sync_progress} | awk '{printf( "%.2f%%", 100 * $1)}')
|
||||||
|
if [ "${btc_blocks_headers}" != "" ] && [ "${btc_blocks_headers}" == "${btc_blocks_verified}" ]; then
|
||||||
|
btc_sync_percentage="100.00"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# determine if synced (tolerate falling 1 block behind)
|
||||||
|
# and be sure that initial blockdownload is done
|
||||||
|
btc_synced=0
|
||||||
|
if [ "${btc_sync_initialblockdownload}" == "0" ] && [ ${btc_blocks_behind} -lt 2 ]; then
|
||||||
|
btc_synced=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# print data
|
||||||
|
echo "btc_synced='${btc_synced}'"
|
||||||
|
echo "btc_blocks_headers='${btc_blocks_headers}'"
|
||||||
|
echo "btc_blocks_verified='${btc_blocks_verified}'"
|
||||||
|
echo "btc_blocks_behind='${btc_blocks_behind}'"
|
||||||
|
echo "btc_sync_progress='${btc_sync_progress}'"
|
||||||
|
echo "btc_sync_percentage='${btc_sync_percentage//[^0-9\..]/}'"
|
||||||
|
echo "btc_sync_initialblockdownload='${btc_sync_initialblockdownload}'"
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# MEMPOOL
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
if [ "$2" = "mempool" ]; then
|
||||||
|
|
||||||
|
# get data
|
||||||
|
mempoolinfo=$($bitcoincli_alias getmempoolinfo 2>/dev/null)
|
||||||
|
if [ "${mempoolinfo}" == "" ]; then
|
||||||
|
echo "error='no data'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# parse data
|
||||||
|
btc_mempool_transactions=$(echo "${mempoolinfo}" | jq -r '.size')
|
||||||
|
|
||||||
|
# print data
|
||||||
|
echo "btc_mempool_transactions=${btc_mempool_transactions}"
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
###################
|
||||||
|
# PEER KICK START
|
||||||
|
###################
|
||||||
|
|
||||||
|
if [ "$2" = "peer-kickstart" ]; then
|
||||||
|
|
||||||
|
# check calling only for mainnet
|
||||||
|
if [ "$1" != "mainnet" ]; then
|
||||||
|
echo "error='only available for mainnet yet'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get raw node data from bitnodes.io (use Tor if available)
|
||||||
|
#if [ "${runBehindTor}" == "on" ]; then
|
||||||
|
# call over tor proxy (CAPTCHA BLOCKED)
|
||||||
|
#bitnodesRawData=$(curl --socks5-hostname 127.0.0.1:9050 -H "Accept: application/json; indent=4" https://bitnodes.io/api/v1/snapshots/latest/ 2>/dev/null)
|
||||||
|
#else
|
||||||
|
# call over clearnet
|
||||||
|
# bitnodesRawData=$(curl -H "Accept: application/json; indent=4" https://bitnodes.io/api/v1/snapshots/latest/ 2>/dev/null)
|
||||||
|
#fi
|
||||||
|
|
||||||
|
bitnodesRawData=$(sudo -u admin cat /home/admin/fallback.nodes)
|
||||||
|
if [ ${#bitnodesRawData} -lt 100 ]; then
|
||||||
|
echo "error='no valid data from bitnodes.io'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# determine which address to choose
|
||||||
|
addressFormat="$3"
|
||||||
|
# set default to auto
|
||||||
|
if [ "${addressFormat}" == "" ]; then
|
||||||
|
addressFormat="auto"
|
||||||
|
fi
|
||||||
|
# check valid value
|
||||||
|
if [ "${addressFormat}" != "ipv4" ] && [ "${addressFormat}" != "ipv6" ] && [ "${addressFormat}" != "tor" ] && [ "${addressFormat}" != "auto" ]; then
|
||||||
|
echo "error='invalid address type'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# if auto then determine whats running
|
||||||
|
if [ "${addressFormat}" == "auto" ]; then
|
||||||
|
source <()
|
||||||
|
if [ "$(cat /mnt/hdd/raspiblitz.conf | grep -c "^runBehindTor=on")" != "0" ]; then
|
||||||
|
addressFormat="tor"
|
||||||
|
else
|
||||||
|
source <(sudo ./config.scripts/internet.sh status global)
|
||||||
|
if [ "${ipv6}" == "off" ]; then
|
||||||
|
addressFormat="ipv4"
|
||||||
|
else
|
||||||
|
addressFormat="ipv6"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "addressFormat='${addressFormat}'"
|
||||||
|
|
||||||
|
# filter raw data for node addresses based on what kind of connection is running
|
||||||
|
if [ "${addressFormat}" == "tor" ]; then
|
||||||
|
# get Tor nodes (v2 or v3)
|
||||||
|
nodeList=$(echo "${bitnodesRawData}" | grep -o '[0-9a-z]\{16,56\}\.onion')
|
||||||
|
elif [ "${addressFormat}" == "ipv4" ]; then
|
||||||
|
# get IPv4 nodes
|
||||||
|
nodeList=$(echo "${bitnodesRawData}" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\:[0-9]\{3,5\}')
|
||||||
|
elif [ "${addressFormat}" == "ipv6" ]; then
|
||||||
|
# get IPv6 nodes
|
||||||
|
nodeList=$(echo "${bitnodesRawData}" | grep -o '\[.\{5,45\}\]\:[0-9]\{3,5\}')
|
||||||
|
else
|
||||||
|
# invalid address
|
||||||
|
echo "error='invalid address format'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
#echo "${nodeList}"
|
||||||
|
nodesAvailable=$(echo "${nodeList}" | wc -l)
|
||||||
|
echo "nodesAvailable=${nodesAvailable}"
|
||||||
|
if [ "${nodesAvailable}" == "0" ]; then
|
||||||
|
echo "error='no nodes available'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pick random node from list
|
||||||
|
randomLineNumber=$((1 + RANDOM % ${nodesAvailable}))
|
||||||
|
echo "randomNumber=${randomLineNumber}"
|
||||||
|
nodeAddress=$(echo "${nodeList}" | sed -n "${randomLineNumber}p")
|
||||||
|
if [ "${nodeAddress}" == "" ]; then
|
||||||
|
# if random pick fails pick first line
|
||||||
|
nodeAddress=$(echo "${nodeList}" | sed -n "1p")
|
||||||
|
fi
|
||||||
|
if [ "${nodeAddress}" == "" ]; then
|
||||||
|
echo "error='selecting node from list failed'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "newpeer='${nodeAddress}"
|
||||||
|
|
||||||
|
# kick start node with
|
||||||
|
$bitcoincli_alias addnode "${nodeAddress}" "onetry" 1>/dev/null
|
||||||
|
echo "exitcode=$?"
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
###################
|
||||||
|
# DISCONNECT ALL PEERS
|
||||||
|
# for testing peer kick-start
|
||||||
|
###################
|
||||||
|
if [ "$2" = "peer-disconnectall" ]; then
|
||||||
|
|
||||||
|
# check calling only for mainnet
|
||||||
|
if [ "$1" != "mainnet" ]; then
|
||||||
|
echo "error='only available for mainnet yet'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get all peer id and disconnect them
|
||||||
|
$bitcoincli_alias getpeerinfo | grep '"addr": "' | while read line
|
||||||
|
do
|
||||||
|
peerID=$(echo $line | cut -d '"' -f4)
|
||||||
|
echo "# disconnecting peer with ID: ${peerID}"
|
||||||
|
$bitcoincli_alias disconnectnode ${peerID}
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "#### FINAL PEER INFO FROM BITCOIND"
|
||||||
|
$bitcoincli_alias getpeerinfo
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "FAIL - Unknown Parameter $2"
|
||||||
|
exit 1
|
@ -13,8 +13,6 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
|
||||||
|
|
||||||
# 1. parameter [info|tested|reckless]
|
# 1. parameter [info|tested|reckless]
|
||||||
mode="$1"
|
mode="$1"
|
||||||
|
|
||||||
@ -231,9 +229,10 @@ fi
|
|||||||
if [ "${mode}" = "tested" ]||[ "${mode}" = "reckless" ]||[ "${mode}" = "custom" ];then
|
if [ "${mode}" = "tested" ]||[ "${mode}" = "reckless" ]||[ "${mode}" = "custom" ];then
|
||||||
|
|
||||||
# install
|
# install
|
||||||
echo "# Stopping bitcoind and lnd ..."
|
echo "# Stopping bitcoind ..."
|
||||||
sudo systemctl stop lnd
|
sudo systemctl stop bitcoind 2>/dev/null
|
||||||
sudo systemctl stop bitcoind
|
sudo systemctl stop tbitcoind 2>/dev/null
|
||||||
|
sudo systemctl stop sbitcoind 2>/dev/null
|
||||||
echo
|
echo
|
||||||
echo "# Installing Bitcoin Core v${bitcoinVersion}"
|
echo "# Installing Bitcoin Core v${bitcoinVersion}"
|
||||||
tar -xvf ${binaryName}
|
tar -xvf ${binaryName}
|
||||||
@ -245,29 +244,11 @@ if [ "${mode}" = "tested" ]||[ "${mode}" = "reckless" ]||[ "${mode}" = "custom"
|
|||||||
echo "# !!! BUILD FAILED --> Was not able to install bitcoind version(${bitcoinVersion})"
|
echo "# !!! BUILD FAILED --> Was not able to install bitcoind version(${bitcoinVersion})"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "# flag update in raspiblitz config"
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
echo "# mark update in raspiblitz config"
|
||||||
if [ ${#bitcoinInterimsUpdate} -eq 0 ]; then
|
/home/admin/config.scripts/blitz.conf.sh set bitcoinInterimsUpdate "${bitcoinInterimsUpdateNew}"
|
||||||
echo "bitcoinInterimsUpdate='${bitcoinInterimsUpdateNew}'" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
else
|
|
||||||
sudo sed -i "s/^bitcoinInterimsUpdate=.*/bitcoinInterimsUpdate='${bitcoinInterimsUpdateNew}'/g" /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "# OK Bitcoin Core ${bitcoinVersion} is installed"
|
echo "# OK Bitcoin Core ${bitcoinVersion} is installed"
|
||||||
if [ "${state}" == "ready" ]; then
|
|
||||||
echo
|
|
||||||
echo "# Starting ..."
|
|
||||||
sudo systemctl start bitcoind
|
|
||||||
sleep 10
|
|
||||||
echo
|
|
||||||
sudo systemctl start lnd
|
|
||||||
echo "# Starting LND ..."
|
|
||||||
sleep 10
|
|
||||||
echo
|
|
||||||
echo "# Press ENTER to proceed to unlock the LND wallet ..."
|
|
||||||
read key
|
|
||||||
sudo /home/admin/config.scripts/lnd.unlock.sh
|
|
||||||
fi
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -169,11 +169,7 @@ THIS WILL DELETE ALL DATA ON THAT DEVICE!
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# change raspiblitz.conf
|
# change raspiblitz.conf
|
||||||
entryExists=$(cat /mnt/hdd/raspiblitz.conf | grep -c 'localBackupDeviceUUID=')
|
/home/admin/config.scripts/blitz.conf.sh set localBackupDeviceUUID "${uuid}"
|
||||||
if [ ${entryExists} -eq 0 ]; then
|
|
||||||
echo "localBackupDeviceUUID='off'" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
sudo sed -i "s/^localBackupDeviceUUID=.*/localBackupDeviceUUID='${uuid}'/g" /mnt/hdd/raspiblitz.conf
|
|
||||||
echo "activated=1"
|
echo "activated=1"
|
||||||
|
|
||||||
# mount device (so that no reboot is needed)
|
# mount device (so that no reboot is needed)
|
||||||
@ -188,7 +184,7 @@ THIS WILL DELETE ALL DATA ON THAT DEVICE!
|
|||||||
|
|
||||||
if [ ${userinteraction} -eq 1 ]; then
|
if [ ${userinteraction} -eq 1 ]; then
|
||||||
if [ ${isMounted} -eq 0 ]; then
|
if [ ${isMounted} -eq 0 ]; then
|
||||||
sudo sed -i "s/^localBackupDeviceUUID=.*/localBackupDeviceUUID=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set localBackupDeviceUUID "off"
|
||||||
dialog --title ' Adding Backup Device ' --msgbox '\nFAIL - Not able to add device.' 7 40
|
dialog --title ' Adding Backup Device ' --msgbox '\nFAIL - Not able to add device.' 7 40
|
||||||
else
|
else
|
||||||
dialog --title ' Adding Backup Device ' --msgbox '\nOK - Device added for Backup.' 7 40
|
dialog --title ' Adding Backup Device ' --msgbox '\nOK - Device added for Backup.' 7 40
|
||||||
@ -240,7 +236,7 @@ fi
|
|||||||
|
|
||||||
if [ "$1" = "off" ]; then
|
if [ "$1" = "off" ]; then
|
||||||
echo "# BACKUP DEVICE REMOVE"
|
echo "# BACKUP DEVICE REMOVE"
|
||||||
sudo sed -i "s/^localBackupDeviceUUID=.*/localBackupDeviceUUID=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set localBackupDeviceUUID "off"
|
||||||
sudo umount /mnt/backup 2>/dev/null
|
sudo umount /mnt/backup 2>/dev/null
|
||||||
echo "# OK backup device is off"
|
echo "# OK backup device is off"
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -61,7 +61,7 @@ if [ "${action}" == "fsexpand" ]; then
|
|||||||
echo "# starting expand of file system of sd card"
|
echo "# starting expand of file system of sd card"
|
||||||
sudo sed -i "s/^fsexpanded=.*/fsexpanded=1/g" /home/admin/raspiblitz.info
|
sudo sed -i "s/^fsexpanded=.*/fsexpanded=1/g" /home/admin/raspiblitz.info
|
||||||
|
|
||||||
if [ "${baseimage}" = "raspbian" ] || [ "${baseimage}" = "raspios_arm64" ]; then
|
if [ "${baseimage}" = "raspios_arm64" ]; then
|
||||||
resizeRaspbian="/usr/bin/raspi-config"
|
resizeRaspbian="/usr/bin/raspi-config"
|
||||||
if [ -x ${resizeRaspbian} ]; then
|
if [ -x ${resizeRaspbian} ]; then
|
||||||
echo "# RUNNING EXPAND RASPBERRYPI: ${resizeRaspbian}"
|
echo "# RUNNING EXPAND RASPBERRYPI: ${resizeRaspbian}"
|
||||||
|
@ -1,52 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# command info
|
|
||||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ]; then
|
|
||||||
echo "RaspiBlitz Cache RAM disk"
|
|
||||||
echo "blitz.cache.sh [on|off]"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
###################
|
|
||||||
# SWITCH ON
|
|
||||||
###################
|
|
||||||
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|
||||||
|
|
||||||
echo "Turn ON: Cache"
|
|
||||||
|
|
||||||
if ! grep -Eq '^tmpfs.*/var/cache/raspiblitz' /etc/fstab; then
|
|
||||||
|
|
||||||
if grep -Eq '/var/cache/raspiblitz' /etc/fstab; then
|
|
||||||
# entry is in file but most likely just disabled -> re-enable it
|
|
||||||
sudo sed -i -E 's|^#(tmpfs.*/var/cache/raspiblitz.*)$|\1|g' /etc/fstab
|
|
||||||
else
|
|
||||||
# missing -> add
|
|
||||||
echo "" | sudo tee -a /etc/fstab >/dev/null
|
|
||||||
echo "tmpfs /var/cache/raspiblitz tmpfs nodev,nosuid,size=32M 0 0" | sudo tee -a /etc/fstab >/dev/null
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! findmnt -l /var/cache/raspiblitz >/dev/null; then
|
|
||||||
sudo mkdir -p /var/cache/raspiblitz
|
|
||||||
sudo mount /var/cache/raspiblitz
|
|
||||||
fi
|
|
||||||
|
|
||||||
###################
|
|
||||||
# SWITCH OFF
|
|
||||||
###################
|
|
||||||
elif [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|
||||||
|
|
||||||
echo "Turn OFF: Cache"
|
|
||||||
|
|
||||||
if grep -Eq '/var/cache/raspiblitz' /etc/fstab; then
|
|
||||||
sudo sed -i -E 's|^(tmpfs.*/var/cache/raspiblitz.*)$|#\1|g' /etc/fstab
|
|
||||||
fi
|
|
||||||
|
|
||||||
if findmnt -l /var/cache/raspiblitz >/dev/null; then
|
|
||||||
sudo umount /var/cache/raspiblitz
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
echo "# FAIL: parameter not known - run with -h for help"
|
|
||||||
fi
|
|
78
home.admin/config.scripts/blitz.conf.sh
Executable file
78
home.admin/config.scripts/blitz.conf.sh
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
configFile="/mnt/hdd/raspiblitz.conf"
|
||||||
|
|
||||||
|
# command info
|
||||||
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ]; then
|
||||||
|
echo "RaspiBlitz Config Edit - adds value to file & cache and creates entries if needed:"
|
||||||
|
echo "blitz.conf.sh set [key] [value]"
|
||||||
|
echo "blitz.conf.sh delete [key]"
|
||||||
|
echo "To use values use in shell scripts: source ${configFile}"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "set" ]; then
|
||||||
|
|
||||||
|
# get parameters
|
||||||
|
keystr=$2
|
||||||
|
valuestr=$3
|
||||||
|
overflow=$4
|
||||||
|
|
||||||
|
# check that key & value are given
|
||||||
|
if [ "${keystr}" == "" ] || [ "${valuestr}" == "" ]; then
|
||||||
|
echo "# blitz.conf.sh $@"
|
||||||
|
echo "# FAIL: missing parameter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if input quotes are missing (there should be no 4th parameter)
|
||||||
|
if [ "${overflow}" != "" ]; then
|
||||||
|
echo "# blitz.conf.sh $@"
|
||||||
|
echo "# FAIL: possible missing quotes in value string"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update config value in cache
|
||||||
|
/home/admin/_cache.sh set ${keystr} "${valuestr}"
|
||||||
|
|
||||||
|
# check that config file exists
|
||||||
|
raspiblitzConfExists=$(ls ${configFile} 2>/dev/null | grep -c "${configFile}")
|
||||||
|
if [ ${raspiblitzConfExists} -eq 0 ]; then
|
||||||
|
echo "# blitz.conf.sh $@"
|
||||||
|
echo "# FAIL: missing config file: ${configFile}"
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if key needs to be added (prepare new entry)
|
||||||
|
entryExists=$(grep -c "^${keystr}=" ${configFile})
|
||||||
|
if [ ${entryExists} -eq 0 ]; then
|
||||||
|
echo "${keystr}=" | tee -a ${configFile}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# add valuestr quotes if not standard values
|
||||||
|
if [ "${valuestr}" != "on" ] && [ "${valuestr}" != "off" ] && [ "${valuestr}" != "1" ] && [ "${valuestr}" != "0" ]; then
|
||||||
|
valuestr="'${valuestr}'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set value (sed needs sudo to operate when user is not root)
|
||||||
|
sudo sed -i "s/^${keystr}=.*/${keystr}=${valuestr}/g" ${configFile}
|
||||||
|
|
||||||
|
|
||||||
|
elif [ "$1" = "delete" ]; then
|
||||||
|
|
||||||
|
# get parameters
|
||||||
|
keystr=$2
|
||||||
|
|
||||||
|
# check that key & value are given
|
||||||
|
if [ "${keystr}" == "" ]; then
|
||||||
|
echo "# FAIL: missing parameter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# delete value
|
||||||
|
sudo sed -i "/^${keystr}=/d" ${configFile} 2>/dev/null
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "# FAIL: parameter not known - run with -h for help"
|
||||||
|
fi
|
@ -22,7 +22,7 @@ fi
|
|||||||
|
|
||||||
# check if started with sudo
|
# check if started with sudo
|
||||||
if [ "$EUID" -ne 0 ]; then
|
if [ "$EUID" -ne 0 ]; then
|
||||||
echo "error='missing sudo'"
|
echo "error='run as root'"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -218,26 +218,32 @@ if [ "$1" = "status" ]; then
|
|||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# Pre-Setup Investigation of DATA-PART
|
# Pre-Setup Investigation of DATA-PART
|
||||||
|
# make copy of raspiblitz.conf &
|
||||||
|
|
||||||
# check for recoverable RaspiBlitz data (if config file exists) and raid
|
# check for recoverable RaspiBlitz data (if config file exists) and raid
|
||||||
hddRaspiData=$(sudo ls -l /mnt/hdd${subVolumeDir} 2>/dev/null | grep -c raspiblitz.conf)
|
hddRaspiData=$(ls -l /mnt/hdd${subVolumeDir} 2>/dev/null | grep -c raspiblitz.conf)
|
||||||
#isRaid=$(btrfs filesystem df /mnt/hdd 2>/dev/null | grep -c "Data, RAID1")
|
|
||||||
echo "hddRaspiData=${hddRaspiData}"
|
echo "hddRaspiData=${hddRaspiData}"
|
||||||
hddRaspiVersion=""
|
hddRaspiVersion=""
|
||||||
if [ ${hddRaspiData} -eq 1 ]; then
|
if [ ${hddRaspiData} -eq 1 ]; then
|
||||||
|
|
||||||
|
# output version data from raspiblitz.conf
|
||||||
source /mnt/hdd${subVolumeDir}/raspiblitz.conf
|
source /mnt/hdd${subVolumeDir}/raspiblitz.conf
|
||||||
hddRaspiVersion="${raspiBlitzVersion}"
|
echo "hddRaspiVersion='${raspiBlitzVersion}'"
|
||||||
fi
|
|
||||||
echo "hddRaspiVersion='${hddRaspiVersion}'"
|
|
||||||
|
|
||||||
# check if there is a wifi configuration as backup
|
# create hdd-inspect data dir on RAMDISK
|
||||||
hddGotWifiConf=$(ls /mnt/hdd${subVolumeDir}/app-data/wpa_supplicant.conf 2>/dev/null | grep -c "wpa_supplicant.conf")
|
mkdir /var/cache/raspiblitz/hdd-inspect
|
||||||
if [ ${hddGotWifiConf} -eq 1 ]; then
|
|
||||||
# make a copy to the mem cache drive (so that Wifi can be connected before setup & final HDD mount)
|
|
||||||
sudo cp /mnt/hdd${subVolumeDir}/app-data/wpa_supplicant.conf /var/cache/raspiblitz/wpa_supplicant.conf
|
|
||||||
echo "wifiBackupConfigCopy='/var/cache/raspiblitz/wpa_supplicant.conf'"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
# make copy of raspiblitz.conf to RAMDISK
|
||||||
|
cp /mnt/hdd${subVolumeDir}/raspiblitz.conf /var/cache/raspiblitz/hdd-inspect/raspiblitz.conf
|
||||||
|
|
||||||
|
# make copy of WIFI config to RAMDISK (if available)
|
||||||
|
cp /mnt/hdd${subVolumeDir}/app-data/wpa_supplicant.conf /var/cache/raspiblitz/hdd-inspect/wpa_supplicant.conf 2>/dev/null
|
||||||
|
|
||||||
|
# make copy of SSH keys to RAMDISK (if available)
|
||||||
|
cp /mnt/hdd${subVolumeDir}/ssh /var/cache/raspiblitz/hdd-inspect/ssh 2>/dev/null
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
# comment this line out if case to study the contect of the data section
|
# comment this line out if case to study the contect of the data section
|
||||||
sudo umount /mnt/hdd
|
sudo umount /mnt/hdd
|
||||||
fi
|
fi
|
||||||
@ -277,7 +283,11 @@ if [ "$1" = "status" ]; then
|
|||||||
# BRTS
|
# BRTS
|
||||||
hdd_data_free1Kblocks=$(df -h -k /dev/${hdd}1 | grep "/dev/${hdd}1" | sed -e's/ */ /g' | cut -d" " -f 4 | tr -dc '0-9')
|
hdd_data_free1Kblocks=$(df -h -k /dev/${hdd}1 | grep "/dev/${hdd}1" | sed -e's/ */ /g' | cut -d" " -f 4 | tr -dc '0-9')
|
||||||
fi
|
fi
|
||||||
|
hddDataFreeBytes=$((${hdd_data_free1Kblocks} * 1024))
|
||||||
|
hddDataFreeGB=$((${hdd_data_free1Kblocks} / (1024 * 1024)))
|
||||||
|
echo "hddDataFreeBytes=${hddDataFreeBytes}"
|
||||||
echo "hddDataFreeKB=${hdd_data_free1Kblocks}"
|
echo "hddDataFreeKB=${hdd_data_free1Kblocks}"
|
||||||
|
echo "hddDataFreeGB=${hddDataFreeGB}"
|
||||||
|
|
||||||
# check if its another fullnode implementation data disk
|
# check if its another fullnode implementation data disk
|
||||||
hddGotMigrationData=""
|
hddGotMigrationData=""
|
||||||
@ -372,7 +382,11 @@ if [ "$1" = "status" ]; then
|
|||||||
hddUsedInfo="${datadrive} & ${storageDrive}"
|
hddUsedInfo="${datadrive} & ${storageDrive}"
|
||||||
fi
|
fi
|
||||||
echo "hddUsedInfo='${hddUsedInfo}'"
|
echo "hddUsedInfo='${hddUsedInfo}'"
|
||||||
|
hddDataFreeBytes=$((${hdd_data_free1Kblocks} * 1024))
|
||||||
|
hddDataFreeGB=$((${hdd_data_free1Kblocks} / (1024 * 1024)))
|
||||||
|
echo "hddDataFreeBytes=${hddDataFreeBytes}"
|
||||||
echo "hddDataFreeKB=${hdd_data_free1Kblocks}"
|
echo "hddDataFreeKB=${hdd_data_free1Kblocks}"
|
||||||
|
echo "hddDataFreeGB=${hddDataFreeGB}"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -393,11 +407,12 @@ if [ "$1" = "status" ]; then
|
|||||||
|
|
||||||
hddAdapterUSAP=0
|
hddAdapterUSAP=0
|
||||||
|
|
||||||
# check if user wants to force UASP on
|
# check if force UASP flag is set on sd card
|
||||||
if [ -f "/boot/uasp.force" ]; then
|
if [ -f "/boot/uasp.force" ]; then
|
||||||
hddAdapterUSAP=1
|
hddAdapterUSAP=1
|
||||||
echo "uaspForced=1"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# or UASP is set by config file
|
||||||
if [ $(cat /mnt/hdd/raspiblitz.conf 2>/dev/null | grep -c "forceUasp=on") -eq 1 ]; then
|
if [ $(cat /mnt/hdd/raspiblitz.conf 2>/dev/null | grep -c "forceUasp=on") -eq 1 ]; then
|
||||||
hddAdapterUSAP=1
|
hddAdapterUSAP=1
|
||||||
fi
|
fi
|
||||||
@ -411,6 +426,7 @@ if [ "$1" = "status" ]; then
|
|||||||
# SupTronics 2.5" SATA HDD Shield X825 v1.5
|
# SupTronics 2.5" SATA HDD Shield X825 v1.5
|
||||||
hddAdapterUSAP=1
|
hddAdapterUSAP=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "hddAdapterUSAP=${hddAdapterUSAP}"
|
echo "hddAdapterUSAP=${hddAdapterUSAP}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ source /home/admin/_version.info
|
|||||||
|
|
||||||
## get basic info (its OK if not set yet)
|
## get basic info (its OK if not set yet)
|
||||||
source /home/admin/raspiblitz.info 2>/dev/null
|
source /home/admin/raspiblitz.info 2>/dev/null
|
||||||
|
source <(/home/admin/_cache.sh get state setupPhase)
|
||||||
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
||||||
|
|
||||||
# for old nodes
|
# for old nodes
|
||||||
@ -54,7 +55,6 @@ echo
|
|||||||
echo "*** LAST BLOCKCHAIN (MAINNET) ERROR LOGS ***"
|
echo "*** LAST BLOCKCHAIN (MAINNET) ERROR LOGS ***"
|
||||||
echo "sudo journalctl -u ${network}d -b --no-pager -n8"
|
echo "sudo journalctl -u ${network}d -b --no-pager -n8"
|
||||||
sudo journalctl -u ${network}d -b --no-pager -n8
|
sudo journalctl -u ${network}d -b --no-pager -n8
|
||||||
cat /home/admin/systemd.blockchain.log | grep "ERROR" | tail -n -2
|
|
||||||
echo
|
echo
|
||||||
echo "*** LAST BLOCKCHAIN (MAINNET) 20 INFO LOGS ***"
|
echo "*** LAST BLOCKCHAIN (MAINNET) 20 INFO LOGS ***"
|
||||||
echo "sudo tail -n 20 /mnt/hdd/${network}/debug.log"
|
echo "sudo tail -n 20 /mnt/hdd/${network}/debug.log"
|
||||||
@ -68,7 +68,6 @@ if [ "${lightning}" == "lnd" ] || [ "${lnd}" == "on" ] || [ "${lnd}" == "1" ]; t
|
|||||||
echo "*** LAST LND (MAINNET) ERROR LOGS ***"
|
echo "*** LAST LND (MAINNET) ERROR LOGS ***"
|
||||||
echo "sudo journalctl -u lnd -b --no-pager -n12"
|
echo "sudo journalctl -u lnd -b --no-pager -n12"
|
||||||
sudo journalctl -u lnd -b --no-pager -n12
|
sudo journalctl -u lnd -b --no-pager -n12
|
||||||
cat /home/admin/systemd.lightning.log | grep "ERROR" | tail -n -1
|
|
||||||
echo
|
echo
|
||||||
echo "*** LAST 30 LND (MAINNET) INFO LOGS ***"
|
echo "*** LAST 30 LND (MAINNET) INFO LOGS ***"
|
||||||
echo "sudo tail -n 30 /mnt/hdd/lnd/logs/${network}/mainnet/lnd.log"
|
echo "sudo tail -n 30 /mnt/hdd/lnd/logs/${network}/mainnet/lnd.log"
|
||||||
@ -337,19 +336,22 @@ sudo /home/admin/config.scripts/internet.sh status | grep 'network_device\|local
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
echo "*** HARDWARE TEST RESULTS ***"
|
echo "*** HARDWARE TEST RESULTS ***"
|
||||||
|
source <(/home/admin/_cache.sh get system_count_undervoltage)
|
||||||
showImproveInfo=0
|
showImproveInfo=0
|
||||||
if [ ${#undervoltageReports} -gt 0 ]; then
|
if [ ${#system_count_undervoltage} -gt 0 ]; then
|
||||||
echo "UndervoltageReports in Logs: ${undervoltageReports}"
|
echo "UndervoltageReports in Logs: ${system_count_undervoltage}"
|
||||||
if [ ${undervoltageReports} -gt 0 ]; then
|
if [ ${system_count_undervoltage} -gt 0 ]; then
|
||||||
showImproveInfo=1
|
showImproveInfo=1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
|
|
||||||
echo "*** SYSTEM STATUS (can take some seconds to gather) ***"
|
echo "*** SYSTEM CACHE STATUS ***"
|
||||||
sudo /home/admin/config.scripts/blitz.statusscan.sh
|
/home/admin/_cache.sh "export" system_
|
||||||
echo
|
/home/admin/_cache.sh "export" ln_default | grep -v "ln_default_address"
|
||||||
|
/home/admin/_cache.sh "export" btc_default | grep -v "btc_default_address"
|
||||||
|
|
||||||
|
echo
|
||||||
echo "*** OPTION: SHARE THIS DEBUG OUTPUT ***"
|
echo "*** OPTION: SHARE THIS DEBUG OUTPUT ***"
|
||||||
echo "An easy way to share this debug output on GitHub or on a support chat"
|
echo "An easy way to share this debug output on GitHub or on a support chat"
|
||||||
echo "use the following command and share the resulting link:"
|
echo "use the following command and share the resulting link:"
|
||||||
|
@ -3,19 +3,23 @@
|
|||||||
# command info
|
# command info
|
||||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||||
echo "# make changes to the LCD screen"
|
echo "# make changes to the LCD screen"
|
||||||
echo "# blitz.display.sh rotate [on|off]"
|
echo
|
||||||
echo "# blitz.display.sh image [path]"
|
echo "# blitz.display.sh image [path]"
|
||||||
echo "# blitz.display.sh qr [datastring]"
|
echo "# blitz.display.sh qr [datastring]"
|
||||||
echo "# blitz.display.sh qr-console [datastring]"
|
echo "# blitz.display.sh qr-console [datastring]"
|
||||||
echo "# blitz.display.sh hide"
|
echo "# blitz.display.sh hide"
|
||||||
echo "# blitz.display.sh hdmi [on|off] ---> DEPRECATED use set-display"
|
echo
|
||||||
|
echo "# blitz.display.sh rotate [on|off]"
|
||||||
echo "# blitz.display.sh test-lcd-connect"
|
echo "# blitz.display.sh test-lcd-connect"
|
||||||
echo "# blitz.display.sh set-display [hdmi|lcd|headless]"
|
echo "# blitz.display.sh set-display [hdmi|lcd|headless]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# load config
|
# 1. Parameter: lcd command
|
||||||
source /home/admin/raspiblitz.info 2>/dev/null
|
command=$1
|
||||||
|
|
||||||
|
# its OK if its not exist yet
|
||||||
|
source /home/admin/raspiblitz.info
|
||||||
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
||||||
|
|
||||||
# Make sure needed packages are installed
|
# Make sure needed packages are installed
|
||||||
@ -26,9 +30,6 @@ if [ $(sudo dpkg-query -l | grep "ii qrencode" | wc -l) = 0 ]; then
|
|||||||
sudo apt-get install qrencode -y > /dev/null
|
sudo apt-get install qrencode -y > /dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 1. Parameter: lcd command
|
|
||||||
command=$1
|
|
||||||
|
|
||||||
# check if LCD (/dev/fb1) or HDMI (/dev/fb0)
|
# check if LCD (/dev/fb1) or HDMI (/dev/fb0)
|
||||||
# see https://github.com/rootzoll/raspiblitz/pull/1580
|
# see https://github.com/rootzoll/raspiblitz/pull/1580
|
||||||
# but basically this just says if the driver for GPIO LCD is installed - not if connected
|
# but basically this just says if the driver for GPIO LCD is installed - not if connected
|
||||||
@ -44,18 +45,12 @@ if [ "${command}" == "rotate" ]; then
|
|||||||
# TURN ROTATE ON (the new default)
|
# TURN ROTATE ON (the new default)
|
||||||
if [ "$2" = "1" ] || [ "$2" = "on" ]; then
|
if [ "$2" = "1" ] || [ "$2" = "on" ]; then
|
||||||
|
|
||||||
# add default 'lcdrotate' raspiblitz.conf if needed
|
|
||||||
if [ ${#lcdrotate} -eq 0 ]; then
|
|
||||||
echo "lcdrotate=0" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# change rotation config
|
# change rotation config
|
||||||
echo "# Turn ON: LCD ROTATE"
|
echo "# Turn ON: LCD ROTATE"
|
||||||
sudo sed -i "s/^dtoverlay=.*/dtoverlay=waveshare35a:rotate=90/g" /boot/config.txt
|
sudo sed -i "s/^dtoverlay=.*/dtoverlay=waveshare35a:rotate=90/g" /boot/config.txt
|
||||||
sudo rm /etc/X11/xorg.conf.d/40-libinput.conf >/dev/null
|
sudo rm /etc/X11/xorg.conf.d/40-libinput.conf >/dev/null
|
||||||
|
|
||||||
# update raspiblitz conf file
|
/home/admin/config.scripts/blitz.conf.sh set lcdrotate 1
|
||||||
sudo sed -i "s/^lcdrotate=.*/lcdrotate=1/g" /mnt/hdd/raspiblitz.conf
|
|
||||||
echo "# OK - a restart is needed: sudo shutdown -r now"
|
echo "# OK - a restart is needed: sudo shutdown -r now"
|
||||||
|
|
||||||
# TURN ROTATE OFF
|
# TURN ROTATE OFF
|
||||||
@ -79,8 +74,8 @@ EndSection
|
|||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# update raspiblitz conf file
|
# update raspiblitz conf
|
||||||
sudo sed -i "s/^lcdrotate=.*/lcdrotate=0/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lcdrotate 0
|
||||||
echo "OK - a restart is needed: sudo shutdown -r now"
|
echo "OK - a restart is needed: sudo shutdown -r now"
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -133,14 +128,14 @@ if [ "${command}" == "qr" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
qrencode -l L -o /home/admin/qr.png "${datastring}" > /dev/null
|
qrencode -l L -o /var/cache/raspiblitz/qr.png "${datastring}" > /dev/null
|
||||||
# see https://github.com/rootzoll/raspiblitz/pull/1580
|
# see https://github.com/rootzoll/raspiblitz/pull/1580
|
||||||
if [ ${lcdExists} -eq 1 ] ; then
|
if [ ${lcdExists} -eq 1 ] ; then
|
||||||
# LCD
|
# LCD
|
||||||
sudo fbi -a -T 1 -d /dev/fb1 --noverbose /home/admin/qr.png 2> /dev/null
|
sudo fbi -a -T 1 -d /dev/fb1 --noverbose /var/cache/raspiblitz/qr.png 2> /dev/null
|
||||||
else
|
else
|
||||||
# HDMI
|
# HDMI
|
||||||
sudo fbi -a -T 1 -d /dev/fb0 --noverbose /home/admin/qr.png 2> /dev/null
|
sudo fbi -a -T 1 -d /dev/fb0 --noverbose /var/cache/raspiblitz/qr.png 2> /dev/null
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -175,7 +170,7 @@ fi
|
|||||||
|
|
||||||
if [ "${command}" == "hide" ]; then
|
if [ "${command}" == "hide" ]; then
|
||||||
sudo killall -3 fbi
|
sudo killall -3 fbi
|
||||||
shred -u /home/admin/qr.png 2> /dev/null
|
rm /var/cache/raspiblitz/qr.png 2> /dev/null
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -201,22 +196,6 @@ if [ "${command}" == "test-lcd-connect" ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
###############################
|
|
||||||
# HDMI (deprecated - redirect)
|
|
||||||
###############################
|
|
||||||
if [ "${command}" == "hdmi" ]; then
|
|
||||||
secondParameter=$2
|
|
||||||
if [ "${secondParameter}" == "on" ]; then
|
|
||||||
sudo /home/admin/config.scripts/blitz.display.sh set-display hdmi
|
|
||||||
elif [ "${secondParameter}" == "off" ]; then
|
|
||||||
sudo /home/admin/config.scripts/blitz.display.sh set-display lcd
|
|
||||||
else
|
|
||||||
echo "error='unknown second parameter'"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# DISPLAY TYPED INSTALLS & UN-INSTALLS
|
# DISPLAY TYPED INSTALLS & UN-INSTALLS
|
||||||
# HDMI is the default - every added
|
# HDMI is the default - every added
|
||||||
@ -360,36 +339,7 @@ function uninstall_lcd() {
|
|||||||
# not being used - can be deleted after mid 2021
|
# not being used - can be deleted after mid 2021
|
||||||
function install_lcd_legacy() {
|
function install_lcd_legacy() {
|
||||||
|
|
||||||
if [ "${baseimage}" = "raspbian" ] || [ "${baseimage}" = "dietpi" ]; then
|
if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; then
|
||||||
echo "*** 32bit LCD DRIVER ***"
|
|
||||||
echo "--> Downloading LCD Driver from Github"
|
|
||||||
cd /home/admin/
|
|
||||||
sudo -u admin git clone https://github.com/MrYacha/LCD-show.git
|
|
||||||
sudo -u admin chmod -R 755 LCD-show
|
|
||||||
sudo -u admin chown -R admin:admin LCD-show
|
|
||||||
cd LCD-show/
|
|
||||||
# not signed
|
|
||||||
sudo -u admin git reset --hard 53dd0bf || exit 1
|
|
||||||
# install xinput calibrator package
|
|
||||||
echo "--> install xinput calibrator package"
|
|
||||||
sudo apt install -y libxi6
|
|
||||||
sudo dpkg -i xinput-calibrator_0.7.5-1_armhf.deb
|
|
||||||
|
|
||||||
if [ "${baseimage}" = "dietpi" ]; then
|
|
||||||
echo "--> dietpi preparations"
|
|
||||||
sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf
|
|
||||||
sudo mkdir /etc/X11/xorg.conf.d
|
|
||||||
sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/
|
|
||||||
sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/tft35a.dtbo
|
|
||||||
sudo cp -rf ./usr/99-calibration.conf-35 /etc/X11/xorg.conf.d/99-calibration.conf
|
|
||||||
sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/
|
|
||||||
sudo cp ./usr/cmdline.txt /DietPi/
|
|
||||||
sudo cp ./usr/inittab /etc/
|
|
||||||
sudo cp ./boot/config-35.txt /DietPi/config.txt
|
|
||||||
# make LCD screen rotation correct
|
|
||||||
sudo sed -i "s/dtoverlay=tft35a/dtoverlay=tft35a:rotate=270/" /DietPi/config.txt
|
|
||||||
fi
|
|
||||||
elif [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; then
|
|
||||||
echo "*** 64bit LCD DRIVER ***"
|
echo "*** 64bit LCD DRIVER ***"
|
||||||
echo "--> Downloading LCD Driver from Github"
|
echo "--> Downloading LCD Driver from Github"
|
||||||
cd /home/admin/
|
cd /home/admin/
|
||||||
@ -433,13 +383,7 @@ function install_lcd_legacy() {
|
|||||||
|
|
||||||
# activate LCD and trigger reboot
|
# activate LCD and trigger reboot
|
||||||
# dont do this on dietpi to allow for automatic build
|
# dont do this on dietpi to allow for automatic build
|
||||||
if [ "${baseimage}" = "raspbian" ]; then
|
if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; then
|
||||||
echo "Installing 32-bit LCD drivers ..."
|
|
||||||
sudo chmod +x -R /home/admin/LCD-show
|
|
||||||
cd /home/admin/LCD-show/
|
|
||||||
sudo apt-mark hold raspberrypi-bootloader
|
|
||||||
sudo ./LCD35-show
|
|
||||||
elif [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; then
|
|
||||||
echo "Installing 64-bit LCD drivers ..."
|
echo "Installing 64-bit LCD drivers ..."
|
||||||
sudo chmod +x -R /home/admin/wavesharelcd-64bit-rpi
|
sudo chmod +x -R /home/admin/wavesharelcd-64bit-rpi
|
||||||
cd /home/admin/wavesharelcd-64bit-rpi
|
cd /home/admin/wavesharelcd-64bit-rpi
|
||||||
@ -452,7 +396,7 @@ function install_lcd_legacy() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function install_headless() {
|
function install_headless() {
|
||||||
if [ "${baseimage}" = "raspbian" ]||[ "${baseimage}" = "raspios_arm64" ]|| [ "${baseimage}" = "debian_rpi64" ]; then
|
if [ "${baseimage}" = "raspios_arm64" ]|| [ "${baseimage}" = "debian_rpi64" ]; then
|
||||||
modificationExists=$(sudo cat /etc/systemd/system/getty@tty1.service.d/autologin.conf | grep -c "autologin pi")
|
modificationExists=$(sudo cat /etc/systemd/system/getty@tty1.service.d/autologin.conf | grep -c "autologin pi")
|
||||||
if [ "${modificationExists}" == "1" ]; then
|
if [ "${modificationExists}" == "1" ]; then
|
||||||
echo "# deactivating auto-login of pi user"
|
echo "# deactivating auto-login of pi user"
|
||||||
@ -476,7 +420,7 @@ function install_headless() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function uninstall_headless() {
|
function uninstall_headless() {
|
||||||
if [ "${baseimage}" = "raspbian" ]||[ "${baseimage}" = "raspios_arm64" ]|| [ "${baseimage}" = "debian_rpi64" ]; then
|
if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; then
|
||||||
# activate auto-login
|
# activate auto-login
|
||||||
sudo raspi-config nonint do_boot_behaviour B2
|
sudo raspi-config nonint do_boot_behaviour B2
|
||||||
modificationExists=$(sudo cat /etc/systemd/system/getty@tty1.service.d/autologin.conf | grep -c "autologin pi")
|
modificationExists=$(sudo cat /etc/systemd/system/getty@tty1.service.d/autologin.conf | grep -c "autologin pi")
|
||||||
@ -510,19 +454,6 @@ function uninstall_headless() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function prepareDisplayClassEntryRaspiblitzConf() {
|
|
||||||
# check if file exists / hdd is mounted
|
|
||||||
if [ -f "/mnt/hdd/raspiblitz.conf" ]; then
|
|
||||||
echo "file does exists"
|
|
||||||
entryExists=$(grep -c "displayClass=" /mnt/hdd/raspiblitz.conf)
|
|
||||||
if [ ${entryExists} -eq 0 ]; then
|
|
||||||
echo "displayClass=${displayClass}" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "# /mnt/hdd/raspiblitz.conf does not exists (yet) - change is just part of raspiblitz.info"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# SET DISPLAY TYPE
|
# SET DISPLAY TYPE
|
||||||
###################
|
###################
|
||||||
@ -532,6 +463,7 @@ if [ "${command}" == "set-display" ]; then
|
|||||||
paramDisplayClass=$2
|
paramDisplayClass=$2
|
||||||
paramDisplayType=$3
|
paramDisplayType=$3
|
||||||
echo "# blitz.display.sh set-display ${paramDisplayClass} ${paramDisplayType}"
|
echo "# blitz.display.sh set-display ${paramDisplayClass} ${paramDisplayType}"
|
||||||
|
echo "baseimage(${baseimage})"
|
||||||
|
|
||||||
# check if started with sudo
|
# check if started with sudo
|
||||||
if [ "$EUID" -ne 0 ]; then
|
if [ "$EUID" -ne 0 ]; then
|
||||||
@ -539,6 +471,12 @@ if [ "${command}" == "set-display" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# check if display class parameter is given
|
||||||
|
if [ "${baseimage}" == "" ]; then
|
||||||
|
echo "err='missing baseimage info'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# check if display class parameter is given
|
# check if display class parameter is given
|
||||||
if [ "${paramDisplayClass}" == "" ]; then
|
if [ "${paramDisplayClass}" == "" ]; then
|
||||||
echo "err='missing parameter'"
|
echo "err='missing parameter'"
|
||||||
@ -561,10 +499,9 @@ if [ "${command}" == "set-display" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# mark new display class in configs
|
# mark new display class in config (if exist)
|
||||||
prepareDisplayClassEntryRaspiblitzConf
|
/home/admin/config.scripts/blitz.conf.sh set displayClass ${paramDisplayClass}
|
||||||
sudo sed -i "s/^displayClass=.*/displayClass=${paramDisplayClass}/g" /home/admin/raspiblitz.info
|
sudo sed -i "s/^displayClass=.*/displayClass=${paramDisplayClass}/g" /home/admin/raspiblitz.info
|
||||||
sudo sed -i "s/^displayClass=.*/displayClass=${paramDisplayClass}/g" /mnt/hdd/raspiblitz.conf 2>/dev/null
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
@ -13,11 +13,6 @@ fi
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^docker=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "docker=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# switch on
|
# switch on
|
||||||
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||||
|
|
||||||
@ -48,7 +43,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
sudo pip3 install docker-compose
|
sudo pip3 install docker-compose
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^docker=.*/docker=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set docker "on"
|
||||||
echo "# docker install done"
|
echo "# docker install done"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -56,7 +51,7 @@ fi
|
|||||||
# switch off
|
# switch off
|
||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i "s/^docker=.*/docker=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set docker "off"
|
||||||
echo "*** REMOVING docker & docker-compose ***"
|
echo "*** REMOVING docker & docker-compose ***"
|
||||||
sudo pip3 uninstall -y docker-compose
|
sudo pip3 uninstall -y docker-compose
|
||||||
sudo apt-get purge -y docker-ce docker-ce-cli
|
sudo apt-get purge -y docker-ce docker-ce-cli
|
||||||
|
66
home.admin/config.scripts/blitz.error.sh
Executable file
66
home.admin/config.scripts/blitz.error.sh
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# command info
|
||||||
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ]; then
|
||||||
|
echo "RaspiBlitz Error Handling"
|
||||||
|
echo
|
||||||
|
echo "blitz.error.sh [source-script-name] [fixed-short-code] [?detail-message] [?additional-debugdata] [?logfile]"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
###################
|
||||||
|
# ERROR HANDLING
|
||||||
|
###################
|
||||||
|
|
||||||
|
# get required parameters
|
||||||
|
script=$2
|
||||||
|
shortcode=$3
|
||||||
|
|
||||||
|
# check reqired parameters
|
||||||
|
if [ "${script}" == "" ]; then
|
||||||
|
/home/admin/config.scripts/blitz.error.sh blitz.error.sh "error-missing-script" "missing any parameter" "$@"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "${shortcode}" == "" ]; then
|
||||||
|
/home/admin/config.scripts/blitz.error.sh blitz.error.sh "error-missing-code" "script ${script} missing error code" "$@"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set error info in cache system state (for DISPLAY on lcd, report to webui, etc)
|
||||||
|
/home/admin/_cache.sh set state "error"
|
||||||
|
/home/admin/_cache.sh set message "${shortcode}"
|
||||||
|
|
||||||
|
# prepare log error report
|
||||||
|
dateStr=$(date)
|
||||||
|
errorReport="ERROR in ${script} --> ${shortcode} on ${dateStr}"
|
||||||
|
|
||||||
|
# get optional parameters & extend error report if given
|
||||||
|
detail=$4
|
||||||
|
debugdata=$5
|
||||||
|
if [ "${detail}" != "" ] || [ "${debugdata}" != "" ]; then
|
||||||
|
errorReport="${errorReport}\nDETAIL --> ${detail}\nDEBUG --> ${debugdata}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# A) write error reports to /home/admin
|
||||||
|
timestampStr=$(date +%s)
|
||||||
|
filename="/home/admin/error-${script}-${timestampStr}.log"
|
||||||
|
echo "${errorReport}" > ${filename}
|
||||||
|
chown admin:admin ${filename}
|
||||||
|
|
||||||
|
# B) write error to std outs
|
||||||
|
>&2 echo "${errorReport} --> ${filename}"
|
||||||
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||||
|
echo "${errorReport}"
|
||||||
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||||
|
|
||||||
|
# C) write error report to given logfile (optional)
|
||||||
|
logfile=$6
|
||||||
|
if [ "${logfile}" != "" ]; then
|
||||||
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ${logFile}
|
||||||
|
echo "${errorReport}" >> ${logFile}
|
||||||
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ${logFile}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# on serial calls make sure that at least a second is between error reports
|
||||||
|
sleep 1
|
@ -86,17 +86,18 @@ migrate_raspiblitz_conf () {
|
|||||||
# write default raspiblitz config
|
# write default raspiblitz config
|
||||||
source /home/admin/_version.info
|
source /home/admin/_version.info
|
||||||
echo "# RASPIBLITZ CONFIG FILE" > /home/admin/raspiblitz.conf
|
echo "# RASPIBLITZ CONFIG FILE" > /home/admin/raspiblitz.conf
|
||||||
echo "raspiBlitzVersion='${codeVersion}'" >> /home/admin/raspiblitz.conf
|
|
||||||
echo "network=bitcoin" >> /home/admin/raspiblitz.conf
|
|
||||||
echo "chain=main" >> /home/admin/raspiblitz.conf
|
|
||||||
echo "hostname=${nodename}" >> /home/admin/raspiblitz.conf
|
|
||||||
echo "displayClass=lcd" >> /home/admin/raspiblitz.conf
|
|
||||||
echo "lcdrotate=1" >> /home/admin/raspiblitz.conf
|
|
||||||
echo "runBehindTor=on" >> /home/admin/raspiblitz.conf
|
|
||||||
sudo mv /home/admin/raspiblitz.conf /mnt/hdd/raspiblitz.conf
|
sudo mv /home/admin/raspiblitz.conf /mnt/hdd/raspiblitz.conf
|
||||||
sudo chown root:sudo /mnt/hdd/raspiblitz.conf
|
sudo chown root:sudo /mnt/hdd/raspiblitz.conf
|
||||||
sudo chmod 664 /mnt/hdd/raspiblitz.conf
|
sudo chmod 664 /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
|
/home/admin/config.scripts/blitz.conf.sh set raspiBlitzVersion "${codeVersion}"
|
||||||
|
/home/admin/config.scripts/blitz.conf.sh set network "bitcoin"
|
||||||
|
/home/admin/config.scripts/blitz.conf.sh set chain "main"
|
||||||
|
/home/admin/config.scripts/blitz.conf.sh set hostname "${nodename}"
|
||||||
|
/home/admin/config.scripts/blitz.conf.sh set displayClass "lcd"
|
||||||
|
/home/admin/config.scripts/blitz.conf.sh set lcdrotate "1"
|
||||||
|
/home/admin/config.scripts/blitz.conf.sh set runBehindTor "on"
|
||||||
|
|
||||||
# rename ext4 data drive
|
# rename ext4 data drive
|
||||||
sudo e2label /dev/sda1 BLOCKCHAIN
|
sudo e2label /dev/sda1 BLOCKCHAIN
|
||||||
}
|
}
|
||||||
|
@ -12,65 +12,43 @@ fi
|
|||||||
# load config values
|
# load config values
|
||||||
source /home/admin/raspiblitz.info 2>/dev/null
|
source /home/admin/raspiblitz.info 2>/dev/null
|
||||||
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
||||||
if [ ${#network} -eq 0 ]; then
|
|
||||||
echo "FAIL - was not able to load config data / network"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# make sure main "notify" setting is present (add with default if not)
|
# write default values if no custum values in raspiblitz config yet
|
||||||
if ! grep -Eq "^notify=.*" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "notify=off" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check all other settings and add if missing
|
|
||||||
if ! grep -Eq "^notifyMethod=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMethod=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMethod=mail" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMethod "mail"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mail
|
|
||||||
if ! grep -Eq "^notifyMailTo=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailTo=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailTo=mail@example.com" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailTo "mail@example.com"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -Eq "^notifyMailServer=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailServer=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailServer=mail.example.com" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailServer "mail.example.com"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -Eq "^notifyMailPort=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailPort=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailPort=587" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailPort "587"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -Eq "^notifyMailHostname=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailHostname=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailHostname=$(hostname)" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailHostname "${hostname}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -Eq "^notifyMailFromAddress=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailFromAddress=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailFromAddress=rb@example.com" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailFromAddress "rb@example.com"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -Eq "^notifyMailFromName=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailFromName=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailFromName=\"RB User\"" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailFromName "RB User"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -Eq "^notifyMailUser=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailUser=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailUser=username" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailUser "username"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -Eq "^notifyMailPass=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailPass=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailPass=password" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailPass "password"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -Eq "^notifyMailEncrypt=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailEncrypt=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailEncrypt=off" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailEncrypt "off"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -Eq "^notifyMailToCert=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyMailToCert=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyMailToCert=/mnt/hdd/notify_mail_cert.pem" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyMailToCert "/mnt/hdd/notify_mail_cert.pem"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ext
|
|
||||||
if ! grep -Eq "^notifyExtCmd=.*" /mnt/hdd/raspiblitz.conf; then
|
if ! grep -Eq "^notifyExtCmd=.*" /mnt/hdd/raspiblitz.conf; then
|
||||||
echo "notifyExtCmd=/usr/bin/printf" | sudo tee -a /mnt/hdd/raspiblitz.conf >/dev/null
|
/home/admin/config.scripts/blitz.conf.sh set notifyExtCmd "/usr/bin/printf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# reload settings
|
# reload settings
|
||||||
@ -114,7 +92,7 @@ EOF
|
|||||||
|
|
||||||
# edit raspi blitz config
|
# edit raspi blitz config
|
||||||
echo "editing /mnt/hdd/raspiblitz.conf"
|
echo "editing /mnt/hdd/raspiblitz.conf"
|
||||||
sudo sed -i "s/^notify=.*/notify=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set notify "on"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -126,7 +104,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "switching the NOTIFY OFF"
|
echo "switching the NOTIFY OFF"
|
||||||
# edit raspi blitz config
|
# edit raspi blitz config
|
||||||
echo "editing /mnt/hdd/raspiblitz.conf"
|
echo "editing /mnt/hdd/raspiblitz.conf"
|
||||||
sudo sed -i "s/^notify=.*/notify=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set notify "off"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -3,15 +3,21 @@
|
|||||||
# Just run this script once after a fresh sd card build
|
# Just run this script once after a fresh sd card build
|
||||||
# to prepare the image for release as a downloadable sd card image
|
# to prepare the image for release as a downloadable sd card image
|
||||||
|
|
||||||
# raspiblitz.info & logs
|
# cleaning logs
|
||||||
echo "cleaning raspiblitz info .."
|
echo "deleting raspiblitz & system logs .."
|
||||||
|
sudo rm /var/log/* 2>/dev/null
|
||||||
|
sudo rm /var/log/redis/* 2>/dev/null
|
||||||
|
sudo rm /var/log/private/* 2>/dev/null
|
||||||
|
sudo rm /var/log/nginx/* 2>/dev/null
|
||||||
|
sudo rm /home/admin/*.log 2>/dev/null
|
||||||
|
echo "OK"
|
||||||
|
|
||||||
|
# clean raspiblitz.info toward the values set by sd card build script
|
||||||
|
echo "cleaning raspiblitz.info"
|
||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
echo "baseimage=${baseimage}" > /home/admin/raspiblitz.info
|
echo "baseimage=${baseimage}" > /home/admin/raspiblitz.info
|
||||||
echo "cpu=${cpu}" >> /home/admin/raspiblitz.info
|
echo "cpu=${cpu}" >> /home/admin/raspiblitz.info
|
||||||
echo "displayClass=${displayClass}" >> /home/admin/raspiblitz.info
|
echo "displayClass=${displayClass}" >> /home/admin/raspiblitz.info
|
||||||
echo "deleting raspiblitz logs .."
|
|
||||||
sudo rm /home/admin/*.log
|
|
||||||
echo "OK"
|
|
||||||
|
|
||||||
# SSH Pubkeys (make unique for every sd card image install)
|
# SSH Pubkeys (make unique for every sd card image install)
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -5,15 +5,7 @@
|
|||||||
# 1) give UI the info that a reboot/shutdown is now happening
|
# 1) give UI the info that a reboot/shutdown is now happening
|
||||||
# 2) shutdown/reboot in a safe way to prevent data corruption
|
# 2) shutdown/reboot in a safe way to prevent data corruption
|
||||||
|
|
||||||
# INFOFILE - state data from bootstrap
|
source <(/home/admin/_cache.sh get network)
|
||||||
infoFile="/home/admin/raspiblitz.info"
|
|
||||||
|
|
||||||
# get network info from config
|
|
||||||
source ${infoFile} 2>/dev/null
|
|
||||||
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
|
||||||
if [ ${#network} -eq 0 ]; then
|
|
||||||
network=bitcoin
|
|
||||||
fi
|
|
||||||
|
|
||||||
# display info
|
# display info
|
||||||
echo ""
|
echo ""
|
||||||
@ -21,13 +13,13 @@ echo "Green activity light stays dark and LCD turns white when shutdown complete
|
|||||||
if [ "$1" = "reboot" ]; then
|
if [ "$1" = "reboot" ]; then
|
||||||
shutdownParams="-h -r now"
|
shutdownParams="-h -r now"
|
||||||
echo "It will then reboot again automatically."
|
echo "It will then reboot again automatically."
|
||||||
sed -i "s/^state=.*/state=reboot/g" ${infoFile}
|
/home/admin/_cache.sh set state "reboot"
|
||||||
sed -i "s/^message=.*/message='$2'/g" ${infoFile}
|
/home/admin/_cache.sh set message "$2"
|
||||||
else
|
else
|
||||||
shutdownParams="-h now"
|
shutdownParams="-h now"
|
||||||
echo "Then wait 5 seconds and disconnect power."
|
echo "Then wait 5 seconds and disconnect power."
|
||||||
sed -i "s/^state=.*/state=shutdown/g" ${infoFile}
|
/home/admin/_cache.sh set state "shutdown"
|
||||||
sed -i "s/^message=.*/message=''/g" ${infoFile}
|
/home/admin/_cache.sh set message ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# do shutdown/reboot
|
# do shutdown/reboot
|
||||||
|
@ -7,7 +7,8 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ];
|
|||||||
echo "blitz.ssh.sh clear --> make sure old sshd host certs are cleared"
|
echo "blitz.ssh.sh clear --> make sure old sshd host certs are cleared"
|
||||||
echo "blitz.ssh.sh checkrepair --> check sshd & repair just in case"
|
echo "blitz.ssh.sh checkrepair --> check sshd & repair just in case"
|
||||||
echo "blitz.ssh.sh backup --> copy ssh keys to backup (if exist)"
|
echo "blitz.ssh.sh backup --> copy ssh keys to backup (if exist)"
|
||||||
echo "blitz.ssh.sh restore --> restore ssh keys from backup (if exist)"
|
echo "blitz.ssh.sh sessions --> count open sessions"
|
||||||
|
echo "blitz.ssh.sh restore [?backup-root] --> restore ssh keys from backup (if exist)"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -42,6 +43,16 @@ if [ "$1" = "clear" ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
###################
|
||||||
|
# SESSIONS
|
||||||
|
###################
|
||||||
|
if [ "$1" = "sessions" ]; then
|
||||||
|
echo "# *** blitz.ssh.sh sessions"
|
||||||
|
sessionsCount=$(ss | grep -c ":ssh")
|
||||||
|
echo "ssh_session_count=${sessionsCount}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# CHECK & REPAIR
|
# CHECK & REPAIR
|
||||||
###################
|
###################
|
||||||
@ -117,6 +128,13 @@ fi
|
|||||||
###################
|
###################
|
||||||
if [ "$1" = "restore" ]; then
|
if [ "$1" = "restore" ]; then
|
||||||
echo "# *** blitz.ssh.sh restore"
|
echo "# *** blitz.ssh.sh restore"
|
||||||
|
|
||||||
|
# second parameter (optional)
|
||||||
|
ALTBACKUPBASEDIR=$2
|
||||||
|
if [ "${ALTBACKUPBASEDIR}" != "" ]; then
|
||||||
|
DEFAULTBACKUPBASEDIR="${ALTBACKUPBASEDIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "# backup dir: ${DEFAULTBACKUPBASEDIR}/ssh"
|
echo "# backup dir: ${DEFAULTBACKUPBASEDIR}/ssh"
|
||||||
if [ -d "${DEFAULTBACKUPBASEDIR}/ssh" ]; then
|
if [ -d "${DEFAULTBACKUPBASEDIR}/ssh" ]; then
|
||||||
|
|
||||||
|
@ -1,327 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
|
||||||
source /mnt/hdd/raspiblitz.conf 2>/dev/null
|
|
||||||
|
|
||||||
# LNTYPE is lnd | cl
|
|
||||||
if [ $# -gt 0 ];then
|
|
||||||
LNTYPE=$1
|
|
||||||
else
|
|
||||||
LNTYPE=${lightning}
|
|
||||||
fi
|
|
||||||
|
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars $LNTYPE ${chain}net)
|
|
||||||
|
|
||||||
# command info
|
|
||||||
if [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|
||||||
echo "# script to scan the state of the system after setup"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# measure time of scan
|
|
||||||
startTime=$(date +%s)
|
|
||||||
|
|
||||||
# localIP
|
|
||||||
localip=$(hostname -I | awk '{print $1}')
|
|
||||||
echo "localIP='${localip}'"
|
|
||||||
|
|
||||||
# temp - no measurement in a VM
|
|
||||||
tempC=0
|
|
||||||
if [ -d "/sys/class/thermal/thermal_zone0/" ]; then
|
|
||||||
tempC=$(echo "scale=1; $(cat /sys/class/thermal/thermal_zone0/temp)/1000" | bc)
|
|
||||||
echo "tempCelsius='${tempC}'"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# uptime in seconds
|
|
||||||
uptime=$(awk '{printf("%d\n",$1 + 0.5)}' /proc/uptime)
|
|
||||||
echo "uptime=${uptime}"
|
|
||||||
|
|
||||||
# get UPS info (if configured)
|
|
||||||
/home/admin/config.scripts/blitz.ups.sh status
|
|
||||||
|
|
||||||
# count restarts of bitcoind/litecoind
|
|
||||||
startcountBlockchain=$(cat /home/admin/systemd.blockchain.log 2>/dev/null | grep -c "STARTED")
|
|
||||||
echo "startcountBlockchain=${startcountBlockchain}"
|
|
||||||
|
|
||||||
# is bitcoind running
|
|
||||||
bitcoinRunning=$(systemctl status ${network}d.service 2>/dev/null | grep -c running)
|
|
||||||
echo "bitcoinActive=${bitcoinRunning}"
|
|
||||||
|
|
||||||
if [ ${bitcoinRunning} -eq 1 ]; then
|
|
||||||
|
|
||||||
# get blockchain info
|
|
||||||
sudo touch /var/cache/raspiblitz/.bitcoind.out
|
|
||||||
sudo touch /var/cache/raspiblitz/.bitcoind.error
|
|
||||||
sudo chown root:sudo /var/cache/raspiblitz/.bitcoind.out
|
|
||||||
sudo chown root:sudo /var/cache/raspiblitz/.bitcoind.error
|
|
||||||
sudo chmod 660 /var/cache/raspiblitz/.bitcoind.out
|
|
||||||
sudo chmod 660 /var/cache/raspiblitz/.bitcoind.error
|
|
||||||
$bitcoincli_alias getblockchaininfo 1>/var/cache/raspiblitz/.bitcoind.out 2>/var/cache/raspiblitz/.bitcoind.error
|
|
||||||
# check if error on request
|
|
||||||
blockchaininfo=$(cat /var/cache/raspiblitz/.bitcoind.out 2>/dev/null)
|
|
||||||
bitcoinError=$(cat /var/cache/raspiblitz/.bitcoind.error 2>/dev/null)
|
|
||||||
#rm /var/cache/raspiblitz/.bitcoind.error 2>/dev/null
|
|
||||||
if [ ${#bitcoinError} -gt 0 ]; then
|
|
||||||
bitcoinErrorShort=$(echo ${bitcoinError/error*:/} | sed 's/[^a-zA-Z0-9 ]//g')
|
|
||||||
echo "bitcoinErrorShort='${bitcoinErrorShort}'"
|
|
||||||
bitcoinErrorFull=$(echo ${bitcoinError} | tr -d "'")
|
|
||||||
echo "bitcoinErrorFull='${bitcoinErrorFull}'"
|
|
||||||
else
|
|
||||||
|
|
||||||
###################################
|
|
||||||
# Get data from blockchain network
|
|
||||||
###################################
|
|
||||||
|
|
||||||
source <(sudo /home/admin/config.scripts/network.monitor.sh peer-status)
|
|
||||||
echo "blockchainPeers=${peers}"
|
|
||||||
|
|
||||||
##############################
|
|
||||||
# Get data from blockchaininfo
|
|
||||||
##############################
|
|
||||||
|
|
||||||
# get total number of blocks
|
|
||||||
total=$(echo ${blockchaininfo} | jq -r '.blocks')
|
|
||||||
echo "blockchainHeight=${total}"
|
|
||||||
|
|
||||||
# is initial sync of blockchain
|
|
||||||
initialSync=$(echo ${blockchaininfo} | jq -r '.initialblockdownload' | grep -c 'true')
|
|
||||||
echo "initialSync=${initialSync}"
|
|
||||||
|
|
||||||
# get blockchain sync progress
|
|
||||||
syncProgress="$(echo ${blockchaininfo} | jq -r '.verificationprogress')"
|
|
||||||
syncProgress=$(echo $syncProgress | awk '{printf( "%.2f%%", 100 * $1)}' | tr '%' ' ' | tr -s " ")
|
|
||||||
echo "syncProgress=${syncProgress}"
|
|
||||||
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
|
|
||||||
# find out why Bitcoin not running
|
|
||||||
|
|
||||||
pathAdd=""
|
|
||||||
if [ "${chain}" = "test" ]; then
|
|
||||||
pathAdd="/testnet3"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#### POSSIBLE/SOFT PROBLEMS
|
|
||||||
# place here in future analysis
|
|
||||||
|
|
||||||
#### HARD PROBLEMS
|
|
||||||
|
|
||||||
# LOW DISK SPACE
|
|
||||||
lowDiskSpace=$(sudo tail -n 100 /mnt/hdd/${network}${pathAdd}/debug.log 2>/dev/null | grep -c "Error: Disk space is low!")
|
|
||||||
if [ ${lowDiskSpace} -gt 0 ]; then
|
|
||||||
bitcoinErrorShort="HDD DISK SPACE LOW"
|
|
||||||
bitcoinErrorFull="HDD DISK SPACE LOW - check what data you can delete on HDD and restart"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#### GENERIC ERROR FIND
|
|
||||||
|
|
||||||
# if still no error identified - search logs for generic error (after 4min uptime)
|
|
||||||
if [ ${#bitcoinErrorShort} -eq 0 ] && [ ${uptime} -gt 240 ]; then
|
|
||||||
bitcoinErrorFull=$(sudo tail -n 100 /mnt/hdd/${network}${pathAdd}/debug.log 2>/dev/null | grep -c "Error:" | tail -1 | tr -d "'")
|
|
||||||
if [ ${#bitcoinErrorFull} -gt 0 ]; then
|
|
||||||
bitcoinErrorShort="Error found in Logs"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# output error if found
|
|
||||||
if [ ${#bitcoinErrorShort} -gt 0 ]; then
|
|
||||||
echo "bitcoinErrorShort='${bitcoinErrorShort}'"
|
|
||||||
echo "bitcoinErrorFull='${bitcoinErrorFull}'"
|
|
||||||
/home/admin/config.scripts/blitz.systemd.sh log blockchain "ERROR: ${bitcoinErrorShort}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
# count restarts of bitcoind/litecoind
|
|
||||||
startcountLightning=$(cat /home/admin/systemd.lightning.log 2>/dev/null | grep -c "STARTED")
|
|
||||||
echo "startcountLightning=${startcountLightning}"
|
|
||||||
|
|
||||||
# is LND running
|
|
||||||
lndRunning=$(systemctl status ${netprefix}lnd.service 2>/dev/null | grep -c running)
|
|
||||||
echo "lndActive=${lndRunning}"
|
|
||||||
|
|
||||||
if [ ${lndRunning} -eq 1 ] && [ "${LNTYPE}" == "lnd" ]; then
|
|
||||||
|
|
||||||
# get LND info
|
|
||||||
lndRPCReady=1
|
|
||||||
sudo touch /var/cache/raspiblitz/.lnd.error
|
|
||||||
sudo chown root:sudo /var/cache/raspiblitz/.lnd.error
|
|
||||||
sudo chmod 660 /var/cache/raspiblitz/.lnd.error
|
|
||||||
lndinfo=$($lncli_alias getinfo 2>/var/cache/raspiblitz/.lnd.error)
|
|
||||||
|
|
||||||
# check if error on request
|
|
||||||
lndErrorFull=$(cat /var/cache/raspiblitz/.lnd.error 2>/dev/null)
|
|
||||||
lndErrorShort=''
|
|
||||||
#rm /var/cache/raspiblitz/.lnd.error 2>/dev/null
|
|
||||||
|
|
||||||
if [ ${#lndErrorFull} -gt 0 ]; then
|
|
||||||
|
|
||||||
# flag if error could be resoled by analysis
|
|
||||||
errorResolved=0
|
|
||||||
|
|
||||||
### analyse LND logs since start
|
|
||||||
|
|
||||||
# find a the line number in logs of start of LND
|
|
||||||
# just do this on error case to save on processing memory
|
|
||||||
lndStartLineNumber=$(sudo cat /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log 2>/dev/null | grep -in "LTND: Active chain:" | tail -1 | cut -d ":" -f1)
|
|
||||||
|
|
||||||
# get logs of last LND start
|
|
||||||
lndLogsAfterStart=$(sudo tail --lines=+${lndStartLineNumber} /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log 2>/dev/null)
|
|
||||||
|
|
||||||
# check RPC server ready (can take some time after wallet was unlocked)
|
|
||||||
lndRPCReady=$(echo "${lndLogsAfterStart}" | grep -c "RPCS: RPC server listening on")
|
|
||||||
echo "lndRPCReady=${lndRPCReady}"
|
|
||||||
|
|
||||||
# check wallet if wallet was opened (after correct password)
|
|
||||||
lndWalletOpened=$(echo "${lndLogsAfterStart}" | grep -c "LNWL: Opened wallet")
|
|
||||||
echo "walletOpened=${lndWalletOpened}"
|
|
||||||
|
|
||||||
# check wallet if wallet is ready (can take some time after wallet was opened)
|
|
||||||
lndWalletReady=$(echo "${lndLogsAfterStart}" | grep -c "LTND: LightningWallet opened")
|
|
||||||
echo "walletReady=${lndWalletReady}"
|
|
||||||
|
|
||||||
### check errors
|
|
||||||
|
|
||||||
# scan error for walletLocked as common error
|
|
||||||
locked=$(echo ${lndErrorFull} | grep -c 'Wallet is encrypted')
|
|
||||||
if [ "${locked}" == "0" ]; then
|
|
||||||
locked=$(echo ${lndErrorFull} | grep -c 'wallet locked')
|
|
||||||
fi
|
|
||||||
if [ ${locked} -gt 0 ]; then
|
|
||||||
echo "walletLocked=1"
|
|
||||||
else
|
|
||||||
echo "walletLocked=0"
|
|
||||||
|
|
||||||
rpcNotWorking=$(echo ${lndErrorFull} | grep -c 'connection refused')
|
|
||||||
if [ ${rpcNotWorking} -gt 0 ]; then
|
|
||||||
|
|
||||||
# this can happen for a long time when LND is starting fresh sync
|
|
||||||
# on first startup - check if logs since start signaled RPC ready before
|
|
||||||
if [ ${lndRPCReady} -eq 0 ]; then
|
|
||||||
# nullify error - this is normal
|
|
||||||
lndErrorFull=""
|
|
||||||
errorResolved=1
|
|
||||||
# output basic data because no error
|
|
||||||
echo "# LND RPC is still warming up - no scan progress: prepare scan"
|
|
||||||
echo "scanTimestamp=-2"
|
|
||||||
echo "syncedToChain=0"
|
|
||||||
else
|
|
||||||
echo "# LND RPC was started - some other problem going on"
|
|
||||||
lndErrorShort='LND RPC not responding'
|
|
||||||
lndErrorFull=$(echo "LND RPC is not responding. LND may have problems starting up. Check logs, config files and systemd service. Org-Error: ${lndErrorFull}" | tr -d "'")
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# if not known error and not resolved before - keep generic
|
|
||||||
if [ ${#lndErrorShort} -eq 0 ] && [ ${errorResolved} -eq 0 ]; then
|
|
||||||
lndErrorShort='Unknown Error - see logs'
|
|
||||||
lndErrorFull=$(echo ${lndErrorFull} | tr -d "'")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# write to results
|
|
||||||
if [ ${#lndErrorFull} -gt 0 ]; then
|
|
||||||
echo "lndErrorShort='${lndErrorShort}'"
|
|
||||||
echo "lndErrorFull='${lndErrorFull}'"
|
|
||||||
/home/admin/config.scripts/blitz.systemd.sh log lightning "ERROR: ${lndErrorFull}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
# check if wallet is locked
|
|
||||||
locked=$(echo ${lndinfo} | grep -c unlock)
|
|
||||||
if [ ${locked} -gt 0 ]; then
|
|
||||||
echo "walletLocked=1"
|
|
||||||
else
|
|
||||||
echo "walletLocked=0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# number of lnd peers
|
|
||||||
lndPeers=$(echo ${lndinfo} | jq -r '.num_peers')
|
|
||||||
echo "lndPeers=${lndPeers}"
|
|
||||||
|
|
||||||
# synced to chain
|
|
||||||
syncedToChain=$(echo ${lndinfo} | jq -r '.synced_to_chain' | grep -c 'true')
|
|
||||||
echo "syncedToChain=${syncedToChain}"
|
|
||||||
|
|
||||||
# lnd scan progress
|
|
||||||
scanTimestamp=$(echo ${lndinfo} | jq -r '.best_header_timestamp')
|
|
||||||
nowTimestamp=$(date +%s)
|
|
||||||
if [ ${#scanTimestamp} -gt 0 ] && [ ${scanTimestamp} -gt ${nowTimestamp} ]; then
|
|
||||||
scanTimestamp=${nowTimestamp}
|
|
||||||
fi
|
|
||||||
if [ ${#scanTimestamp} -gt 0 ]; then
|
|
||||||
echo "scanTimestamp=${scanTimestamp}"
|
|
||||||
scanDate=$(date -d @${scanTimestamp} 2>/dev/null)
|
|
||||||
echo "scanDate='${scanDate}'"
|
|
||||||
|
|
||||||
# calculate LND scan progress by seconds since Genesis block
|
|
||||||
genesisTimestamp=1230940800
|
|
||||||
|
|
||||||
totalSeconds=$(echo "${nowTimestamp}-${genesisTimestamp}" | bc)
|
|
||||||
scannedSeconds=$(echo "${scanTimestamp}-${genesisTimestamp}" | bc)
|
|
||||||
scanProgress=$(echo "scale=2; $scannedSeconds*100/$totalSeconds" | bc)
|
|
||||||
echo "scanProgress=${scanProgress}"
|
|
||||||
else
|
|
||||||
echo "# was not able to parse 'best_header_timestamp' from: lncli getinfo"
|
|
||||||
echo "scanTimestamp=-1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
# output if lnd-RPC is ready
|
|
||||||
echo "lndRPCReady=${lndRPCReady}"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
# is CL running
|
|
||||||
clRunning=$(systemctl status ${netprefix}lightningd.service 2>/dev/null | grep -c running)
|
|
||||||
echo "clActive=${clRunning}"
|
|
||||||
echo "CLwalletLocked=0"
|
|
||||||
|
|
||||||
if [ "${clRunning}" != "1" ] && [ "${LNTYPE}" == "cl" ]; then
|
|
||||||
# check if locked
|
|
||||||
if [ "$(sudo journalctl -n5 -u ${netprefix}lightningd | \
|
|
||||||
grep -cE 'Could not read pass from stdin|pass the --encrypted-hsm|Wrong password')" -gt 0 ];then
|
|
||||||
echo "CLwalletLocked=1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${clRunning}" == "1" ] && [ "${LNTYPE}" == "cl" ]; then
|
|
||||||
clInfo=$($lightningcli_alias getinfo 2>&1)
|
|
||||||
clBlockHeight=$(echo "${clInfo}" | jq -r '.blockheight' | tr -cd '[[:digit:]]')
|
|
||||||
scanProgress=$(echo "scale=2; $clBlockHeight*100/$total" | bc)
|
|
||||||
echo "scanProgress=${scanProgress}"
|
|
||||||
clBlockHeightPlusOne=$(expr $clBlockHeight + 1)
|
|
||||||
if [ "${total}" == "${clBlockHeight}" ] || [ "${total}" == "${clBlockHeightPlusOne}" ]; then
|
|
||||||
echo "syncedToChain=1"
|
|
||||||
else
|
|
||||||
echo "syncedToChain=0"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# touchscreen statistics
|
|
||||||
if [ "${touchscreen}" == "1" ]; then
|
|
||||||
echo "blitzTUIActive=1"
|
|
||||||
if [ ${#blitzTUIRestarts} -gt 0 ]; then
|
|
||||||
echo "blitzTUIRestarts=${blitzTUIRestarts}"
|
|
||||||
else
|
|
||||||
echo "blitzTUIRestarts=0"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "blitzTUIActive=0"
|
|
||||||
echo "blitzTUIRestarts=0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if runnig in vagrant
|
|
||||||
vagrant=$(df | grep -c "/vagrant")
|
|
||||||
echo "vagrant=${vagrant}"
|
|
||||||
|
|
||||||
# check if online if problem with other stuff
|
|
||||||
|
|
||||||
# info on scan run time
|
|
||||||
endTime=$(date +%s)
|
|
||||||
runTime=$(echo "${endTime}-${startTime}" | bc)
|
|
||||||
echo "scriptRuntime=${runTime}"
|
|
@ -13,7 +13,5 @@ if [ "${1}" != "log" ]; then
|
|||||||
echo "# FAIL: unknown parameter"
|
echo "# FAIL: unknown parameter"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# writing log file entry
|
# count for statistics in cache
|
||||||
logFile="/home/admin/systemd.${2}.log"
|
/home/admin/_cache.sh increment system_count_start_${2}
|
||||||
echo "$(date +%s) ${3}" >> ${logFile}
|
|
||||||
echo "# OK: log '${3}' written to ${logFile}"
|
|
@ -1,7 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# see issue: https://github.com/rootzoll/raspiblitz/issues/646
|
# see issue: https://github.com/rootzoll/raspiblitz/issues/646
|
||||||
# and issue: https://github.com/rootzoll/raspiblitz/issues/809
|
# and issue: https://github.com/rootzoll/raspiblitz/issues/809
|
||||||
# to work it needs to be based on Raspbian Desktop base image
|
|
||||||
# to check debug logs: sudo cat /home/pi/.cache/lxsession/LXDE-pi/run.log
|
# to check debug logs: sudo cat /home/pi/.cache/lxsession/LXDE-pi/run.log
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
@ -136,11 +135,7 @@ EOF
|
|||||||
echo "LCD is rotated into default - no touchscreen rotate"
|
echo "LCD is rotated into default - no touchscreen rotate"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# mark touchscreen as switched ON in config
|
/home/admin/config.scripts/blitz.conf.sh set touchscreen "1"
|
||||||
if [ ${#touchscreen} -eq 0 ]; then
|
|
||||||
echo "touchscreen=0" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
sudo sed -i 's/^touchscreen=.*/touchscreen=1/g' /mnt/hdd/raspiblitz.conf
|
|
||||||
|
|
||||||
echo "OK - a restart is needed: sudo shutdown -r now"
|
echo "OK - a restart is needed: sudo shutdown -r now"
|
||||||
exit 0
|
exit 0
|
||||||
@ -236,7 +231,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
sudo rm -f /etc/X11/xorg.conf.d/40-libinput.conf >/dev/null
|
sudo rm -f /etc/X11/xorg.conf.d/40-libinput.conf >/dev/null
|
||||||
|
|
||||||
# mark touchscreen as switched OFF in config
|
# mark touchscreen as switched OFF in config
|
||||||
sudo sed -i 's/^touchscreen=.*/touchscreen=0/g' /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set touchscreen "0"
|
||||||
|
|
||||||
echo "OK - a restart is needed: sudo shutdown -r now"
|
echo "OK - a restart is needed: sudo shutdown -r now"
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -53,8 +53,9 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
if [ ${#ups} -eq 0 ]; then
|
if [ ${#ups} -eq 0 ]; then
|
||||||
echo "ups=on" >> /mnt/hdd/raspiblitz.conf
|
echo "ups=on" >> /mnt/hdd/raspiblitz.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# set ups config value (in case of update)
|
# set ups config value (in case of update)
|
||||||
sudo sed -i "s/^ups=.*/ups='apcusb'/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ups "apcusb"
|
||||||
|
|
||||||
echo "OK - UPS is now connected"
|
echo "OK - UPS is now connected"
|
||||||
echo "Check status/connection with command: apcaccess"
|
echo "Check status/connection with command: apcaccess"
|
||||||
@ -116,7 +117,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
sudo systemctl stop apcupsd
|
sudo systemctl stop apcupsd
|
||||||
sudo systemctl disable apcupsd
|
sudo systemctl disable apcupsd
|
||||||
sudo apt-get remove -y apcupsd
|
sudo apt-get remove -y apcupsd
|
||||||
sudo sed -i "s/^ups=.*/ups=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ups "off"
|
||||||
else
|
else
|
||||||
echo "FAIL: unknown UPSTYPE: ${ups}"
|
echo "FAIL: unknown UPSTYPE: ${ups}"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -57,6 +57,9 @@ EOF
|
|||||||
# ToDo(frennkie) verify this
|
# ToDo(frennkie) verify this
|
||||||
sudo sed -i -E '/^.*server_names_hash_bucket_size [0-9]*;$/a \\tserver_names_hash_bucket_size 128;' /etc/nginx/nginx.conf
|
sudo sed -i -E '/^.*server_names_hash_bucket_size [0-9]*;$/a \\tserver_names_hash_bucket_size 128;' /etc/nginx/nginx.conf
|
||||||
fi
|
fi
|
||||||
|
if [ $(sudo cat /etc/nginx/nginx.conf | grep -c "# server_tokens off") -gt 0 ]; then
|
||||||
|
sudo sed -i "s/# server_tokens off;/server_tokens off;/g" /etc/nginx/nginx.conf
|
||||||
|
fi
|
||||||
|
|
||||||
echo "# Checking dhparam.pem ..."
|
echo "# Checking dhparam.pem ..."
|
||||||
if [ ! -f /etc/ssl/certs/dhparam.pem ]; then
|
if [ ! -f /etc/ssl/certs/dhparam.pem ]; then
|
||||||
|
@ -9,11 +9,6 @@ fi
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^angular_cli=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "angular_cli=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# switch on
|
# switch on
|
||||||
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||||
# check if angular_cli was installed
|
# check if angular_cli was installed
|
||||||
@ -62,7 +57,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^angular_cli=.*/angular_cli=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set angular_cli "on"
|
||||||
echo "Installed angular_cli $(node -v)"
|
echo "Installed angular_cli $(node -v)"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -70,7 +65,7 @@ fi
|
|||||||
# switch off
|
# switch off
|
||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i "s/^angular_cli=.*/angular_cli=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set angular_cli "off"
|
||||||
echo "*** REMOVING angular_cli ***"
|
echo "*** REMOVING angular_cli ***"
|
||||||
npm uninstall @angular/cli -g
|
npm uninstall @angular/cli -g
|
||||||
echo "OK angular_cli removed."
|
echo "OK angular_cli removed."
|
||||||
|
@ -13,11 +13,6 @@ fi
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^bos=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "bos=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
dialog --title " Info Balance of Satoshis " --msgbox "
|
dialog --title " Info Balance of Satoshis " --msgbox "
|
||||||
@ -86,7 +81,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
sudo -u bos bash -c 'echo "source <(bos completion bash)" >> /home/bos/.bashrc'
|
sudo -u bos bash -c 'echo "source <(bos completion bash)" >> /home/bos/.bashrc'
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^bos=.*/bos=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set bos "on"
|
||||||
|
|
||||||
echo "# Usage: https://github.com/alexbosworth/balanceofsatoshis/blob/master/README.md"
|
echo "# Usage: https://github.com/alexbosworth/balanceofsatoshis/blob/master/README.md"
|
||||||
echo "# To start type: 'sudo su bos' in the command line."
|
echo "# To start type: 'sudo su bos' in the command line."
|
||||||
@ -101,8 +96,8 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^bos=.*/bos=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set bos "off"
|
||||||
|
|
||||||
echo "*** REMOVING BALANCE OF SATOSHIS ***"
|
echo "*** REMOVING BALANCE OF SATOSHIS ***"
|
||||||
sudo userdel -rf bos
|
sudo userdel -rf bos
|
||||||
echo "# OK, bos is removed."
|
echo "# OK, bos is removed."
|
||||||
|
@ -80,11 +80,6 @@ Activate TOR to access the web block explorer from outside your local network.
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^BTCRPCexplorer=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "BTCRPCexplorer=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# status
|
# status
|
||||||
if [ "$1" = "status" ]; then
|
if [ "$1" = "status" ]; then
|
||||||
|
|
||||||
@ -188,7 +183,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
|
|
||||||
# make sure that txindex of blockchain is switched on
|
# make sure that txindex of blockchain is switched on
|
||||||
/home/admin/config.scripts/network.txindex.sh on
|
/home/admin/config.scripts/network.txindex.sh on
|
||||||
|
|
||||||
# add btcrpcexplorer user
|
# add btcrpcexplorer user
|
||||||
sudo adduser --disabled-password --gecos "" btcrpcexplorer
|
sudo adduser --disabled-password --gecos "" btcrpcexplorer
|
||||||
|
|
||||||
@ -212,7 +207,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
PASSWORD_B=$(sudo cat /mnt/hdd/${network}/${network}.conf | grep rpcpassword | cut -c 13-)
|
PASSWORD_B=$(sudo cat /mnt/hdd/${network}/${network}.conf | grep rpcpassword | cut -c 13-)
|
||||||
|
|
||||||
touch /home/admin/btc-rpc-explorer.env
|
touch /home/admin/btc-rpc-explorer.env
|
||||||
sudo chmod 600 /home/admin/btc-rpc-explorer.env || exit 1
|
sudo chmod 600 /home/admin/btc-rpc-explorer.env || exit 1
|
||||||
cat > /home/admin/btc-rpc-explorer.env <<EOF
|
cat > /home/admin/btc-rpc-explorer.env <<EOF
|
||||||
# Host/Port to bind to
|
# Host/Port to bind to
|
||||||
# Defaults: shown
|
# Defaults: shown
|
||||||
@ -255,7 +250,7 @@ EOF
|
|||||||
sudo ufw allow 3021 comment 'btc-rpc-explorer HTTPS'
|
sudo ufw allow 3021 comment 'btc-rpc-explorer HTTPS'
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# NGINX
|
# NGINX
|
||||||
##################
|
##################
|
||||||
@ -305,16 +300,16 @@ PrivateDevices=true
|
|||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
sudo mv /home/admin/btc-rpc-explorer.service /etc/systemd/system/btc-rpc-explorer.service
|
sudo mv /home/admin/btc-rpc-explorer.service /etc/systemd/system/btc-rpc-explorer.service
|
||||||
sudo systemctl enable btc-rpc-explorer
|
sudo systemctl enable btc-rpc-explorer
|
||||||
echo "# OK - the BTC-RPC-explorer service is now enabled"
|
echo "# OK - the BTC-RPC-explorer service is now enabled"
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "# BTC-RPC-explorer already installed."
|
echo "# BTC-RPC-explorer already installed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^BTCRPCexplorer=.*/BTCRPCexplorer=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set BTCRPCexplorer "on"
|
||||||
|
|
||||||
echo "# needs to finish creating txindex to be functional"
|
echo "# needs to finish creating txindex to be functional"
|
||||||
echo "# monitor with: sudo tail -n 20 -f /mnt/hdd/bitcoin/debug.log"
|
echo "# monitor with: sudo tail -n 20 -f /mnt/hdd/bitcoin/debug.log"
|
||||||
@ -325,8 +320,8 @@ EOF
|
|||||||
# Hidden Service for BTC-RPC-explorer if Tor is active
|
# Hidden Service for BTC-RPC-explorer if Tor is active
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh btc-rpc-explorer 80 3022 443 3023
|
/home/admin/config.scripts/tor.onion-service.sh btc-rpc-explorer 80 3022 443 3023
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -339,7 +334,7 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^BTCRPCexplorer=.*/BTCRPCexplorer=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set BTCRPCexplorer "off"
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/btc-rpc-explorer.service 2>/dev/null | grep -c 'btc-rpc-explorer.service')
|
isInstalled=$(sudo ls /etc/systemd/system/btc-rpc-explorer.service 2>/dev/null | grep -c 'btc-rpc-explorer.service')
|
||||||
if [ ${isInstalled} -eq 1 ]; then
|
if [ ${isInstalled} -eq 1 ]; then
|
||||||
@ -361,13 +356,13 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off btc-rpc-explorer
|
/home/admin/config.scripts/tor.onion-service.sh off btc-rpc-explorer
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "# OK BTC-RPC-explorer removed."
|
echo "# OK BTC-RPC-explorer removed."
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "# BTC-RPC-explorer is not installed."
|
echo "# BTC-RPC-explorer is not installed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ fi
|
|||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
# get cpu architecture
|
# get cpu architecture
|
||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
|
source <(/home/admin/_cache.sh get state)
|
||||||
|
|
||||||
if [ "$1" = "status" ]; then
|
if [ "$1" = "status" ]; then
|
||||||
|
|
||||||
@ -123,11 +124,11 @@ if [ "$1" = "menu" ]; then
|
|||||||
if [ ${#publicDomain} -gt 0 ]; then
|
if [ ${#publicDomain} -gt 0 ]; then
|
||||||
text="${text}
|
text="${text}
|
||||||
Public Domain: https://${publicDomain}:${httpsPort}
|
Public Domain: https://${publicDomain}:${httpsPort}
|
||||||
port forwarding on router needs to be active & may change port"
|
port forwarding on router needs to be active & may change port"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
text="${text}
|
text="${text}
|
||||||
SHA1 ${sslFingerprintIP}"
|
SHA1 ${sslFingerprintIP}"
|
||||||
|
|
||||||
if [ "${runBehindTor}" = "on" ] && [ ${#toraddress} -gt 0 ]; then
|
if [ "${runBehindTor}" = "on" ] && [ ${#toraddress} -gt 0 ]; then
|
||||||
/home/admin/config.scripts/blitz.display.sh qr "${toraddress}"
|
/home/admin/config.scripts/blitz.display.sh qr "${toraddress}"
|
||||||
@ -135,7 +136,7 @@ SHA1 ${sslFingerprintIP}"
|
|||||||
TOR Browser Hidden Service address (see the QR onLCD):
|
TOR Browser Hidden Service address (see the QR onLCD):
|
||||||
${toraddress}"
|
${toraddress}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${#ip2torDomain} -gt 0 ]; then
|
if [ ${#ip2torDomain} -gt 0 ]; then
|
||||||
text="${text}\n
|
text="${text}\n
|
||||||
IP2TOR+LetsEncrypt: https://${ip2torDomain}:${ip2torPort}
|
IP2TOR+LetsEncrypt: https://${ip2torDomain}:${ip2torPort}
|
||||||
@ -156,20 +157,12 @@ To get the 'Connection String' to activate Lightning Payments:
|
|||||||
MAINMENU > CONNECT > BTCPay Server"
|
MAINMENU > CONNECT > BTCPay Server"
|
||||||
|
|
||||||
whiptail --title " BTCPay Server " --msgbox "${text}" 17 69
|
whiptail --title " BTCPay Server " --msgbox "${text}" 17 69
|
||||||
|
|
||||||
/home/admin/config.scripts/blitz.display.sh hide
|
/home/admin/config.scripts/blitz.display.sh hide
|
||||||
echo "# please wait ..."
|
echo "# please wait ..."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default values to raspi config if needed
|
|
||||||
if ! grep -Eq "^BTCPayServer=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "BTCPayServer=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
if ! grep -Eq "^BTCPayDomain=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "BTCPayDomain=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# write-tls-macaroon
|
# write-tls-macaroon
|
||||||
if [ "$1" = "write-tls-macaroon" ]; then
|
if [ "$1" = "write-tls-macaroon" ]; then
|
||||||
|
|
||||||
@ -211,7 +204,7 @@ BTC.lightning=type=lnd-rest;server=https://127.0.0.1:8080/;macaroonfilepath=/hom
|
|||||||
s="BTC.lightning=type=lnd-rest\;server=https\://127.0.0.1:8080/\;macaroonfilepath=/home/btcpay/admin.macaroon\;"
|
s="BTC.lightning=type=lnd-rest\;server=https\://127.0.0.1:8080/\;macaroonfilepath=/home/btcpay/admin.macaroon\;"
|
||||||
sudo -u btcpay sed -i "s|^${s}certthumbprint=.*|${s}certthumbprint=$FINGERPRINT|g" /home/btcpay/.btcpayserver/Main/settings.config
|
sudo -u btcpay sed -i "s|^${s}certthumbprint=.*|${s}certthumbprint=$FINGERPRINT|g" /home/btcpay/.btcpayserver/Main/settings.config
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
sudo systemctl restart btcpayserver
|
sudo systemctl restart btcpayserver
|
||||||
fi
|
fi
|
||||||
@ -240,7 +233,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
sudo ln -sf /etc/nginx/sites-available/btcpay_tor_ssl.conf /etc/nginx/sites-enabled/
|
sudo ln -sf /etc/nginx/sites-available/btcpay_tor_ssl.conf /etc/nginx/sites-enabled/
|
||||||
sudo nginx -t
|
sudo nginx -t
|
||||||
sudo systemctl reload nginx
|
sudo systemctl reload nginx
|
||||||
|
|
||||||
# open the firewall
|
# open the firewall
|
||||||
echo "# Updating the firewall"
|
echo "# Updating the firewall"
|
||||||
sudo ufw allow 23000 comment 'allow BTCPay HTTP'
|
sudo ufw allow 23000 comment 'allow BTCPay HTTP'
|
||||||
@ -249,8 +242,8 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
|
|
||||||
# Hidden Service for BTCPay if Tor is active
|
# Hidden Service for BTCPay if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh btcpay 80 23002 443 23003
|
/home/admin/config.scripts/tor.onion-service.sh btcpay 80 23002 443 23003
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check for $BTCPayDomain
|
# check for $BTCPayDomain
|
||||||
@ -278,13 +271,13 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
sudo ln -s /mnt/hdd/app-data/.btcpayserver /home/btcpay/ 2>/dev/null
|
sudo ln -s /mnt/hdd/app-data/.btcpayserver /home/btcpay/ 2>/dev/null
|
||||||
sudo chown -R btcpay:btcpay /home/btcpay/.btcpayserver
|
sudo chown -R btcpay:btcpay /home/btcpay/.btcpayserver
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "# Installing .NET"
|
echo "# Installing .NET"
|
||||||
echo
|
echo
|
||||||
# https://dotnet.microsoft.com/download/dotnet-core/3.1
|
# https://dotnet.microsoft.com/download/dotnet-core/3.1
|
||||||
# dependencies
|
# dependencies
|
||||||
sudo apt-get -y install libunwind8 gettext libssl1.0
|
sudo apt-get -y install libunwind8 gettext libssl1.0
|
||||||
|
|
||||||
if [ "${cpu}" = "arm" ]; then
|
if [ "${cpu}" = "arm" ]; then
|
||||||
binaryVersion="arm"
|
binaryVersion="arm"
|
||||||
dotNetdirectLink="https://download.visualstudio.microsoft.com/download/pr/40edd52f-b1ca-4f0c-8d50-34433202ce9d/2b8f5b881c239a706f271f010e56159c/dotnet-sdk-3.1.413-linux-arm.tar.gz"
|
dotNetdirectLink="https://download.visualstudio.microsoft.com/download/pr/40edd52f-b1ca-4f0c-8d50-34433202ce9d/2b8f5b881c239a706f271f010e56159c/dotnet-sdk-3.1.413-linux-arm.tar.gz"
|
||||||
@ -422,7 +415,7 @@ btc.rpc.password=$PASSWORD_B
|
|||||||
sudo systemctl restart bitcoind
|
sudo systemctl restart bitcoind
|
||||||
fi
|
fi
|
||||||
sudo systemctl restart nbxplorer
|
sudo systemctl restart nbxplorer
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# BTCPayServer
|
# BTCPayServer
|
||||||
echo
|
echo
|
||||||
@ -453,7 +446,7 @@ After=nbxplorer.service
|
|||||||
[Service]
|
[Service]
|
||||||
ExecStart=/home/btcpay/dotnet/dotnet run --no-launch-profile --no-build \
|
ExecStart=/home/btcpay/dotnet/dotnet run --no-launch-profile --no-build \
|
||||||
-c Release -p \"/home/btcpay/btcpayserver/BTCPayServer/BTCPayServer.csproj\" \
|
-c Release -p \"/home/btcpay/btcpayserver/BTCPayServer/BTCPayServer.csproj\" \
|
||||||
-- --sqlitefile=sqllite.db
|
-- --sqlitefile=sqllite.db
|
||||||
User=btcpay
|
User=btcpay
|
||||||
Group=btcpay
|
Group=btcpay
|
||||||
Type=simple
|
Type=simple
|
||||||
@ -487,7 +480,7 @@ WantedBy=multi-user.target
|
|||||||
else
|
else
|
||||||
echo "# Because the system is not 'ready' the service 'btcpayserver' will not be started at this point .. its enabled and will start on next reboot"
|
echo "# Because the system is not 'ready' the service 'btcpayserver' will not be started at this point .. its enabled and will start on next reboot"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo -u btcpay mkdir -p /home/btcpay/.btcpayserver/Main/
|
sudo -u btcpay mkdir -p /home/btcpay/.btcpayserver/Main/
|
||||||
/home/admin/config.scripts/bonus.btcpayserver.sh write-tls-macaroon
|
/home/admin/config.scripts/bonus.btcpayserver.sh write-tls-macaroon
|
||||||
|
|
||||||
@ -502,7 +495,7 @@ WantedBy=multi-user.target
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^BTCPayServer=.*/BTCPayServer=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set BTCPayServer "on"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -525,11 +518,11 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "# deleteData(${deleteData})"
|
echo "# deleteData(${deleteData})"
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^BTCPayServer=.*/BTCPayServer=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set BTCPayServer "off"
|
||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off btcpay
|
/home/admin/config.scripts/tor.onion-service.sh off btcpay
|
||||||
fi
|
fi
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/btcpayserver.service 2>/dev/null | grep -c 'btcpayserver.service')
|
isInstalled=$(sudo ls /etc/systemd/system/btcpayserver.service 2>/dev/null | grep -c 'btcpayserver.service')
|
||||||
|
@ -25,11 +25,6 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^chantools=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "chantools=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
dialog --title " Channel Tools ${pinnedVersion} " --msgbox "\n
|
dialog --title " Channel Tools ${pinnedVersion} " --msgbox "\n
|
||||||
@ -130,7 +125,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^chantools=.*/chantools=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set chantools "on"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Installed ${installed}"
|
echo "Installed ${installed}"
|
||||||
@ -147,7 +142,7 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^chantools=.*/chantools=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set chantools "off"
|
||||||
|
|
||||||
echo "# REMOVING Channel Tools"
|
echo "# REMOVING Channel Tools"
|
||||||
sudo rm -rf /home/admin/download/chantools*
|
sudo rm -rf /home/admin/download/chantools*
|
||||||
|
@ -18,11 +18,6 @@ fi
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspiblitz.conf if needed
|
|
||||||
if ! grep -Eq "^circuitbreaker=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "circuitbreaker=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/circuitbreaker.service 2>/dev/null | grep -c 'circuitbreaker.service')
|
isInstalled=$(sudo ls /etc/systemd/system/circuitbreaker.service 2>/dev/null | grep -c 'circuitbreaker.service')
|
||||||
|
|
||||||
# switch on
|
# switch on
|
||||||
@ -124,13 +119,13 @@ WantedBy=multi-user.target
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^circuitbreaker=.*/circuitbreaker=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set circuitbreaker "on"
|
||||||
|
|
||||||
isInstalled=$(sudo -u circuitbreaker /home/circuitbreaker/go/bin/circuitbreaker --version | grep -c "circuitbreaker version")
|
isInstalled=$(sudo -u circuitbreaker /home/circuitbreaker/go/bin/circuitbreaker --version | grep -c "circuitbreaker version")
|
||||||
if [ ${isInstalled} -eq 1 ]; then
|
if [ ${isInstalled} -eq 1 ]; then
|
||||||
echo
|
echo
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# OK - the circuitbreaker.service is enabled, system is on ready so starting service"
|
echo "# OK - the circuitbreaker.service is enabled, system is on ready so starting service"
|
||||||
sudo systemctl start circuitbreaker
|
sudo systemctl start circuitbreaker
|
||||||
@ -163,7 +158,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspiblitz.conf
|
# setting value in raspiblitz.conf
|
||||||
sudo sed -i "s/^circuitbreaker=.*/circuitbreaker=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set circuitbreaker "off"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
@ -162,7 +162,7 @@ This can take multiple hours.
|
|||||||
" 9 48
|
" 9 48
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${nginxTest} -eq 0 ]; then
|
if [ ${nginxTest} -eq 0 ]; then
|
||||||
dialog --title "Testing nginx.conf has failed" --msgbox "
|
dialog --title "Testing nginx.conf has failed" --msgbox "
|
||||||
Nginx is in a failed state. Will attempt to fix.
|
Nginx is in a failed state. Will attempt to fix.
|
||||||
@ -201,7 +201,7 @@ Check 'sudo nginx -t' for a detailed error message.
|
|||||||
echo "- deactivate automatic server selection"
|
echo "- deactivate automatic server selection"
|
||||||
echo "- as manual server set '${localip}' & '${portSSL}'"
|
echo "- as manual server set '${localip}' & '${portSSL}'"
|
||||||
echo "- laptop and RaspiBlitz need to be within same local network"
|
echo "- laptop and RaspiBlitz need to be within same local network"
|
||||||
echo
|
echo
|
||||||
echo "To start directly from laptop terminal use:"
|
echo "To start directly from laptop terminal use:"
|
||||||
echo "electrum --oneserver --server ${localip}:${portSSL}:s"
|
echo "electrum --oneserver --server ${localip}:${portSSL}:s"
|
||||||
if [ ${TorRunning} -eq 1 ]; then
|
if [ ${TorRunning} -eq 1 ]; then
|
||||||
@ -209,21 +209,21 @@ Check 'sudo nginx -t' for a detailed error message.
|
|||||||
echo "The Tor Hidden Service address for electrs is (see LCD for QR code):"
|
echo "The Tor Hidden Service address for electrs is (see LCD for QR code):"
|
||||||
echo "${TORaddress}"
|
echo "${TORaddress}"
|
||||||
echo
|
echo
|
||||||
echo "To connect through TOR open the Tor Browser and start with the options:"
|
echo "To connect through TOR open the Tor Browser and start with the options:"
|
||||||
echo "electrum --oneserver --server ${TORaddress}:50002:s --proxy socks5:127.0.0.1:9150"
|
echo "electrum --oneserver --server ${TORaddress}:50002:s --proxy socks5:127.0.0.1:9150"
|
||||||
/home/admin/config.scripts/blitz.display.sh qr "${TORaddress}"
|
/home/admin/config.scripts/blitz.display.sh qr "${TORaddress}"
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
echo "For more details check the RaspiBlitz README on ElectRS:"
|
echo "For more details check the RaspiBlitz README on ElectRS:"
|
||||||
echo "https://github.com/rootzoll/raspiblitz"
|
echo "https://github.com/rootzoll/raspiblitz"
|
||||||
echo
|
echo
|
||||||
echo "Press ENTER to get back to main menu."
|
echo "Press ENTER to get back to main menu."
|
||||||
read key
|
read key
|
||||||
/home/admin/config.scripts/blitz.display.sh hide
|
/home/admin/config.scripts/blitz.display.sh hide
|
||||||
;;
|
;;
|
||||||
STATUS)
|
STATUS)
|
||||||
sudo /home/admin/config.scripts/bonus.electrs.sh status
|
sudo /home/admin/config.scripts/bonus.electrs.sh status
|
||||||
echo
|
echo
|
||||||
echo "Press ENTER to get back to main menu."
|
echo "Press ENTER to get back to main menu."
|
||||||
read key
|
read key
|
||||||
;;
|
;;
|
||||||
@ -237,7 +237,7 @@ Check 'sudo nginx -t' for a detailed error message.
|
|||||||
echo "# starting service"
|
echo "# starting service"
|
||||||
sudo systemctl start electrs
|
sudo systemctl start electrs
|
||||||
echo "# ok"
|
echo "# ok"
|
||||||
echo
|
echo
|
||||||
echo "Press ENTER to get back to main menu."
|
echo "Press ENTER to get back to main menu."
|
||||||
read key
|
read key
|
||||||
;;
|
;;
|
||||||
@ -246,11 +246,6 @@ Check 'sudo nginx -t' for a detailed error message.
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^ElectRS=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "ElectRS=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# stop service
|
# stop service
|
||||||
echo "# Making sure services are not running"
|
echo "# Making sure services are not running"
|
||||||
sudo systemctl stop electrs 2>/dev/null
|
sudo systemctl stop electrs 2>/dev/null
|
||||||
@ -263,7 +258,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
if [ ${isInstalled} -eq 0 ]; then
|
if [ ${isInstalled} -eq 0 ]; then
|
||||||
|
|
||||||
#cleanup
|
#cleanup
|
||||||
sudo rm -f /home/electrs/.electrs/config.toml
|
sudo rm -f /home/electrs/.electrs/config.toml
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "# Creating the electrs user"
|
echo "# Creating the electrs user"
|
||||||
@ -282,7 +277,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
echo "# Downloading and building electrs $ELECTRSVERSION. This will take ~40 minutes"
|
echo "# Downloading and building electrs $ELECTRSVERSION. This will take ~40 minutes"
|
||||||
echo
|
echo
|
||||||
sudo -u electrs git clone https://github.com/romanz/electrs
|
sudo -u electrs git clone https://github.com/romanz/electrs
|
||||||
cd /home/electrs/electrs || exit 1
|
cd /home/electrs/electrs || exit 1
|
||||||
sudo -u electrs git reset --hard $ELECTRSVERSION
|
sudo -u electrs git reset --hard $ELECTRSVERSION
|
||||||
sudo -u electrs /home/admin/config.scripts/blitz.git-verify.sh \
|
sudo -u electrs /home/admin/config.scripts/blitz.git-verify.sh \
|
||||||
"${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1
|
"${PGPsigner}" "${PGPpubkeyLink}" "${PGPpubkeyFingerprint}" || exit 1
|
||||||
@ -395,7 +390,7 @@ stream {
|
|||||||
echo
|
echo
|
||||||
echo "# Installing the systemd service"
|
echo "# Installing the systemd service"
|
||||||
echo
|
echo
|
||||||
# sudo nano /etc/systemd/system/electrs.service
|
# sudo nano /etc/systemd/system/electrs.service
|
||||||
echo "
|
echo "
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Electrs
|
Description=Electrs
|
||||||
@ -423,17 +418,17 @@ WantedBy=multi-user.target
|
|||||||
sudo systemctl enable electrs
|
sudo systemctl enable electrs
|
||||||
# manual start:
|
# manual start:
|
||||||
# sudo -u electrs /home/electrs/.cargo/bin/cargo run --release -- --index-batch-size=10 --electrum-rpc-addr="0.0.0.0:50001"
|
# sudo -u electrs /home/electrs/.cargo/bin/cargo run --release -- --index-batch-size=10 --electrum-rpc-addr="0.0.0.0:50001"
|
||||||
else
|
else
|
||||||
echo "# ElectRS is already installed."
|
echo "# ElectRS is already installed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i "s/^ElectRS=.*/ElectRS=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ElectRS "on"
|
||||||
|
|
||||||
# Hidden Service for electrs if Tor active
|
# Hidden Service for electrs if Tor active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh electrs 50002 50002 50001 50001
|
/home/admin/config.scripts/tor.onion-service.sh electrs 50002 50002 50001 50001
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# whitelist downloading to localhost from bitcoind
|
# whitelist downloading to localhost from bitcoind
|
||||||
@ -441,8 +436,8 @@ WantedBy=multi-user.target
|
|||||||
echo "whitelist=download@127.0.0.1" | sudo tee -a /mnt/hdd/bitcoin/bitcoin.conf
|
echo "whitelist=download@127.0.0.1" | sudo tee -a /mnt/hdd/bitcoin/bitcoin.conf
|
||||||
bitcoindRestart=yes
|
bitcoindRestart=yes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
if [ "${bitcoindRestart}" == "yes" ]; then
|
if [ "${bitcoindRestart}" == "yes" ]; then
|
||||||
sudo systemctl restart bitcoind
|
sudo systemctl restart bitcoind
|
||||||
@ -459,7 +454,7 @@ WantedBy=multi-user.target
|
|||||||
echo
|
echo
|
||||||
echo "# To connect through SSL from outside of the local network make sure the port 50002 is forwarded on the router"
|
echo "# To connect through SSL from outside of the local network make sure the port 50002 is forwarded on the router"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -467,7 +462,7 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i "s/^ElectRS=.*/ElectRS=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ElectRS "off"
|
||||||
|
|
||||||
# if second parameter is "deleteindex"
|
# if second parameter is "deleteindex"
|
||||||
if [ "$2" == "deleteindex" ]; then
|
if [ "$2" == "deleteindex" ]; then
|
||||||
@ -477,7 +472,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off electrs
|
/home/admin/config.scripts/tor.onion-service.sh off electrs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/electrs.service 2>/dev/null | grep -c 'electrs.service')
|
isInstalled=$(sudo ls /etc/systemd/system/electrs.service 2>/dev/null | grep -c 'electrs.service')
|
||||||
@ -487,10 +482,10 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
sudo systemctl disable electrs
|
sudo systemctl disable electrs
|
||||||
sudo rm /etc/systemd/system/electrs.service
|
sudo rm /etc/systemd/system/electrs.service
|
||||||
# delete user and home directory
|
# delete user and home directory
|
||||||
sudo userdel -rf electrs
|
sudo userdel -rf electrs
|
||||||
# close ports on firewall
|
# close ports on firewall
|
||||||
sudo ufw deny 50001
|
sudo ufw deny 50001
|
||||||
sudo ufw deny 50002
|
sudo ufw deny 50002
|
||||||
echo "# OK ElectRS removed."
|
echo "# OK ElectRS removed."
|
||||||
|
|
||||||
# restart BTC-RPC-Explorer to reconfigure itself to use electrs for address API
|
# restart BTC-RPC-Explorer to reconfigure itself to use electrs for address API
|
||||||
@ -498,8 +493,8 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
sudo systemctl restart btc-rpc-explorer
|
sudo systemctl restart btc-rpc-explorer
|
||||||
echo "# BTC-RPC-Explorer restarted"
|
echo "# BTC-RPC-Explorer restarted"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "# ElectRS is not installed."
|
echo "# ElectRS is not installed."
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -24,6 +24,7 @@ mode="$1"
|
|||||||
|
|
||||||
# GATHER DATA
|
# GATHER DATA
|
||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
|
source <(/home/admin/_cache.sh get state)
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# setting download directory
|
# setting download directory
|
||||||
@ -242,10 +243,7 @@ WantedBy=multi-user.target
|
|||||||
sudo chown -R faraday:faraday /home/faraday/.faraday
|
sudo chown -R faraday:faraday /home/faraday/.faraday
|
||||||
|
|
||||||
echo "# flag in raspiblitz config"
|
echo "# flag in raspiblitz config"
|
||||||
if [ ${#faraday} -eq 0 ]; then
|
/home/admin/config.scripts/blitz.conf.sh set faraday "on"
|
||||||
echo "faraday='on'" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
sudo sed -i "s/^faraday=.*/faraday=on/g" /mnt/hdd/raspiblitz.conf
|
|
||||||
|
|
||||||
echo "# OK Faraday is installed"
|
echo "# OK Faraday is installed"
|
||||||
echo "# please 'restart' for clean creation of faraday tls/macaroons"
|
echo "# please 'restart' for clean creation of faraday tls/macaroons"
|
||||||
@ -267,7 +265,7 @@ if [ "${mode}" = "off" ] || [ "${mode}" = "0" ]; then
|
|||||||
sudo userdel -r -f faraday
|
sudo userdel -r -f faraday
|
||||||
|
|
||||||
echo "# modify config file"
|
echo "# modify config file"
|
||||||
sudo sed -i "s/^faraday=.*/faraday=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set faraday "off"
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
|
@ -21,8 +21,8 @@ elif [ "${chain}net" == "signet" ]; then
|
|||||||
BITCOINRPCPORT=38332
|
BITCOINRPCPORT=38332
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check and set up the HS
|
# check and set up the HS
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh bitcoin${BITCOINRPCPORT} ${BITCOINRPCPORT} ${BITCOINRPCPORT}
|
/home/admin/config.scripts/tor.onion-service.sh bitcoin${BITCOINRPCPORT} ${BITCOINRPCPORT} ${BITCOINRPCPORT}
|
||||||
|
|
||||||
hiddenService=$(sudo cat /mnt/hdd/tor/bitcoin${BITCOINRPCPORT}/hostname)
|
hiddenService=$(sudo cat /mnt/hdd/tor/bitcoin${BITCOINRPCPORT}/hostname)
|
||||||
# https://github.com/rootzoll/raspiblitz/issues/2339
|
# https://github.com/rootzoll/raspiblitz/issues/2339
|
||||||
@ -33,7 +33,7 @@ fi
|
|||||||
echo "# The Hidden Service for bitcoind port ${BITCOINRPCPORT} is:"
|
echo "# The Hidden Service for bitcoind port ${BITCOINRPCPORT} is:"
|
||||||
echo "${hiddenService}"
|
echo "${hiddenService}"
|
||||||
|
|
||||||
# btcstandup://<rpcuser>:<rpcpassword>@<hidden service hostname>:<hidden service port>/?label=<optional node label>
|
# btcstandup://<rpcuser>:<rpcpassword>@<hidden service hostname>:<hidden service port>/?label=<optional node label>
|
||||||
quickConnect="btcstandup://${RPC_USER}:${PASSWORD_B}@${hiddenService}:${BITCOINRPCPORT}/?label=${hostname}"
|
quickConnect="btcstandup://${RPC_USER}:${PASSWORD_B}@${hiddenService}:${BITCOINRPCPORT}/?label=${hostname}"
|
||||||
echo
|
echo
|
||||||
echo "scan the QR Code with Fully Noded to connect to your node:"
|
echo "scan the QR Code with Fully Noded to connect to your node:"
|
||||||
|
@ -27,11 +27,6 @@ fi
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^joinmarket=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "joinmarket=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
whiptail --title " JoinMarket info " --msgbox "
|
whiptail --title " JoinMarket info " --msgbox "
|
||||||
@ -183,7 +178,7 @@ fi
|
|||||||
|
|
||||||
if [ -f "/home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate" ] ; then
|
if [ -f "/home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate" ] ; then
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^joinmarket=.*/joinmarket=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set joinmarket "on"
|
||||||
# starting info
|
# starting info
|
||||||
echo
|
echo
|
||||||
echo "# Start to use by logging in to the 'joinmarket' user with:"
|
echo "# Start to use by logging in to the 'joinmarket' user with:"
|
||||||
@ -202,7 +197,7 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^joinmarket=.*/joinmarket=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set joinmarket "off"
|
||||||
|
|
||||||
if [ -f "/home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate" ] ; then
|
if [ -f "/home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate" ] ; then
|
||||||
echo "# REMOVING JOINMARKET"
|
echo "# REMOVING JOINMARKET"
|
||||||
|
@ -21,6 +21,7 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
|
source <(/home/admin/_cache.sh get state)
|
||||||
|
|
||||||
# switch on
|
# switch on
|
||||||
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||||
@ -164,7 +165,7 @@ PATH=/bin:/usr/bin:/usr/local/bin
|
|||||||
echo "Switch to the '$USERNAME' user and adapt the settings in $CONFIG_FILE"
|
echo "Switch to the '$USERNAME' user and adapt the settings in $CONFIG_FILE"
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
grep -q '^kindleDisplay' $RASPIBLITZ_FILE && sudo sed -i "s/^kindleDisplay=.*/kindleDisplay=on/g" $RASPIBLITZ_FILE || echo 'kindleDisplay=on' >> $RASPIBLITZ_FILE
|
/home/admin/config.scripts/blitz.conf.sh set kindleDisplay "on"
|
||||||
else
|
else
|
||||||
echo "KINDLE-DISPLAY already installed."
|
echo "KINDLE-DISPLAY already installed."
|
||||||
fi
|
fi
|
||||||
@ -181,7 +182,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "*** REMOVING KINDLE-DISPLAY ***"
|
echo "*** REMOVING KINDLE-DISPLAY ***"
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^kindleDisplay=.*/kindleDisplay=off/g" $RASPIBLITZ_FILE
|
/home/admin/config.scripts/blitz.conf.sh set kindleDisplay "off"
|
||||||
|
|
||||||
# uninstall service
|
# uninstall service
|
||||||
sudo systemctl stop kindle-display
|
sudo systemctl stop kindle-display
|
||||||
|
@ -183,7 +183,6 @@ function refresh_certs_with_nginx() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# running as admin
|
# running as admin
|
||||||
###################
|
###################
|
||||||
@ -193,13 +192,6 @@ if [ "${EUID}" != "${adminUserId}" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# add default value to RaspiBlitz config if needed
|
|
||||||
if ! grep -Eq "^letsencrypt" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "letsencrypt=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# update status
|
# update status
|
||||||
###################
|
###################
|
||||||
@ -213,7 +205,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
echo "*** INSTALLING Let's Encrypt Client 'acme.sh' ***"
|
echo "*** INSTALLING Let's Encrypt Client 'acme.sh' ***"
|
||||||
|
|
||||||
# setting value in RaspiBlitz config
|
# setting value in RaspiBlitz config
|
||||||
sudo sed -i "s/^letsencrypt=.*/letsencrypt=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set letsencrypt "on"
|
||||||
|
|
||||||
address="$2"
|
address="$2"
|
||||||
if [ "$2" == "enter-email" ]; then
|
if [ "$2" == "enter-email" ]; then
|
||||||
@ -391,7 +383,7 @@ elif [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "*** UNINSTALLING Let's Encrypt Client 'acme.sh' ***"
|
echo "*** UNINSTALLING Let's Encrypt Client 'acme.sh' ***"
|
||||||
|
|
||||||
# setting value in RaspiBlitz config
|
# setting value in RaspiBlitz config
|
||||||
sudo sed -i "s/^letsencrypt=.*/letsencrypt=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set letsencrypt "off"
|
||||||
|
|
||||||
"${ACME_INSTALL_HOME}/acme.sh" --uninstall \
|
"${ACME_INSTALL_HOME}/acme.sh" --uninstall \
|
||||||
--home "${ACME_INSTALL_HOME}" \
|
--home "${ACME_INSTALL_HOME}" \
|
||||||
|
@ -12,7 +12,7 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# check who signed the release in https://github.com/lightninglabs/lightning-terminal/releases
|
# check who signed the release in https://github.com/lightninglabs/lightning-terminal/releases
|
||||||
PGPsigner="guggero"
|
PGPsigner="guggero"
|
||||||
|
|
||||||
if [ $PGPsigner = guggero ];then
|
if [ $PGPsigner = guggero ];then
|
||||||
PGPpkeys="https://keybase.io/guggero/pgp_keys.asc"
|
PGPpkeys="https://keybase.io/guggero/pgp_keys.asc"
|
||||||
@ -24,11 +24,6 @@ fi
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^lit=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "lit=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
|
|
||||||
@ -88,10 +83,10 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
echo "# Replacing single install of: FARADAY"
|
echo "# Replacing single install of: FARADAY"
|
||||||
/home/admin/config.scripts/bonus.faraday.sh off
|
/home/admin/config.scripts/bonus.faraday.sh off
|
||||||
fi
|
fi
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/litd.service 2>/dev/null | grep -c 'litd.service')
|
isInstalled=$(sudo ls /etc/systemd/system/litd.service 2>/dev/null | grep -c 'litd.service')
|
||||||
if [ ${isInstalled} -eq 0 ]; then
|
if [ ${isInstalled} -eq 0 ]; then
|
||||||
|
|
||||||
# create dedicated user
|
# create dedicated user
|
||||||
sudo adduser --disabled-password --gecos "" lit
|
sudo adduser --disabled-password --gecos "" lit
|
||||||
# make sure symlink to central app-data directory exists
|
# make sure symlink to central app-data directory exists
|
||||||
@ -138,7 +133,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
sudo rm -rf /home/lit/.loop # not a symlink.. delete it silently
|
sudo rm -rf /home/lit/.loop # not a symlink.. delete it silently
|
||||||
sudo ln -s /mnt/hdd/app-data/.loop/ /home/lit/.loop
|
sudo ln -s /mnt/hdd/app-data/.loop/ /home/lit/.loop
|
||||||
sudo chown lit:lit -R /mnt/hdd/app-data/.loop
|
sudo chown lit:lit -R /mnt/hdd/app-data/.loop
|
||||||
|
|
||||||
echo "# Pool"
|
echo "# Pool"
|
||||||
echo "# remove so can't be used parallel with LiT"
|
echo "# remove so can't be used parallel with LiT"
|
||||||
config.scripts/bonus.pool.sh off
|
config.scripts/bonus.pool.sh off
|
||||||
@ -149,7 +144,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
sudo ln -s /mnt/hdd/app-data/.pool/ /home/lit/.pool
|
sudo ln -s /mnt/hdd/app-data/.pool/ /home/lit/.pool
|
||||||
sudo chown lit:lit -R /mnt/hdd/app-data/.pool
|
sudo chown lit:lit -R /mnt/hdd/app-data/.pool
|
||||||
|
|
||||||
echo "Detect CPU architecture ..."
|
echo "Detect CPU architecture ..."
|
||||||
isARM=$(uname -m | grep -c 'arm')
|
isARM=$(uname -m | grep -c 'arm')
|
||||||
isAARCH64=$(uname -m | grep -c 'aarch64')
|
isAARCH64=$(uname -m | grep -c 'aarch64')
|
||||||
isX86_64=$(uname -m | grep -c 'x86_64')
|
isX86_64=$(uname -m | grep -c 'x86_64')
|
||||||
@ -175,7 +170,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
OSversion="arm64"
|
OSversion="arm64"
|
||||||
elif [ ${isX86_64} -eq 1 ] ; then
|
elif [ ${isX86_64} -eq 1 ] ; then
|
||||||
OSversion="amd64"
|
OSversion="amd64"
|
||||||
fi
|
fi
|
||||||
SHA256=$(grep -i "linux-$OSversion" manifest-v$LITVERSION.txt | cut -d " " -f1)
|
SHA256=$(grep -i "linux-$OSversion" manifest-v$LITVERSION.txt | cut -d " " -f1)
|
||||||
|
|
||||||
echo
|
echo
|
||||||
@ -304,7 +299,7 @@ WantedBy=multi-user.target
|
|||||||
sudo systemctl enable litd
|
sudo systemctl enable litd
|
||||||
echo "OK - the Lightning lit service is now enabled"
|
echo "OK - the Lightning lit service is now enabled"
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "# The Lightning Terminal is already installed."
|
echo "# The Lightning Terminal is already installed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -325,12 +320,12 @@ alias lit-frcli=\"frcli --rpcserver=localhost:8443 \
|
|||||||
sudo ufw allow 8443 comment "Lightning Terminal"
|
sudo ufw allow 8443 comment "Lightning Terminal"
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^lit=.*/lit=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lit "on"
|
||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh lit 443 8443
|
/home/admin/config.scripts/tor.onion-service.sh lit 443 8443
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# in case RTL is installed - check to connect
|
# in case RTL is installed - check to connect
|
||||||
@ -338,8 +333,8 @@ alias lit-frcli=\"frcli --rpcserver=localhost:8443 \
|
|||||||
sudo /home/admin/config.scripts/bonus.rtl.sh connect-services
|
sudo /home/admin/config.scripts/bonus.rtl.sh connect-services
|
||||||
sudo systemctl restart RTL 2>/dev/null
|
sudo systemctl restart RTL 2>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# OK - the litd.service is enabled, system is ready so starting service"
|
echo "# OK - the litd.service is enabled, system is ready so starting service"
|
||||||
sudo systemctl start litd
|
sudo systemctl start litd
|
||||||
@ -367,19 +362,19 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "# OK, the lit.service is removed."
|
echo "# OK, the lit.service is removed."
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off lit
|
/home/admin/config.scripts/tor.onion-service.sh off lit
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "# LiT is not installed."
|
echo "# LiT is not installed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# clean up anyway
|
# clean up anyway
|
||||||
# delete user
|
# delete user
|
||||||
sudo userdel -rf lit
|
sudo userdel -rf lit
|
||||||
# delete group
|
# delete group
|
||||||
sudo groupdel lit
|
sudo groupdel lit
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^lit=.*/lit=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lit "off"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -387,4 +382,4 @@ fi
|
|||||||
echo "FAIL - Unknown Parameter $1"
|
echo "FAIL - Unknown Parameter $1"
|
||||||
echo "may need reboot to run normal again"
|
echo "may need reboot to run normal again"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
|
@ -38,12 +38,12 @@ if [ "$1" = "menu" ]; then
|
|||||||
if [ ${#publicDomain} -gt 0 ]; then
|
if [ ${#publicDomain} -gt 0 ]; then
|
||||||
text="${text}
|
text="${text}
|
||||||
Public Domain: https://${publicDomain}:${httpsPort}
|
Public Domain: https://${publicDomain}:${httpsPort}
|
||||||
port forwarding on router needs to be active & may change port"
|
port forwarding on router needs to be active & may change port"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
text="${text}\n
|
text="${text}\n
|
||||||
You need to accept self-signed HTTPS cert with SHA1 Fingerprint:
|
You need to accept self-signed HTTPS cert with SHA1 Fingerprint:
|
||||||
${sslFingerprintIP}"
|
${sslFingerprintIP}"
|
||||||
|
|
||||||
if [ "${runBehindTor}" = "on" ] && [ ${#toraddress} -gt 0 ]; then
|
if [ "${runBehindTor}" = "on" ] && [ ${#toraddress} -gt 0 ]; then
|
||||||
/home/admin/config.scripts/blitz.display.sh qr "${toraddress}"
|
/home/admin/config.scripts/blitz.display.sh qr "${toraddress}"
|
||||||
@ -51,7 +51,7 @@ ${sslFingerprintIP}"
|
|||||||
TOR Browser Hidden Service address (QR see LCD):
|
TOR Browser Hidden Service address (QR see LCD):
|
||||||
${toraddress}"
|
${toraddress}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${#ip2torDomain} -gt 0 ]; then
|
if [ ${#ip2torDomain} -gt 0 ]; then
|
||||||
text="${text}\n
|
text="${text}\n
|
||||||
IP2TOR+LetsEncrypt: https://${ip2torDomain}:${ip2torPort}
|
IP2TOR+LetsEncrypt: https://${ip2torDomain}:${ip2torPort}
|
||||||
@ -68,17 +68,12 @@ consider adding a IP2TOR Bridge (MAINMENU > SUBSCRIBE)."
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
whiptail --title " LNbits " --msgbox "${text}" 16 69
|
whiptail --title " LNbits " --msgbox "${text}" 16 69
|
||||||
|
|
||||||
/home/admin/config.scripts/blitz.display.sh hide
|
/home/admin/config.scripts/blitz.display.sh hide
|
||||||
echo "please wait ..."
|
echo "please wait ..."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^LNBits=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "LNBits=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# status
|
# status
|
||||||
if [ "$1" = "status" ]; then
|
if [ "$1" = "status" ]; then
|
||||||
|
|
||||||
@ -340,7 +335,7 @@ EOF
|
|||||||
|
|
||||||
sudo systemctl enable lnbits
|
sudo systemctl enable lnbits
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# OK - lnbits service is enabled, system is on ready so starting lnbits service"
|
echo "# OK - lnbits service is enabled, system is on ready so starting lnbits service"
|
||||||
sudo systemctl start lnbits
|
sudo systemctl start lnbits
|
||||||
@ -369,13 +364,13 @@ EOF
|
|||||||
sudo systemctl reload nginx
|
sudo systemctl reload nginx
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^LNBits=.*/LNBits=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set LNBits "on"
|
||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh lnbits 80 5002 443 5003
|
/home/admin/config.scripts/tor.onion-service.sh lnbits 80 5002 443 5003
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -399,7 +394,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "# deleteData(${deleteData})"
|
echo "# deleteData(${deleteData})"
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^LNBits=.*/LNBits=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set LNBits "off"
|
||||||
|
|
||||||
# remove nginx symlinks
|
# remove nginx symlinks
|
||||||
sudo rm -f /etc/nginx/sites-enabled/lnbits_ssl.conf
|
sudo rm -f /etc/nginx/sites-enabled/lnbits_ssl.conf
|
||||||
@ -413,7 +408,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off lnbits
|
/home/admin/config.scripts/tor.onion-service.sh off lnbits
|
||||||
fi
|
fi
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/lnbits.service 2>/dev/null | grep -c 'lnbits.service')
|
isInstalled=$(sudo ls /etc/systemd/system/lnbits.service 2>/dev/null | grep -c 'lnbits.service')
|
||||||
|
@ -15,11 +15,6 @@ gpgFingerprint="0453B9F5071261A40FDB34181965063FC13BEBE2"
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^lndmanage=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "lndmanage=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
dialog --title " Info lndmanage " --msgbox "\n\
|
dialog --title " Info lndmanage " --msgbox "\n\
|
||||||
@ -92,7 +87,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^lndmanage=.*/lndmanage=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lndmanage "on"
|
||||||
echo "#######################################################################"
|
echo "#######################################################################"
|
||||||
echo "# OK install done"
|
echo "# OK install done"
|
||||||
echo "#######################################################################"
|
echo "#######################################################################"
|
||||||
@ -107,7 +102,7 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^lndmanage=.*/lndmanage=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lndmanage "off"
|
||||||
|
|
||||||
echo "*** REMOVING LNDMANAGE ***"
|
echo "*** REMOVING LNDMANAGE ***"
|
||||||
sudo rm -rf /home/admin/lndmanage
|
sudo rm -rf /home/admin/lndmanage
|
||||||
|
@ -15,13 +15,6 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^loop=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "loop=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
dialog --title " Info Loop Service " --msgbox "\n\
|
dialog --title " Info Loop Service " --msgbox "\n\
|
||||||
@ -152,7 +145,7 @@ WantedBy=multi-user.target
|
|||||||
sudo /home/admin/config.scripts/bonus.rtl.sh connect-services
|
sudo /home/admin/config.scripts/bonus.rtl.sh connect-services
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^loop=.*/loop=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set loop "on"
|
||||||
|
|
||||||
isInstalled=$(sudo -u loop /home/loop/go/bin/loop | grep -c loop)
|
isInstalled=$(sudo -u loop /home/loop/go/bin/loop | grep -c loop)
|
||||||
if [ ${isInstalled} -gt 0 ] ; then
|
if [ ${isInstalled} -gt 0 ] ; then
|
||||||
@ -169,7 +162,7 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^loop=.*/loop=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set loop "off"
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/loopd.service 2>/dev/null | grep -c 'loopd.service')
|
isInstalled=$(sudo ls /etc/systemd/system/loopd.service 2>/dev/null | grep -c 'loopd.service')
|
||||||
if [ ${isInstalled} -eq 1 ]; then
|
if [ ${isInstalled} -eq 1 ]; then
|
||||||
|
@ -67,11 +67,6 @@ Activate TOR to access the web block explorer from outside your local network.
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^mempoolExplorer=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "mempoolExplorer=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# status
|
# status
|
||||||
if [ "$1" = "status" ]; then
|
if [ "$1" = "status" ]; then
|
||||||
|
|
||||||
@ -280,7 +275,7 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# start the service if ready
|
# start the service if ready
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# OK - the mempool.service is enabled, system is on ready so starting service"
|
echo "# OK - the mempool.service is enabled, system is on ready so starting service"
|
||||||
sudo systemctl start mempool
|
sudo systemctl start mempool
|
||||||
@ -289,17 +284,16 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^mempoolExplorer=.*/mempoolExplorer=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set mempoolExplorer "on"
|
||||||
|
|
||||||
echo "# needs to finish creating txindex to be functional"
|
echo "# needs to finish creating txindex to be functional"
|
||||||
echo "# monitor with: sudo tail -n 20 -f /mnt/hdd/bitcoin/debug.log"
|
echo "# monitor with: sudo tail -n 20 -f /mnt/hdd/bitcoin/debug.log"
|
||||||
|
|
||||||
|
|
||||||
# Hidden Service for Mempool if Tor is active
|
# Hidden Service for Mempool if Tor is active
|
||||||
source /mnt/hdd/raspiblitz.conf
|
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh mempool 80 4082 443 4083
|
/home/admin/config.scripts/tor.onion-service.sh mempool 80 4082 443 4083
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -308,7 +302,7 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^mempoolExplorer=.*/mempoolExplorer=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set mempoolExplorer "off"
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/mempool.service 2>/dev/null | grep -c 'mempool.service')
|
isInstalled=$(sudo ls /etc/systemd/system/mempool.service 2>/dev/null | grep -c 'mempool.service')
|
||||||
if [ ${isInstalled} -eq 1 ]; then
|
if [ ${isInstalled} -eq 1 ]; then
|
||||||
@ -336,8 +330,8 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off mempool
|
/home/admin/config.scripts/tor.onion-service.sh off mempool
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "# OK Mempool removed."
|
echo "# OK Mempool removed."
|
||||||
@ -355,14 +349,14 @@ fi
|
|||||||
# update
|
# update
|
||||||
if [ "$1" = "update" ]; then
|
if [ "$1" = "update" ]; then
|
||||||
echo "*** Checking Mempool Explorer Version ***"
|
echo "*** Checking Mempool Explorer Version ***"
|
||||||
|
|
||||||
cd /home/mempool/mempool
|
cd /home/mempool/mempool
|
||||||
|
|
||||||
localVersion=$(git describe --tag)
|
localVersion=$(git describe --tag)
|
||||||
updateVersion=$(curl -s https://api.github.com/repos/mempool/mempool/releases/latest|grep tag_name|head -1|cut -d '"' -f4)
|
updateVersion=$(curl -s https://api.github.com/repos/mempool/mempool/releases/latest|grep tag_name|head -1|cut -d '"' -f4)
|
||||||
|
|
||||||
if [ $localVersion = $updateVersion ]; then
|
if [ $localVersion = $updateVersion ]; then
|
||||||
echo "*** You are up-to-date on version $localVersion ***"
|
echo "*** You are up-to-date on version $localVersion ***"
|
||||||
sudo systemctl restart mempool 2>/dev/null
|
sudo systemctl restart mempool 2>/dev/null
|
||||||
echo "*** Restarting Mempool ***"
|
echo "*** Restarting Mempool ***"
|
||||||
else
|
else
|
||||||
@ -405,7 +399,7 @@ if [ "$1" = "update" ]; then
|
|||||||
sudo chown mempool:mempool /home/mempool/mempool/backend/mempool-config.json
|
sudo chown mempool:mempool /home/mempool/mempool/backend/mempool-config.json
|
||||||
|
|
||||||
|
|
||||||
# Restore frontend files
|
# Restore frontend files
|
||||||
cd /home/mempool/mempool/frontend
|
cd /home/mempool/mempool/frontend
|
||||||
sudo rsync -I -av --delete dist/mempool/ /var/www/mempool/
|
sudo rsync -I -av --delete dist/mempool/ /var/www/mempool/
|
||||||
sudo chown -R www-data:www-data /var/www/mempool
|
sudo chown -R www-data:www-data /var/www/mempool
|
||||||
|
@ -16,13 +16,6 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^pool=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "pool=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
whiptail --title " Info Pool Service " --msgbox "\
|
whiptail --title " Info Pool Service " --msgbox "\
|
||||||
@ -228,7 +221,7 @@ WantedBy=multi-user.target
|
|||||||
echo "the poold.service already installed."
|
echo "the poold.service already installed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# OK - the poold.service is enabled, system is on ready so starting service"
|
echo "# OK - the poold.service is enabled, system is on ready so starting service"
|
||||||
sudo systemctl start poold
|
sudo systemctl start poold
|
||||||
@ -236,7 +229,7 @@ WantedBy=multi-user.target
|
|||||||
echo "# OK - the poold.service is enabled, to start manually use: sudo systemctl start poold"
|
echo "# OK - the poold.service is enabled, to start manually use: sudo systemctl start poold"
|
||||||
fi
|
fi
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^pool=.*/pool=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set pool "on"
|
||||||
|
|
||||||
isInstalled=$(sudo -u pool /usr/local/bin/poold | grep -c pool)
|
isInstalled=$(sudo -u pool /usr/local/bin/poold | grep -c pool)
|
||||||
if [ ${isInstalled} -gt 0 ]; then
|
if [ ${isInstalled} -gt 0 ]; then
|
||||||
@ -258,7 +251,7 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^pool=.*/pool=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set pool "off"
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/poold.service 2>/dev/null | grep -c 'poold.service')
|
isInstalled=$(sudo ls /etc/systemd/system/poold.service 2>/dev/null | grep -c 'poold.service')
|
||||||
if [ ${isInstalled} -eq 1 ]; then
|
if [ ${isInstalled} -eq 1 ]; then
|
||||||
|
@ -7,13 +7,6 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^pyblock=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "pyblock=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
dialog --title " Info PyBlock " --msgbox "
|
dialog --title " Info PyBlock " --msgbox "
|
||||||
@ -74,7 +67,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
sudo chown pyblock:pyblock /home/pyblock/blndconnect.conf
|
sudo chown pyblock:pyblock /home/pyblock/blndconnect.conf
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^pyblock=.*/pyblock=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set pyblock "on"
|
||||||
|
|
||||||
## pyblock short command
|
## pyblock short command
|
||||||
sudo bash -c "echo 'alias pyblock=\"cd ~; python3 ~/PyBLOCK/PyBlock.py\"' >> /home/pyblock/.bashrc"
|
sudo bash -c "echo 'alias pyblock=\"cd ~; python3 ~/PyBLOCK/PyBlock.py\"' >> /home/pyblock/.bashrc"
|
||||||
@ -91,7 +84,7 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^pyblock=.*/pyblock=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set pyblock "off"
|
||||||
|
|
||||||
echo "*** REMOVING PyBLOCK ***"
|
echo "*** REMOVING PyBLOCK ***"
|
||||||
sudo userdel -rf pyblock
|
sudo userdel -rf pyblock
|
||||||
|
@ -5,7 +5,6 @@ RTLVERSION="v0.11.2"
|
|||||||
# check and load raspiblitz config
|
# check and load raspiblitz config
|
||||||
# to know which network is running
|
# to know which network is running
|
||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
source /mnt/hdd/raspiblitz.conf
|
|
||||||
|
|
||||||
# command info
|
# command info
|
||||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||||
@ -112,15 +111,6 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
|
|
||||||
echo "# Installing RTL for ${LNTYPE} ${CHAIN}"
|
echo "# Installing RTL for ${LNTYPE} ${CHAIN}"
|
||||||
|
|
||||||
# prepare raspiblitz.conf --> add default value
|
|
||||||
configEntryExists=$(sudo cat /mnt/hdd/raspiblitz.conf | grep -c "${configEntry}")
|
|
||||||
if [ "${configEntryExists}" == "0" ]; then
|
|
||||||
echo "# adding default config entry for '${configEntry}'"
|
|
||||||
sudo /bin/sh -c "echo '${configEntry}=off' >> /mnt/hdd/raspiblitz.conf"
|
|
||||||
else
|
|
||||||
echo "# default config entry for '${configEntry}' exists"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check and install NodeJS
|
# check and install NodeJS
|
||||||
/home/admin/config.scripts/bonus.nodejs.sh on
|
/home/admin/config.scripts/bonus.nodejs.sh on
|
||||||
|
|
||||||
@ -178,7 +168,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "# Updating Firewall"
|
echo "# Updating Firewall"
|
||||||
sudo ufw allow ${RTLHTTP} comment "${systemdService} HTTP"
|
sudo ufw allow ${RTLHTTP} comment "${systemdService} HTTP"
|
||||||
sudo ufw allow $((RTLHTTP+1)) comment "${systemdService} HTTPS"
|
sudo ufw allow $((RTLHTTP+1)) comment "${systemdService} HTTPS"
|
||||||
@ -231,7 +221,7 @@ WantedBy=multi-user.target
|
|||||||
sudo sed -i "s/^Wants=.*/Wants=${netprefix}lightningd.service/g" /etc/systemd/system/${systemdService}.service
|
sudo sed -i "s/^Wants=.*/Wants=${netprefix}lightningd.service/g" /etc/systemd/system/${systemdService}.service
|
||||||
sudo sed -i "s/^After=.*/After=${netprefix}lightningd.service/g" /etc/systemd/system/${systemdService}.service
|
sudo sed -i "s/^After=.*/After=${netprefix}lightningd.service/g" /etc/systemd/system/${systemdService}.service
|
||||||
|
|
||||||
# set up C-LightningREST
|
# set up C-LightningREST
|
||||||
/home/admin/config.scripts/cl.rest.sh on ${CHAIN}
|
/home/admin/config.scripts/cl.rest.sh on ${CHAIN}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -240,8 +230,8 @@ WantedBy=multi-user.target
|
|||||||
|
|
||||||
# Hidden Service for RTL if Tor is active
|
# Hidden Service for RTL if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh ${netprefix}${typeprefix}RTL 80 $((RTLHTTP+2)) 443 $((RTLHTTP+3))
|
/home/admin/config.scripts/tor.onion-service.sh ${netprefix}${typeprefix}RTL 80 $((RTLHTTP+2)) 443 $((RTLHTTP+3))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# nginx configuration
|
# nginx configuration
|
||||||
@ -264,8 +254,8 @@ WantedBy=multi-user.target
|
|||||||
# run config as root to connect prepare services (lit, pool, ...)
|
# run config as root to connect prepare services (lit, pool, ...)
|
||||||
sudo /home/admin/config.scripts/bonus.rtl.sh connect-services
|
sudo /home/admin/config.scripts/bonus.rtl.sh connect-services
|
||||||
|
|
||||||
# raspiblitz.config
|
# ig
|
||||||
sudo sed -i "s/^${configEntry}=.*/${configEntry}=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${configEntry} "on"
|
||||||
|
|
||||||
sudo systemctl enable ${systemdService}
|
sudo systemctl enable ${systemdService}
|
||||||
sudo systemctl start ${systemdService}
|
sudo systemctl start ${systemdService}
|
||||||
@ -276,7 +266,7 @@ fi
|
|||||||
|
|
||||||
##########################
|
##########################
|
||||||
# CONNECT SERVICES
|
# CONNECT SERVICES
|
||||||
# will be called by lit or loop services to make sure services
|
# will be called by lit or loop services to make sure services
|
||||||
# are connected or on RTL install/update
|
# are connected or on RTL install/update
|
||||||
#########################
|
#########################
|
||||||
|
|
||||||
@ -290,7 +280,7 @@ if [ "$1" = "connect-services" ]; then
|
|||||||
|
|
||||||
# only run when RTL is installed
|
# only run when RTL is installed
|
||||||
if [ -d /home/rtl ]; then
|
if [ -d /home/rtl ]; then
|
||||||
echo "## RTL CONNECT-SERVICES"
|
echo "## RTL CONNECT-SERVICES"
|
||||||
else
|
else
|
||||||
echo "# no RTL installed - no need to connect any services"
|
echo "# no RTL installed - no need to connect any services"
|
||||||
exit
|
exit
|
||||||
@ -320,7 +310,7 @@ if [ "$1" = "connect-services" ]; then
|
|||||||
echo "# No lit or loop single detected"
|
echo "# No lit or loop single detected"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "# RTL CONNECT-SERVICES done"
|
echo "# RTL CONNECT-SERVICES done"
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@ -344,7 +334,7 @@ if [ "$1" = "prestart" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "## RTL PRESTART CONFIG (called by systemd prestart)"
|
echo "## RTL PRESTART CONFIG (called by systemd prestart)"
|
||||||
|
|
||||||
# getting the up-to-date RPC password
|
# getting the up-to-date RPC password
|
||||||
RPCPASSWORD=$(cat /mnt/hdd/${network}/${network}.conf | grep "^rpcpassword=" | cut -d "=" -f2)
|
RPCPASSWORD=$(cat /mnt/hdd/${network}/${network}.conf | grep "^rpcpassword=" | cut -d "=" -f2)
|
||||||
@ -439,7 +429,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
sudo systemctl stop ${systemdService} 2>/dev/null
|
sudo systemctl stop ${systemdService} 2>/dev/null
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^${configEntry}=.*/${configEntry}=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${configEntry} "off"
|
||||||
|
|
||||||
# remove nginx symlinks
|
# remove nginx symlinks
|
||||||
sudo rm -f /etc/nginx/sites-enabled/${netprefix}${typeprefix}rtl_ssl.conf 2>/dev/null
|
sudo rm -f /etc/nginx/sites-enabled/${netprefix}${typeprefix}rtl_ssl.conf 2>/dev/null
|
||||||
@ -453,7 +443,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off ${systemdService}
|
/home/admin/config.scripts/tor.onion-service.sh off ${systemdService}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/${systemdService}.service 2>/dev/null | grep -c "${systemdService}.service")
|
isInstalled=$(sudo ls /etc/systemd/system/${systemdService}.service 2>/dev/null | grep -c "${systemdService}.service")
|
||||||
@ -520,7 +510,7 @@ fi
|
|||||||
# sudo -u rtl npm install --only=prod
|
# sudo -u rtl npm install --only=prod
|
||||||
# currentRTLcommit=$(cd /home/rtl/RTL; git describe --tags)
|
# currentRTLcommit=$(cd /home/rtl/RTL; git describe --tags)
|
||||||
# echo "# Updated RTL to $currentRTLcommit"
|
# echo "# Updated RTL to $currentRTLcommit"
|
||||||
# else
|
# else
|
||||||
# echo "# Unknown option: $updateOption"
|
# echo "# Unknown option: $updateOption"
|
||||||
# fi
|
# fi
|
||||||
#
|
#
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# https://github.com/cryptoadvance/specter-desktop
|
# https://github.com/cryptoadvance/specter-desktop
|
||||||
|
|
||||||
pinnedVersion="1.7.2"
|
pinnedVersion="1.7.2"
|
||||||
|
|
||||||
@ -11,7 +11,6 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
|
||||||
echo "# bonus.specter.sh $1 $2"
|
echo "# bonus.specter.sh $1 $2"
|
||||||
|
|
||||||
if [ $# -gt 1 ];then
|
if [ $# -gt 1 ];then
|
||||||
@ -44,7 +43,7 @@ if [ "$1" = "status" ]; then
|
|||||||
else
|
else
|
||||||
echo "configured=0"
|
echo "configured=0"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -91,11 +90,6 @@ Activate TOR to access the web block explorer from outside your local network.
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^specter=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "specter=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# blockfilterindex
|
# blockfilterindex
|
||||||
# add blockfilterindex with default value (0) to bitcoin.conf if missing
|
# add blockfilterindex with default value (0) to bitcoin.conf if missing
|
||||||
if ! grep -Eq "^blockfilterindex=.*" /mnt/hdd/${network}/${network}.conf; then
|
if ! grep -Eq "^blockfilterindex=.*" /mnt/hdd/${network}/${network}.conf; then
|
||||||
@ -140,7 +134,7 @@ EOF
|
|||||||
PASSWORD_B=$(sudo cat /mnt/hdd/${network}/${network}.conf | grep rpcpassword | cut -c 13-)
|
PASSWORD_B=$(sudo cat /mnt/hdd/${network}/${network}.conf | grep rpcpassword | cut -c 13-)
|
||||||
|
|
||||||
echo "# Connect Specter to the default mainnet node"
|
echo "# Connect Specter to the default mainnet node"
|
||||||
cat > /home/admin/default.json <<EOF
|
cat > /home/admin/default.json <<EOF
|
||||||
{
|
{
|
||||||
"name": "raspiblitz_mainnet",
|
"name": "raspiblitz_mainnet",
|
||||||
"alias": "default",
|
"alias": "default",
|
||||||
@ -167,7 +161,7 @@ EOF
|
|||||||
PORT="${portprefix}8332"
|
PORT="${portprefix}8332"
|
||||||
|
|
||||||
echo "# Connect Specter to the raspiblitz_${chain}net node"
|
echo "# Connect Specter to the raspiblitz_${chain}net node"
|
||||||
cat > /home/admin/raspiblitz_${chain}net.json <<EOF
|
cat > /home/admin/raspiblitz_${chain}net.json <<EOF
|
||||||
{
|
{
|
||||||
"name": "raspiblitz_${chain}net",
|
"name": "raspiblitz_${chain}net",
|
||||||
"alias": "raspiblitz_${chain}net",
|
"alias": "raspiblitz_${chain}net",
|
||||||
@ -208,10 +202,10 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
|
|
||||||
echo "# --> Installing prerequisites"
|
echo "# --> Installing prerequisites"
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt-get install -y virtualenv libffi-dev libusb-1.0.0-dev libudev-dev
|
sudo apt-get install -y virtualenv libffi-dev libusb-1.0.0-dev libudev-dev
|
||||||
|
|
||||||
sudo adduser --disabled-password --gecos "" specter
|
sudo adduser --disabled-password --gecos "" specter
|
||||||
|
|
||||||
echo "# add the user to the debian-tor group"
|
echo "# add the user to the debian-tor group"
|
||||||
sudo usermod -a -G debian-tor specter
|
sudo usermod -a -G debian-tor specter
|
||||||
|
|
||||||
@ -249,7 +243,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
echo "# --> Installing udev-rules for hardware-wallets"
|
echo "# --> Installing udev-rules for hardware-wallets"
|
||||||
|
|
||||||
# Ledger
|
# Ledger
|
||||||
cat > /home/admin/20-hw1.rules <<EOF
|
cat > /home/admin/20-hw1.rules <<EOF
|
||||||
HW.1 / Nano
|
HW.1 / Nano
|
||||||
@ -265,7 +259,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0003|3000|3001|30
|
|||||||
# Nano X
|
# Nano X
|
||||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0004|4000|4001|4002|4003|4004|4005|4006|4007|4008|4009|400a|400b|400c|400d|400e|400f|4010|4011|4012|4013|4014|4015|4016|4017|4018|4019|401a|401b|401c|401d|401e|401f", TAG+="uaccess", TAG+="udev-acl", OWNER="specter"
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0004|4000|4001|4002|4003|4004|4005|4006|4007|4008|4009|400a|400b|400c|400d|400e|400f|4010|4011|4012|4013|4014|4015|4016|4017|4018|4019|401a|401b|401c|401d|401e|401f", TAG+="uaccess", TAG+="udev-acl", OWNER="specter"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# ColdCard
|
# ColdCard
|
||||||
cat > /home/admin/51-coinkite.rules <<EOF
|
cat > /home/admin/51-coinkite.rules <<EOF
|
||||||
# Linux udev support file.
|
# Linux udev support file.
|
||||||
@ -284,7 +278,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="d13e", ATTRS{idProduct}=="cc10", GROUP="plu
|
|||||||
# from <https://github.com/signal11/hidapi/blob/master/udev/99-hid.rules>
|
# from <https://github.com/signal11/hidapi/blob/master/udev/99-hid.rules>
|
||||||
KERNEL=="hidraw*", ATTRS{idVendor}=="d13e", ATTRS{idProduct}=="cc10", GROUP="plugdev", MODE="0666"
|
KERNEL=="hidraw*", ATTRS{idVendor}=="d13e", ATTRS{idProduct}=="cc10", GROUP="plugdev", MODE="0666"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Trezor
|
# Trezor
|
||||||
cat > /home/admin/51-trezor.rules <<EOF
|
cat > /home/admin/51-trezor.rules <<EOF
|
||||||
# Trezor: The Original Hardware Wallet
|
# Trezor: The Original Hardware Wallet
|
||||||
@ -305,7 +299,7 @@ SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="53c0", MODE="0660",
|
|||||||
SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="53c1", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="trezor%n"
|
SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="53c1", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="trezor%n"
|
||||||
KERNEL=="hidraw*", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
|
KERNEL=="hidraw*", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# KeepKey
|
# KeepKey
|
||||||
cat > /home/admin/51-usb-keepkey.rules <<EOF
|
cat > /home/admin/51-usb-keepkey.rules <<EOF
|
||||||
# KeepKey: Your Private Bitcoin Vault
|
# KeepKey: Your Private Bitcoin Vault
|
||||||
@ -363,19 +357,18 @@ EOF
|
|||||||
sudo systemctl enable specter
|
sudo systemctl enable specter
|
||||||
|
|
||||||
echo "# --> OK - the specter service is now enabled and started"
|
echo "# --> OK - the specter service is now enabled and started"
|
||||||
else
|
else
|
||||||
echo "# --> specter already installed."
|
echo "# --> specter already installed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^specter=.*/specter=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set specter "on"
|
||||||
|
|
||||||
# Hidden Service for SERVICE if Tor is active
|
# Hidden Service for SERVICE if Tor is active
|
||||||
source /mnt/hdd/raspiblitz.conf
|
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
# port 25441 is HTTPS with self-signed cert - specte only makes sense to be served over HTTPS
|
# port 25441 is HTTPS with self-signed cert - specte only makes sense to be served over HTTPS
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh specter 443 25441
|
/home/admin/config.scripts/tor.onion-service.sh specter 443 25441
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# blockfilterindex on
|
# blockfilterindex on
|
||||||
@ -403,11 +396,11 @@ fi
|
|||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^specter=.*/specter=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set specter "off"
|
||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off specter
|
/home/admin/config.scripts/tor.onion-service.sh off specter
|
||||||
fi
|
fi
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/specter.service 2>/dev/null | grep -c 'specter.service')
|
isInstalled=$(sudo ls /etc/systemd/system/specter.service 2>/dev/null | grep -c 'specter.service')
|
||||||
@ -422,10 +415,10 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
if whiptail --defaultno --yesno "Do you want to delete all Data related to specter? This includes also Bitcoin-Core-Wallets managed by specter?" 0 0; then
|
if whiptail --defaultno --yesno "Do you want to delete all Data related to specter? This includes also Bitcoin-Core-Wallets managed by specter?" 0 0; then
|
||||||
echo "# --> Removing wallets in core"
|
echo "# --> Removing wallets in core"
|
||||||
bitcoin-cli listwallets | jq -r .[] | tail -n +2
|
bitcoin-cli listwallets | jq -r .[] | tail -n +2
|
||||||
for i in $(bitcoin-cli listwallets | jq -r .[] | tail -n +2)
|
for i in $(bitcoin-cli listwallets | jq -r .[] | tail -n +2)
|
||||||
do
|
do
|
||||||
name=$(echo $i | cut -d"/" -f2)
|
name=$(echo $i | cut -d"/" -f2)
|
||||||
bitcoin-cli unloadwallet specter/$name
|
bitcoin-cli unloadwallet specter/$name
|
||||||
done
|
done
|
||||||
echo "# --> Removing the /mnt/hdd/app-data/.specter"
|
echo "# --> Removing the /mnt/hdd/app-data/.specter"
|
||||||
sudo rm -rf /mnt/hdd/app-data/.specter
|
sudo rm -rf /mnt/hdd/app-data/.specter
|
||||||
@ -450,7 +443,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "# --> OK Specter Desktop removed."
|
echo "# --> OK Specter Desktop removed."
|
||||||
else
|
else
|
||||||
echo "# --> Specter Desktop is not installed."
|
echo "# --> Specter Desktop is not installed."
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -48,7 +48,7 @@ if [ "$1" = "menu" ]; then
|
|||||||
--no-button "Other Options" \
|
--no-button "Other Options" \
|
||||||
--yesno "\nYou can connect Sphinx App over Tor. Its build in for iOS and on Android you need to use it together with the Orbot App." 10 72
|
--yesno "\nYou can connect Sphinx App over Tor. Its build in for iOS and on Android you need to use it together with the Orbot App." 10 72
|
||||||
if [ "$?" != "1" ]; then
|
if [ "$?" != "1" ]; then
|
||||||
echo "sphinxrelay_connection='tor'" >> /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set sphinxrelay_connection "tor"
|
||||||
echo "Please wait (+1min) ... restarting sphinx relay to use tor"
|
echo "Please wait (+1min) ... restarting sphinx relay to use tor"
|
||||||
sudo systemctl restart sphinxrelay
|
sudo systemctl restart sphinxrelay
|
||||||
sleep 60
|
sleep 60
|
||||||
@ -80,7 +80,7 @@ use it securely from everywhere.
|
|||||||
elif [ ${connection} = "dns&letsencrypt" ]; then
|
elif [ ${connection} = "dns&letsencrypt" ]; then
|
||||||
text="${text}\n
|
text="${text}\n
|
||||||
Public Domain: ${publicURL}
|
Public Domain: ${publicURL}
|
||||||
port forwarding on router needs to be active & may change port"
|
port forwarding on router needs to be active & may change port"
|
||||||
|
|
||||||
# When just IP2TOR
|
# When just IP2TOR
|
||||||
elif [ ${connection} = "ip2tor&selfsigned" ]; then
|
elif [ ${connection} = "ip2tor&selfsigned" ]; then
|
||||||
@ -102,7 +102,7 @@ port forwarding on router needs to be active & may change port"
|
|||||||
Tor Connection: ${publicURL}
|
Tor Connection: ${publicURL}
|
||||||
iOS support is native, Android needs Orbot"
|
iOS support is native, Android needs Orbot"
|
||||||
|
|
||||||
# When nothing advise
|
# When nothing advise
|
||||||
elif [ ${connection} = "localnetwork" ]; then
|
elif [ ${connection} = "localnetwork" ]; then
|
||||||
text="${text}\n
|
text="${text}\n
|
||||||
At the moment your Sphinx Relay Server is just available
|
At the moment your Sphinx Relay Server is just available
|
||||||
@ -143,7 +143,7 @@ It needs an additional Domain with LetsEncrypt certificate for HTTPS: Go MAINMEN
|
|||||||
There CANNOT BE MORE THAN ONE APP connected at the same time.\n
|
There CANNOT BE MORE THAN ONE APP connected at the same time.\n
|
||||||
To switch devices within the Sphnix app: see PROFILE & export keys or
|
To switch devices within the Sphnix app: see PROFILE & export keys or
|
||||||
you have to deinstall the Sphinx-Relay with DELETE DATA & reinstall.\n
|
you have to deinstall the Sphinx-Relay with DELETE DATA & reinstall.\n
|
||||||
If you just upgraded from local network to IP2Tor + HTTPS -->
|
If you just upgraded from local network to IP2Tor + HTTPS -->
|
||||||
open the app > PROFILE & under ADVANCED change the SERVER URL to:
|
open the app > PROFILE & under ADVANCED change the SERVER URL to:
|
||||||
${publicURL}"
|
${publicURL}"
|
||||||
whiptail --title " Warning " \
|
whiptail --title " Warning " \
|
||||||
@ -183,11 +183,6 @@ ${extraPairInfo}" 17 76
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^sphinxrelay=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "sphinxrelay=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# write environment configs fresh before every start
|
# write environment configs fresh before every start
|
||||||
# IMPORTANT: all this needs to work without sudo because will run from systemd as sphinxrelay user
|
# IMPORTANT: all this needs to work without sudo because will run from systemd as sphinxrelay user
|
||||||
if [ "$1" = "write-environment" ]; then
|
if [ "$1" = "write-environment" ]; then
|
||||||
@ -242,11 +237,11 @@ if [ "$1" = "status" ]; then
|
|||||||
connectionCode=$(sudo cat /home/sphinxrelay/sphinx-relay/connection_string.txt)
|
connectionCode=$(sudo cat /home/sphinxrelay/sphinx-relay/connection_string.txt)
|
||||||
fi
|
fi
|
||||||
echo "connectionCode='${connectionCode}'"
|
echo "connectionCode='${connectionCode}'"
|
||||||
|
|
||||||
# decode with base64 for debug
|
# decode with base64 for debug
|
||||||
connectionCodeClear=$(echo -n "${connectionCode}" | base64 --decode)
|
connectionCodeClear=$(echo -n "${connectionCode}" | base64 --decode)
|
||||||
echo "connectionCodeClear='${connectionCodeClear}'"
|
echo "connectionCodeClear='${connectionCodeClear}'"
|
||||||
|
|
||||||
# check for LetsEnryptDomain for DynDns
|
# check for LetsEnryptDomain for DynDns
|
||||||
error=""
|
error=""
|
||||||
source <(/home/admin/config.scripts/blitz.subscriptions.ip2tor.py ip-by-tor $publicIP)
|
source <(/home/admin/config.scripts/blitz.subscriptions.ip2tor.py ip-by-tor $publicIP)
|
||||||
@ -321,7 +316,7 @@ if [ "$1" = "status" ]; then
|
|||||||
elif [ "${runBehindTor}" == "on" ] && [ "${sphinxrelay_connection}" == "tor" ]; then
|
elif [ "${runBehindTor}" == "on" ] && [ "${sphinxrelay_connection}" == "tor" ]; then
|
||||||
connection="tor"
|
connection="tor"
|
||||||
publicURL="http://${toraddress}:80"
|
publicURL="http://${toraddress}:80"
|
||||||
|
|
||||||
# 6) LOCAL NETWORK (just HTTP)
|
# 6) LOCAL NETWORK (just HTTP)
|
||||||
else
|
else
|
||||||
connection="localnetwork"
|
connection="localnetwork"
|
||||||
@ -448,8 +443,8 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh sphinxrelay 80 3302 443 3303
|
/home/admin/config.scripts/tor.onion-service.sh sphinxrelay 80 3302 443 3303
|
||||||
# get TOR address and store it readable for sphinxrelay user
|
# get TOR address and store it readable for sphinxrelay user
|
||||||
toraddress=$(sudo cat /mnt/hdd/tor/sphinxrelay/hostname 2>/dev/null)
|
toraddress=$(sudo cat /mnt/hdd/tor/sphinxrelay/hostname 2>/dev/null)
|
||||||
sudo -u sphinxrelay bash -c "echo '${toraddress}' > /home/sphinxrelay/sphinx-relay/dist/toraddress.txt"
|
sudo -u sphinxrelay bash -c "echo '${toraddress}' > /home/sphinxrelay/sphinx-relay/dist/toraddress.txt"
|
||||||
@ -495,7 +490,7 @@ EOF
|
|||||||
|
|
||||||
sudo systemctl enable sphinxrelay
|
sudo systemctl enable sphinxrelay
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# OK - sphinxrelay service is enabled, system is on ready so starting service"
|
echo "# OK - sphinxrelay service is enabled, system is on ready so starting service"
|
||||||
sudo systemctl start sphinxrelay
|
sudo systemctl start sphinxrelay
|
||||||
@ -524,7 +519,7 @@ EOF
|
|||||||
sudo systemctl reload nginx
|
sudo systemctl reload nginx
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^sphinxrelay=.*/sphinxrelay=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set sphinxrelay "on"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -561,7 +556,7 @@ if [ "$1" = "update" ]; then
|
|||||||
#echo
|
#echo
|
||||||
#echo "# Starting the sphinxrelay.service ... "
|
#echo "# Starting the sphinxrelay.service ... "
|
||||||
#sudo systemctl start sphinxrelay
|
#sudo systemctl start sphinxrelay
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -584,8 +579,8 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "# deleteData(${deleteData})"
|
echo "# deleteData(${deleteData})"
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^sphinxrelay=.*/sphinxrelay=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set sphinxrelay "off"
|
||||||
sudo sed -i "/^sphinxrelay_connection=.*/d" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh delete sphinxrelay_connection
|
||||||
|
|
||||||
# remove nginx symlinks
|
# remove nginx symlinks
|
||||||
sudo rm -f /etc/nginx/sites-enabled/sphinxrelay_ssl.conf
|
sudo rm -f /etc/nginx/sites-enabled/sphinxrelay_ssl.conf
|
||||||
@ -599,7 +594,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off sphinxrelay
|
/home/admin/config.scripts/tor.onion-service.sh off sphinxrelay
|
||||||
fi
|
fi
|
||||||
|
|
||||||
isInstalled=$(sudo ls /etc/systemd/system/sphinxrelay.service 2>/dev/null | grep -c 'sphinxrelay.service')
|
isInstalled=$(sudo ls /etc/systemd/system/sphinxrelay.service 2>/dev/null | grep -c 'sphinxrelay.service')
|
||||||
|
@ -128,7 +128,7 @@ fi
|
|||||||
echo "Switch to the '$USERNAME' user and adapt the settings in $CONFIG_FILE"
|
echo "Switch to the '$USERNAME' user and adapt the settings in $CONFIG_FILE"
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
grep -q '^stackingSatsKraken' $RASPIBLITZ_FILE && sudo sed -i "s/^stackingSatsKraken=.*/stackingSatsKraken=on/g" $RASPIBLITZ_FILE || echo 'stackingSatsKraken=on' >> $RASPIBLITZ_FILE
|
/home/admin/config.scripts/blitz.conf.sh set stackingSatsKraken "on"
|
||||||
else
|
else
|
||||||
echo "STACKING-SATS-KRAKEN already installed."
|
echo "STACKING-SATS-KRAKEN already installed."
|
||||||
fi
|
fi
|
||||||
@ -158,7 +158,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "*** REMOVING STACKING-SATS-KRAKEN ***"
|
echo "*** REMOVING STACKING-SATS-KRAKEN ***"
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^stackingSatsKraken=.*/stackingSatsKraken=off/g" $RASPIBLITZ_FILE
|
/home/admin/config.scripts/blitz.conf.sh set stackingSatsKraken "off"
|
||||||
|
|
||||||
# remove config
|
# remove config
|
||||||
sudo rm -rf $APP_DATA_DIR
|
sudo rm -rf $APP_DATA_DIR
|
||||||
|
@ -17,11 +17,6 @@ PGPpubkeyFingerprint="91F3B339B9A02A3D"
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^suez=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "suez=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
dialog --title " Info Suez" --msgbox "
|
dialog --title " Info Suez" --msgbox "
|
||||||
@ -56,7 +51,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
| sudo tee -a /home/admin/_aliases
|
| sudo tee -a /home/admin/_aliases
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^suez=.*/suez=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set suez "on"
|
||||||
|
|
||||||
echo "# To use the alias in /home/admin/_aliases:"
|
echo "# To use the alias in /home/admin/_aliases:"
|
||||||
echo "source /home/admin/_aliases"
|
echo "source /home/admin/_aliases"
|
||||||
@ -75,7 +70,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "# OK, suez is removed."
|
echo "# OK, suez is removed."
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^suez=.*/suez=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set suez "off"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
@ -13,22 +13,12 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# CONFIGFILE - configuration of RaspiBlitz
|
|
||||||
configFile="/mnt/hdd/raspiblitz.conf"
|
|
||||||
|
|
||||||
# Check if HDD contains configuration
|
|
||||||
configExists=$(ls ${configFile} | grep -c '.conf')
|
|
||||||
if [ ${configExists} -ne 1 ]; then
|
|
||||||
echo "RaspiBlitz config file '${configFile}' not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# at this point the config file exists and can be sourced
|
# at this point the config file exists and can be sourced
|
||||||
source ${configFile}
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# this variables is used repeatedly in this script
|
# this variables is used repeatedly in this script
|
||||||
resources_dir=/home/admin/assets/telegraf/etc-telegraf
|
resources_dir=/home/admin/assets/telegraf/etc-telegraf
|
||||||
|
|
||||||
|
|
||||||
###############################
|
###############################
|
||||||
# give status
|
# give status
|
||||||
if [ "$1" = "status" ]; then
|
if [ "$1" = "status" ]; then
|
||||||
@ -147,9 +137,8 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
sleep 2
|
sleep 2
|
||||||
sudo systemctl status telegraf.service --no-page 2>/dev/null
|
sudo systemctl status telegraf.service --no-page 2>/dev/null
|
||||||
|
|
||||||
echo "*** telegraf installation: set 'telegrafMonitoring=on' in config file '${configFile}'"
|
echo "*** telegraf installation: set 'telegrafMonitoring=on' in config file 'raspiblitz.conf'"
|
||||||
sudo sed -i "s/^telegrafMonitoring=.*/telegrafMonitoring=on/g" ${configFile}
|
/home/admin/config.scripts/blitz.conf.sh set telegrafMonitoring "on"
|
||||||
|
|
||||||
|
|
||||||
echo "*** install telegraf done ***"
|
echo "*** install telegraf done ***"
|
||||||
|
|
||||||
@ -165,8 +154,8 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
# let apt-get remove the package
|
# let apt-get remove the package
|
||||||
sudo apt-get remove -y telegraf
|
sudo apt-get remove -y telegraf
|
||||||
|
|
||||||
echo "*** telegraf remove: set 'telegrafMonitoring=off' in config file '${configFile}'"
|
echo "*** telegraf remove: set 'telegrafMonitoring=off' in config file 'raspiblitz.conf'"
|
||||||
sudo sed -i "s/^telegrafMonitoring=.*/telegrafMonitoring=off/g" ${configFile}
|
/home/admin/config.scripts/blitz.conf.sh set telegrafMonitoring "off"
|
||||||
|
|
||||||
echo "*** remove telegraf done ***"
|
echo "*** remove telegraf done ***"
|
||||||
|
|
||||||
|
@ -19,10 +19,6 @@ PGPpubkeyFingerprint="4403F1DFBE779457"
|
|||||||
# to know which network is running
|
# to know which network is running
|
||||||
source /home/admin/raspiblitz.info
|
source /home/admin/raspiblitz.info
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
if [ ${#network} -eq 0 ]; then
|
|
||||||
echo "FAIL - missing /mnt/hdd/raspiblitz.conf"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
@ -57,11 +53,6 @@ Activate TOR to access the web interface from outside your local network.
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^thunderhub=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "thunderhub=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# stop services
|
# stop services
|
||||||
echo "making sure services are not running"
|
echo "making sure services are not running"
|
||||||
sudo systemctl stop thunderhub 2>/dev/null
|
sudo systemctl stop thunderhub 2>/dev/null
|
||||||
@ -73,7 +64,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
isInstalled=$(sudo ls /etc/systemd/system/thunderhub.service 2>/dev/null | grep -c 'thunderhub.service')
|
isInstalled=$(sudo ls /etc/systemd/system/thunderhub.service 2>/dev/null | grep -c 'thunderhub.service')
|
||||||
if ! [ ${isInstalled} -eq 0 ]; then
|
if ! [ ${isInstalled} -eq 0 ]; then
|
||||||
echo "ThunderHub already installed."
|
echo "ThunderHub already installed."
|
||||||
else
|
else
|
||||||
###############
|
###############
|
||||||
# INSTALL
|
# INSTALL
|
||||||
###############
|
###############
|
||||||
@ -185,7 +176,7 @@ EOF
|
|||||||
sudo chmod 600 /mnt/hdd/app-data/thunderhub/thubConfig.yaml | exit 1
|
sudo chmod 600 /mnt/hdd/app-data/thunderhub/thubConfig.yaml | exit 1
|
||||||
# symlink
|
# symlink
|
||||||
sudo ln -s /mnt/hdd/app-data/thunderhub/thubConfig.yaml /home/thunderhub/
|
sudo ln -s /mnt/hdd/app-data/thunderhub/thubConfig.yaml /home/thunderhub/
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# NGINX
|
# NGINX
|
||||||
##################
|
##################
|
||||||
@ -204,13 +195,13 @@ EOF
|
|||||||
sudo ln -sf /etc/nginx/sites-available/thub_tor_ssl.conf /etc/nginx/sites-enabled/
|
sudo ln -sf /etc/nginx/sites-available/thub_tor_ssl.conf /etc/nginx/sites-enabled/
|
||||||
sudo nginx -t
|
sudo nginx -t
|
||||||
sudo systemctl reload nginx
|
sudo systemctl reload nginx
|
||||||
|
|
||||||
# open the firewall
|
# open the firewall
|
||||||
echo "*** Updating Firewall ***"
|
echo "*** Updating Firewall ***"
|
||||||
sudo ufw allow from any to any port 3010 comment 'allow ThunderHub HTTP'
|
sudo ufw allow from any to any port 3010 comment 'allow ThunderHub HTTP'
|
||||||
sudo ufw allow from any to any port 3011 comment 'allow ThunderHub HTTPS'
|
sudo ufw allow from any to any port 3011 comment 'allow ThunderHub HTTPS'
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# SYSTEMD SERVICE
|
# SYSTEMD SERVICE
|
||||||
##################
|
##################
|
||||||
@ -247,14 +238,14 @@ WantedBy=multi-user.target
|
|||||||
sudo systemctl enable thunderhub
|
sudo systemctl enable thunderhub
|
||||||
|
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i "s/^thunderhub=.*/thunderhub=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set thunderhub "on"
|
||||||
|
|
||||||
# Hidden Service for thunderhub if Tor is active
|
# Hidden Service for thunderhub if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
# make sure to keep in sync with internet.tor.sh script
|
# make sure to keep in sync with tor.network.sh script
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh thunderhub 80 3012 443 3013
|
/home/admin/config.scripts/tor.onion-service.sh thunderhub 80 3012 443 3013
|
||||||
fi
|
fi
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# OK - the thunderhub.service is enabled, system is ready so starting service"
|
echo "# OK - the thunderhub.service is enabled, system is ready so starting service"
|
||||||
sudo systemctl start thunderhub
|
sudo systemctl start thunderhub
|
||||||
@ -267,7 +258,7 @@ fi
|
|||||||
|
|
||||||
# switch off
|
# switch off
|
||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
|
|
||||||
echo "*** REMOVING THUNDERHUB ***"
|
echo "*** REMOVING THUNDERHUB ***"
|
||||||
# remove systemd service
|
# remove systemd service
|
||||||
sudo systemctl disable thunderhub
|
sudo systemctl disable thunderhub
|
||||||
@ -290,13 +281,13 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
|
|
||||||
# Hidden Service if Tor is active
|
# Hidden Service if Tor is active
|
||||||
if [ "${runBehindTor}" = "on" ]; then
|
if [ "${runBehindTor}" = "on" ]; then
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off thunderhub
|
/home/admin/config.scripts/tor.onion-service.sh off thunderhub
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "OK ThunderHub removed."
|
echo "OK ThunderHub removed."
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^thunderhub=.*/thunderhub=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set thunderhub "off"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -313,7 +304,7 @@ if [ "$1" = "update" ]; then
|
|||||||
UPSTREAM=${1:-'@{u}'}
|
UPSTREAM=${1:-'@{u}'}
|
||||||
LOCAL=$(git rev-parse @)
|
LOCAL=$(git rev-parse @)
|
||||||
REMOTE=$(git rev-parse "$UPSTREAM")
|
REMOTE=$(git rev-parse "$UPSTREAM")
|
||||||
|
|
||||||
if [ $LOCAL = $REMOTE ]; then
|
if [ $LOCAL = $REMOTE ]; then
|
||||||
TAG=$(git tag | sort -V | tail -1)
|
TAG=$(git tag | sort -V | tail -1)
|
||||||
echo "# Up-to-date on version" $TAG
|
echo "# Up-to-date on version" $TAG
|
||||||
|
@ -9,11 +9,6 @@ fi
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^typescript=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "typescript=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# switch on
|
# switch on
|
||||||
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||||
# check if typescript was installed
|
# check if typescript was installed
|
||||||
@ -55,7 +50,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^typescript=.*/typescript=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set typescript "on"
|
||||||
echo "Installed typescript $(node -v)"
|
echo "Installed typescript $(node -v)"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -63,7 +58,7 @@ fi
|
|||||||
# switch off
|
# switch off
|
||||||
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i "s/^typescript=.*/typescript=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set typescript "off"
|
||||||
echo "*** REMOVING typescript ***"
|
echo "*** REMOVING typescript ***"
|
||||||
npm uninstall typescript -g
|
npm uninstall typescript -g
|
||||||
echo "OK typescript removed."
|
echo "OK typescript removed."
|
||||||
|
@ -16,11 +16,6 @@ fi
|
|||||||
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^whitepaper=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "whitepaper=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
if [ "$1" = "menu" ]; then
|
if [ "$1" = "menu" ]; then
|
||||||
dialog --title " Whitepaper Info" --msgbox "
|
dialog --title " Whitepaper Info" --msgbox "
|
||||||
@ -50,7 +45,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
# transfor pdf to txt to view with less through the terminal
|
# transfor pdf to txt to view with less through the terminal
|
||||||
pdftotext $DownloadPath$WhitepaperFilename
|
pdftotext $DownloadPath$WhitepaperFilename
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^whitepaper=.*/whitepaper=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set whitepaper "on"
|
||||||
echo "# OK - Whitepaper downloaded to $DownloadPath$WhitepaperFilename"
|
echo "# OK - Whitepaper downloaded to $DownloadPath$WhitepaperFilename"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -65,7 +60,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
echo "# ***"
|
echo "# ***"
|
||||||
echo ""
|
echo ""
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^whitepaper=.*/whitepaper=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set whitepaper "off"
|
||||||
rm $DownloadPath$WhitepaperFilename
|
rm $DownloadPath$WhitepaperFilename
|
||||||
rm $DownloadPath/bitcoin.txt
|
rm $DownloadPath/bitcoin.txt
|
||||||
echo "# OK - Whitepaper removed."
|
echo "# OK - Whitepaper removed."
|
||||||
|
@ -9,10 +9,6 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^zerotier=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "zerotier=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
source /mnt/hdd/raspiblitz.conf
|
||||||
|
|
||||||
# show info menu
|
# show info menu
|
||||||
@ -66,7 +62,8 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|||||||
echo "# OK - joined"
|
echo "# OK - joined"
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^zerotier=.*/zerotier=${networkID}/g" /mnt/hdd/raspiblitz.conf
|
|
||||||
|
/home/admin/config.scripts/blitz.conf.sh set zerotier "${networkID}"
|
||||||
|
|
||||||
# adding zero tier IP to LND TLS cert
|
# adding zero tier IP to LND TLS cert
|
||||||
# sudo /home/admin/config.scripts/lnd.tlscert.sh ip-add 172.X
|
# sudo /home/admin/config.scripts/lnd.tlscert.sh ip-add 172.X
|
||||||
@ -90,7 +87,7 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|||||||
sudo -u admin sudo apt -y purge zerotier-one 1>&2
|
sudo -u admin sudo apt -y purge zerotier-one 1>&2
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^zerotier=.*/zerotier=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set zerotier "off"
|
||||||
|
|
||||||
echo "# OK, ZeroTier is removed."
|
echo "# OK, ZeroTier is removed."
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -74,7 +74,7 @@ if [ $1 = on ];then
|
|||||||
--lightning-dir /home/bitcoin/.lightning/${CLNETWORK} \
|
--lightning-dir /home/bitcoin/.lightning/${CLNETWORK} \
|
||||||
file:///home/bitcoin/${netprefix}lightningd.sqlite3.backup
|
file:///home/bitcoin/${netprefix}lightningd.sqlite3.backup
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
sudo systemctl start ${netprefix}lightningd
|
sudo systemctl start ${netprefix}lightningd
|
||||||
echo "# Started the ${netprefix}lightningd.service"
|
echo "# Started the ${netprefix}lightningd.service"
|
||||||
@ -120,7 +120,7 @@ elif [ $1 = restore ];then
|
|||||||
file:///home/bitcoin/${netprefix}lightningd.sqlite3.backup \
|
file:///home/bitcoin/${netprefix}lightningd.sqlite3.backup \
|
||||||
/home/bitcoin/.lightning/${CLNETWORK}/lightningd.sqlite3
|
/home/bitcoin/.lightning/${CLNETWORK}/lightningd.sqlite3
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
sudo systemctl start ${netprefix}lightningd
|
sudo systemctl start ${netprefix}lightningd
|
||||||
echo "# Started the ${netprefix}lightningd.service"
|
echo "# Started the ${netprefix}lightningd.service"
|
||||||
|
@ -18,16 +18,6 @@ fi
|
|||||||
# source <(/home/admin/config.scripts/network.aliases.sh getvars cl <mainnet|testnet|signet>)
|
# source <(/home/admin/config.scripts/network.aliases.sh getvars cl <mainnet|testnet|signet>)
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars cl $2)
|
source <(/home/admin/config.scripts/network.aliases.sh getvars cl $2)
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
configEntry="${netprefix}clboss"
|
|
||||||
configEntryExists=$(sudo cat /mnt/hdd/raspiblitz.conf | grep -c "${configEntry}")
|
|
||||||
if [ "${configEntryExists}" == "0" ]; then
|
|
||||||
echo "# adding default config entry for '${configEntry}'"
|
|
||||||
sudo /bin/sh -c "echo '${configEntry}=off' >> /mnt/hdd/raspiblitz.conf"
|
|
||||||
else
|
|
||||||
echo "# default config entry for '${configEntry}' exists"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $1 = on ];then
|
if [ $1 = on ];then
|
||||||
|
|
||||||
if [ ! -f /home/bitcoin/cl-plugins-available/clboss-${CLBOSSVERSION}.tar.gz ];then
|
if [ ! -f /home/bitcoin/cl-plugins-available/clboss-${CLBOSSVERSION}.tar.gz ];then
|
||||||
@ -58,9 +48,9 @@ if [ $1 = on ];then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspiblitz.conf
|
# setting value in raspiblitz.conf
|
||||||
sudo sed -i "s/^${netprefix}clboss=.*/${netprefix}clboss=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clboss "on"
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# Restart the ${netprefix}lightningd.service to activate clboss"
|
echo "# Restart the ${netprefix}lightningd.service to activate clboss"
|
||||||
sudo systemctl restart ${netprefix}lightningd
|
sudo systemctl restart ${netprefix}lightningd
|
||||||
@ -89,7 +79,7 @@ if [ $1 = off ];then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^${netprefix}clboss=.*/${netprefix}clboss=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clboss "off"
|
||||||
echo "# clboss was uninstalled for $CHAIN"
|
echo "# clboss was uninstalled for $CHAIN"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
@ -10,16 +10,6 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ];then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
configEntry="${netprefix}feeadjuster"
|
|
||||||
configEntryExists=$(sudo cat /mnt/hdd/raspiblitz.conf | grep -c "${configEntry}")
|
|
||||||
if [ "${configEntryExists}" == "0" ]; then
|
|
||||||
echo "# adding default config entry for '${configEntry}'"
|
|
||||||
sudo /bin/sh -c "echo '${configEntry}=off' >> /mnt/hdd/raspiblitz.conf"
|
|
||||||
else
|
|
||||||
echo "# default config entry for '${configEntry}' exists"
|
|
||||||
fi
|
|
||||||
|
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars cl $2)
|
source <(/home/admin/config.scripts/network.aliases.sh getvars cl $2)
|
||||||
|
|
||||||
if [ "$1" = "on" ];then
|
if [ "$1" = "on" ];then
|
||||||
@ -37,9 +27,9 @@ if [ "$1" = "on" ];then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^${netprefix}feeadjuster=.*/${netprefix}feeadjuster=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}feeadjuster "on"
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ] && [ "$3" != "norestart" ]; then
|
if [ "${state}" == "ready" ] && [ "$3" != "norestart" ]; then
|
||||||
echo "# Start ${netprefix}${plugin}"
|
echo "# Start ${netprefix}${plugin}"
|
||||||
$lightningcli_alias plugin start /home/bitcoin/cl-plugins-enabled/${plugin}.py
|
$lightningcli_alias plugin start /home/bitcoin/cl-plugins-enabled/${plugin}.py
|
||||||
@ -59,7 +49,7 @@ if [ "$1" = "off" ];then
|
|||||||
sudo sed -i "/^feeadjuster/d" ${CLCONF}
|
sudo sed -i "/^feeadjuster/d" ${CLCONF}
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^${netprefix}feeadjuster=.*/${netprefix}feeadjuster=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}feeadjuster "off"
|
||||||
|
|
||||||
echo "# The ${plugin} was uninstalled"
|
echo "# The ${plugin} was uninstalled"
|
||||||
fi
|
fi
|
@ -22,16 +22,6 @@ PGPpubkeyFingerprint="4AEE18F83AFDEB23"
|
|||||||
# source <(/home/admin/config.scripts/network.aliases.sh getvars cl <mainnet|testnet|signet>)
|
# source <(/home/admin/config.scripts/network.aliases.sh getvars cl <mainnet|testnet|signet>)
|
||||||
source <(/home/admin/config.scripts/network.aliases.sh getvars cl mainnet)
|
source <(/home/admin/config.scripts/network.aliases.sh getvars cl mainnet)
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
configEntry="clHTTPplugin"
|
|
||||||
configEntryExists=$(sudo cat /mnt/hdd/raspiblitz.conf | grep -c "${configEntry}")
|
|
||||||
if [ "${configEntryExists}" == "0" ]; then
|
|
||||||
echo "# adding default config entry for '${configEntry}'"
|
|
||||||
sudo /bin/sh -c "echo '${configEntry}=off' >> /mnt/hdd/raspiblitz.conf"
|
|
||||||
else
|
|
||||||
echo "# default config entry for '${configEntry}' exists"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $1 = connect ];then
|
if [ $1 = connect ];then
|
||||||
toraddress=$(sudo cat /mnt/hdd/tor/clHTTPplugin/hostname)
|
toraddress=$(sudo cat /mnt/hdd/tor/clHTTPplugin/hostname)
|
||||||
PASSWORD_B=$(sudo cat /mnt/hdd/bitcoin/bitcoin.conf | grep rpcpassword | cut -c 13-)
|
PASSWORD_B=$(sudo cat /mnt/hdd/bitcoin/bitcoin.conf | grep rpcpassword | cut -c 13-)
|
||||||
@ -49,7 +39,7 @@ In Fully Noded go to 'Settings' > 'Node Manager' > +, from there you will be aut
|
|||||||
add a label
|
add a label
|
||||||
add the rpc user: lightning
|
add the rpc user: lightning
|
||||||
add the rpc password is your Password_B
|
add the rpc password is your Password_B
|
||||||
add the onion address (also shown on the display as a QR and below), ensure you add the port at the end:
|
add the onion address (also shown on the display as a QR and below), ensure you add the port at the end:
|
||||||
${toraddress}:9080"
|
${toraddress}:9080"
|
||||||
|
|
||||||
qrencode -t ANSIUTF8 "${toraddress}:9080"
|
qrencode -t ANSIUTF8 "${toraddress}:9080"
|
||||||
@ -57,7 +47,7 @@ In Fully Noded go to 'Settings' > 'Node Manager' > +, from there you will be aut
|
|||||||
echo "
|
echo "
|
||||||
ignore the macaroon and cert as that is for LND only
|
ignore the macaroon and cert as that is for LND only
|
||||||
|
|
||||||
Thats it, Fully Noded will now automatically use those credentials for any lightning related functionality.
|
Thats it, Fully Noded will now automatically use those credentials for any lightning related functionality.
|
||||||
You can only have one lightning node at a a time, to add a new one just overwrite the existing credentials.
|
You can only have one lightning node at a a time, to add a new one just overwrite the existing credentials.
|
||||||
|
|
||||||
In Fully Noded you will see lightning bolt zap buttons in a few places, tap them to see what they do.
|
In Fully Noded you will see lightning bolt zap buttons in a few places, tap them to see what they do.
|
||||||
@ -93,7 +83,7 @@ if [ "$1" = "on" ];then
|
|||||||
|
|
||||||
if [ ! -f /home/bitcoin/cl-plugins-available/c-lightning-http-plugin ];then
|
if [ ! -f /home/bitcoin/cl-plugins-available/c-lightning-http-plugin ];then
|
||||||
sudo -u bitcoin mkdir /home/bitcoin/cl-plugins-available
|
sudo -u bitcoin mkdir /home/bitcoin/cl-plugins-available
|
||||||
cd /home/bitcoin/cl-plugins-available || exit 1
|
cd /home/bitcoin/cl-plugins-available || exit 1
|
||||||
sudo -u bitcoin git clone https://github.com/Start9Labs/c-lightning-http-plugin.git
|
sudo -u bitcoin git clone https://github.com/Start9Labs/c-lightning-http-plugin.git
|
||||||
cd c-lightning-http-plugin || exit 1
|
cd c-lightning-http-plugin || exit 1
|
||||||
sudo -u bitcoin git reset --hard ${clHTTPpluginVersion} || exit 1
|
sudo -u bitcoin git reset --hard ${clHTTPpluginVersion} || exit 1
|
||||||
@ -124,18 +114,18 @@ if [ "$1" = "on" ];then
|
|||||||
echo "
|
echo "
|
||||||
http-pass=${PASSWORD_B}
|
http-pass=${PASSWORD_B}
|
||||||
" | sudo tee -a ${CLCONF}
|
" | sudo tee -a ${CLCONF}
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "# clHTTPplugin is already configured in ${CLCONF}"
|
echo "# clHTTPplugin is already configured in ${CLCONF}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# hidden service to https://xx.onion
|
# hidden service to https://xx.onion
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh clHTTPplugin 9080 9080
|
/home/admin/config.scripts/tor.onion-service.sh clHTTPplugin 9080 9080
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^clHTTPplugin=.*/clHTTPplugin=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set clHTTPplugin "on"
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ] && [ "$2" != "norestart" ]; then
|
if [ "${state}" == "ready" ] && [ "$2" != "norestart" ]; then
|
||||||
echo "# Restart the lightningd.service to activate clHTTPplugin"
|
echo "# Restart the lightningd.service to activate clHTTPplugin"
|
||||||
sudo systemctl restart lightningd
|
sudo systemctl restart lightningd
|
||||||
@ -158,7 +148,7 @@ if [ "$1" = "off" ];then
|
|||||||
echo "# Restart the lightningd.service to deactivate clHTTPplugin"
|
echo "# Restart the lightningd.service to deactivate clHTTPplugin"
|
||||||
sudo systemctl restart lightningd
|
sudo systemctl restart lightningd
|
||||||
|
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off clHTTPplugin
|
/home/admin/config.scripts/tor.onion-service.sh off clHTTPplugin
|
||||||
|
|
||||||
# purge
|
# purge
|
||||||
if [ "$(echo "$@" | grep -c purge)" -gt 0 ];then
|
if [ "$(echo "$@" | grep -c purge)" -gt 0 ];then
|
||||||
@ -166,7 +156,7 @@ if [ "$1" = "off" ];then
|
|||||||
sudo rm -rf /home/bitcoin/cl-plugins-available/c-lightning-http-plugin
|
sudo rm -rf /home/bitcoin/cl-plugins-available/c-lightning-http-plugin
|
||||||
fi
|
fi
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^clHTTPplugin=.*/clHTTPplugin=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set clHTTPplugin "off"
|
||||||
echo "# clHTTPplugin was uninstalled"
|
echo "# clHTTPplugin was uninstalled"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
@ -43,27 +43,17 @@ Accept the self-signed SSL certificate with the fingerprint:
|
|||||||
${fingerprint}\n
|
${fingerprint}\n
|
||||||
${toraddresstext}
|
${toraddresstext}
|
||||||
" 17 67
|
" 17 67
|
||||||
|
|
||||||
/home/admin/config.scripts/blitz.display.sh hide
|
/home/admin/config.scripts/blitz.display.sh hide
|
||||||
|
|
||||||
echo "# please wait ..."
|
echo "# please wait ..."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
configEntry="${netprefix}sparko"
|
|
||||||
configEntryExists=$(sudo cat /mnt/hdd/raspiblitz.conf | grep -c "${configEntry}")
|
|
||||||
if [ "${configEntryExists}" == "0" ]; then
|
|
||||||
echo "# adding default config entry for '${configEntry}'"
|
|
||||||
sudo /bin/sh -c "echo '${configEntry}=off' >> /mnt/hdd/raspiblitz.conf"
|
|
||||||
else
|
|
||||||
echo "# default config entry for '${configEntry}' exists"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $1 = connect ];then
|
if [ $1 = connect ];then
|
||||||
localip=$(ip addr | grep 'state UP' -A2 | grep -E -v 'docker0|veth' | grep 'eth0\|wlan0\|enp0' | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
|
localip=$(ip addr | grep 'state UP' -A2 | grep -E -v 'docker0|veth' | grep 'eth0\|wlan0\|enp0' | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
|
||||||
toraddress=$(sudo cat /mnt/hdd/tor/${netprefix}sparko/hostname)
|
toraddress=$(sudo cat /mnt/hdd/tor/${netprefix}sparko/hostname)
|
||||||
accesskey=$(sudo cat ${CLCONF} | grep "^sparko-keys=" | cut -d= -f2 | cut -d';' -f1)
|
accesskey=$(sudo cat ${CLCONF} | grep "^sparko-keys=" | cut -d= -f2 | cut -d';' -f1)
|
||||||
url="https://${localip}:${portprefix}9000/"
|
url="https://${localip}:${portprefix}9000/"
|
||||||
#string="${url}?access-key=${accesskey}"
|
#string="${url}?access-key=${accesskey}"
|
||||||
#/home/admin/config.scripts/blitz.display.sh qr "$string"
|
#/home/admin/config.scripts/blitz.display.sh qr "$string"
|
||||||
@ -109,7 +99,7 @@ if [ "$1" = "on" ];then
|
|||||||
isARM=$(uname -m | grep -c 'arm')
|
isARM=$(uname -m | grep -c 'arm')
|
||||||
isAARCH64=$(uname -m | grep -c 'aarch64')
|
isAARCH64=$(uname -m | grep -c 'aarch64')
|
||||||
isX86_64=$(uname -m | grep -c 'x86_64')
|
isX86_64=$(uname -m | grep -c 'x86_64')
|
||||||
|
|
||||||
if [ ${isARM} -eq 1 ] ; then
|
if [ ${isARM} -eq 1 ] ; then
|
||||||
DISTRO="linux-arm"
|
DISTRO="linux-arm"
|
||||||
elif [ ${isAARCH64} -eq 1 ] ; then
|
elif [ ${isAARCH64} -eq 1 ] ; then
|
||||||
@ -117,7 +107,7 @@ if [ "$1" = "on" ];then
|
|||||||
elif [ ${isX86_64} -eq 1 ] ; then
|
elif [ ${isX86_64} -eq 1 ] ; then
|
||||||
DISTRO="linux_amd64"
|
DISTRO="linux_amd64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f /home/bitcoin/cl-plugins-available/sparko ];then
|
if [ ! -f /home/bitcoin/cl-plugins-available/sparko ];then
|
||||||
sudo -u bitcoin mkdir /home/bitcoin/cl-plugins-available
|
sudo -u bitcoin mkdir /home/bitcoin/cl-plugins-available
|
||||||
# download binary
|
# download binary
|
||||||
@ -134,7 +124,7 @@ if [ "$1" = "on" ];then
|
|||||||
|
|
||||||
if [ ! -f /home/bitcoin/.lightning/sparko-tls/key.pem ];then
|
if [ ! -f /home/bitcoin/.lightning/sparko-tls/key.pem ];then
|
||||||
# create a self signed cert https://github.com/fiatjaf/sparko#how-to-use
|
# create a self signed cert https://github.com/fiatjaf/sparko#how-to-use
|
||||||
/home/admin/config.scripts/internet.selfsignedcert.sh
|
/home/admin/config.scripts/internet.selfsignedcert.sh
|
||||||
# sparko looks for specific filenames
|
# sparko looks for specific filenames
|
||||||
sudo -u bitcoin mkdir /home/bitcoin/.lightning/sparko-tls
|
sudo -u bitcoin mkdir /home/bitcoin/.lightning/sparko-tls
|
||||||
sudo ln -sf /mnt/hdd/app-data/selfsignedcert/selfsigned.key \
|
sudo ln -sf /mnt/hdd/app-data/selfsignedcert/selfsigned.key \
|
||||||
@ -170,12 +160,12 @@ sparko-keys=${masterkeythatcandoeverything}; ${secretaccesskeythatcanreadstuff}:
|
|||||||
sudo ufw allow "${portprefix}9000" comment "${netprefix}sparko"
|
sudo ufw allow "${portprefix}9000" comment "${netprefix}sparko"
|
||||||
|
|
||||||
# hidden service to https://xx.onion
|
# hidden service to https://xx.onion
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh ${netprefix}sparko 443 ${portprefix}9000
|
/home/admin/config.scripts/tor.onion-service.sh ${netprefix}sparko 443 ${portprefix}9000
|
||||||
|
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^${netprefix}sparko=.*/${netprefix}sparko=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}sparko "on"
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ] && [ "$3" != "norestart" ]; then
|
if [ "${state}" == "ready" ] && [ "$3" != "norestart" ]; then
|
||||||
echo "# Restart the ${netprefix}lightningd.service to activate Sparko"
|
echo "# Restart the ${netprefix}lightningd.service to activate Sparko"
|
||||||
sudo systemctl restart ${netprefix}lightningd
|
sudo systemctl restart ${netprefix}lightningd
|
||||||
@ -185,13 +175,13 @@ sparko-keys=${masterkeythatcandoeverything}; ${secretaccesskeythatcanreadstuff}:
|
|||||||
echo "# Monitor with:"
|
echo "# Monitor with:"
|
||||||
echo "sudo journalctl | grep sparko | tail -n5"
|
echo "sudo journalctl | grep sparko | tail -n5"
|
||||||
echo "sudo tail -n 100 -f /home/bitcoin/.lightning/${CLNETWORK}/cl.log | grep sparko"
|
echo "sudo tail -n 100 -f /home/bitcoin/.lightning/${CLNETWORK}/cl.log | grep sparko"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$1" = "off" ];then
|
if [ "$1" = "off" ];then
|
||||||
# delete symlink
|
# delete symlink
|
||||||
sudo rm -rf /home/bitcoin/${netprefix}cl-plugins-enabled/sparko
|
sudo rm -rf /home/bitcoin/${netprefix}cl-plugins-enabled/sparko
|
||||||
|
|
||||||
echo "# Editing ${CLCONF}"
|
echo "# Editing ${CLCONF}"
|
||||||
sudo sed -i "/^sparko/d" ${CLCONF}
|
sudo sed -i "/^sparko/d" ${CLCONF}
|
||||||
|
|
||||||
@ -200,8 +190,8 @@ if [ "$1" = "off" ];then
|
|||||||
|
|
||||||
echo "# Deny port ${portprefix}9000 through the firewall"
|
echo "# Deny port ${portprefix}9000 through the firewall"
|
||||||
sudo ufw deny "${portprefix}9000"
|
sudo ufw deny "${portprefix}9000"
|
||||||
|
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off ${netprefix}sparko
|
/home/admin/config.scripts/tor.onion-service.sh off ${netprefix}sparko
|
||||||
|
|
||||||
# purge
|
# purge
|
||||||
if [ "$(echo "$@" | grep -c purge)" -gt 0 ];then
|
if [ "$(echo "$@" | grep -c purge)" -gt 0 ];then
|
||||||
@ -209,7 +199,7 @@ if [ "$1" = "off" ];then
|
|||||||
sudo rm -rf /home/bitcoin/cl-plugins-available/sparko
|
sudo rm -rf /home/bitcoin/cl-plugins-available/sparko
|
||||||
fi
|
fi
|
||||||
# setting value in raspi blitz config
|
# setting value in raspi blitz config
|
||||||
sudo sed -i "s/^${netprefix}sparko=.*/${netprefix}sparko=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}sparko "off"
|
||||||
echo "# Sparko was uninstalled"
|
echo "# Sparko was uninstalled"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
@ -35,7 +35,7 @@ if [ "$1" = "on" ];then
|
|||||||
sudo ln -s /home/bitcoin/cl-plugins-available/plugins/${plugin}/${plugin}.py \
|
sudo ln -s /home/bitcoin/cl-plugins-available/plugins/${plugin}/${plugin}.py \
|
||||||
/home/bitcoin/${netprefix}cl-plugins-enabled
|
/home/bitcoin/${netprefix}cl-plugins-enabled
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# Restart the ${netprefix}lightningd.service to activate the ${plugin} plugin"
|
echo "# Restart the ${netprefix}lightningd.service to activate the ${plugin} plugin"
|
||||||
sudo systemctl restart ${netprefix}lightningd
|
sudo systemctl restart ${netprefix}lightningd
|
||||||
|
@ -288,9 +288,7 @@ if [ ${mode} = "cl-import-gui" ]; then
|
|||||||
if [ "$(grep -c "hsm_secret is not encrypted" < "$output")" -gt 0 ];then
|
if [ "$(grep -c "hsm_secret is not encrypted" < "$output")" -gt 0 ];then
|
||||||
echo "# The hsm_secret is not encrypted"
|
echo "# The hsm_secret is not encrypted"
|
||||||
echo "# Record in raspiblitz.conf"
|
echo "# Record in raspiblitz.conf"
|
||||||
sudo sed -i \
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clEncryptedHSM "off"
|
||||||
"s/^${netprefix}clEncryptedHSM=.*/${netprefix}clEncryptedHSM=off/g" \
|
|
||||||
/mnt/hdd/raspiblitz.conf
|
|
||||||
else
|
else
|
||||||
cat $output
|
cat $output
|
||||||
echo "# Starting cl.hsmtool.sh unlock"
|
echo "# Starting cl.hsmtool.sh unlock"
|
||||||
|
@ -32,7 +32,7 @@ if [ $(grep -c "^sparko" < ${CLCONF}) -gt 0 ];then
|
|||||||
echo "# The Sparko plugin is not present but in config"
|
echo "# The Sparko plugin is not present but in config"
|
||||||
sed -i "/^sparko/d" ${CLCONF}
|
sed -i "/^sparko/d" ${CLCONF}
|
||||||
rm -rf /home/bitcoin/${netprefix}cl-plugins-enabled/sparko
|
rm -rf /home/bitcoin/${netprefix}cl-plugins-enabled/sparko
|
||||||
sed -i "s/^${netprefix}sparko=.*/${netprefix}sparko=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}sparko "off"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ if [ $(grep -c "^http-pass" < ${CLCONF}) -gt 0 ];then
|
|||||||
echo "# The clHTTPplugin is not present but in config"
|
echo "# The clHTTPplugin is not present but in config"
|
||||||
sed -i "/^http-pass/d" ${CLCONF}
|
sed -i "/^http-pass/d" ${CLCONF}
|
||||||
rm -rf /home/bitcoin/cl-plugins-enabled/c-lightning-http-plugin
|
rm -rf /home/bitcoin/cl-plugins-enabled/c-lightning-http-plugin
|
||||||
sed -i "s/^clHTTPplugin=.*/clHTTPplugin=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set clHTTPplugin "off"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -52,6 +52,6 @@ if [ $(grep -c "^feeadjuster" < ${CLCONF}) -gt 0 ];then
|
|||||||
echo "# The feeadjuster plugin is not present but in config"
|
echo "# The feeadjuster plugin is not present but in config"
|
||||||
sed -i "/^feeadjuster/d" ${CLCONF}
|
sed -i "/^feeadjuster/d" ${CLCONF}
|
||||||
rm -rf /home/bitcoin/${netprefix}cl-plugins-enabled/feeadjuster.py
|
rm -rf /home/bitcoin/${netprefix}cl-plugins-enabled/feeadjuster.py
|
||||||
sed -i "s/^${netprefix}feeadjuster=.*/${netprefix}feeadjuster=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}feeadjuster "off"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
@ -45,15 +45,6 @@ if grep -Eq "${netprefix}clEncryptedHSM=on" /mnt/hdd/raspiblitz.conf;then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^${netprefix}clEncryptedHSM=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "${netprefix}clEncryptedHSM=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^${netprefix}clAutoUnlock=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "${netprefix}clAutoUnlock=off" >> /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# Functions #
|
# Functions #
|
||||||
#############
|
#############
|
||||||
@ -122,9 +113,7 @@ function encryptHSMsecret() {
|
|||||||
(echo $walletPassword; echo $walletPassword) | \
|
(echo $walletPassword; echo $walletPassword) | \
|
||||||
sudo -u bitcoin lightning-hsmtool encrypt $hsmSecretPath || exit 1
|
sudo -u bitcoin lightning-hsmtool encrypt $hsmSecretPath || exit 1
|
||||||
# setting value in raspiblitz.conf
|
# setting value in raspiblitz.conf
|
||||||
sudo sed -i \
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clEncryptedHSM "on"
|
||||||
"s/^${netprefix}clEncryptedHSM=.*/${netprefix}clEncryptedHSM=on/g" \
|
|
||||||
/mnt/hdd/raspiblitz.conf
|
|
||||||
echo "# Encrypted the hsm_secret for C-lightning $CHAIN"
|
echo "# Encrypted the hsm_secret for C-lightning $CHAIN"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,9 +130,7 @@ function decryptHSMsecret() {
|
|||||||
echo "# Continue to record in the raspiblitz.conf"
|
echo "# Continue to record in the raspiblitz.conf"
|
||||||
else
|
else
|
||||||
# setting value in raspiblitz.conf
|
# setting value in raspiblitz.conf
|
||||||
sudo sed -i \
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clEncryptedHSM "on"
|
||||||
"s/^${netprefix}clEncryptedHSM=.*/${netprefix}clEncryptedHSM=on/g" \
|
|
||||||
/mnt/hdd/raspiblitz.conf
|
|
||||||
if [ -f $passwordFile ];then
|
if [ -f $passwordFile ];then
|
||||||
echo "# Getting the password from $passwordFile"
|
echo "# Getting the password from $passwordFile"
|
||||||
else
|
else
|
||||||
@ -162,9 +149,7 @@ function decryptHSMsecret() {
|
|||||||
fi
|
fi
|
||||||
shredPasswordFile
|
shredPasswordFile
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i \
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clEncryptedHSM "off"
|
||||||
"s/^${netprefix}clEncryptedHSM=.*/${netprefix}clEncryptedHSM=off/g" \
|
|
||||||
/mnt/hdd/raspiblitz.conf
|
|
||||||
echo "# Decrypted the hsm_secret for C-lightning $CHAIN"
|
echo "# Decrypted the hsm_secret for C-lightning $CHAIN"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,9 +254,7 @@ elif [ "$1" = "unlock" ]; then
|
|||||||
echo "# The hsm_secret is encrypted, but unlock is not configured"
|
echo "# The hsm_secret is encrypted, but unlock is not configured"
|
||||||
passwordToFile
|
passwordToFile
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i \
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clEncryptedHSM "on"
|
||||||
"s/^${netprefix}clEncryptedHSM=.*/${netprefix}clEncryptedHSM=on/g" \
|
|
||||||
/mnt/hdd/raspiblitz.conf
|
|
||||||
/home/admin/config.scripts/cl.install-service.sh $CHAIN
|
/home/admin/config.scripts/cl.install-service.sh $CHAIN
|
||||||
|
|
||||||
# get new password
|
# get new password
|
||||||
@ -345,9 +328,8 @@ elif [ "$1" = "autounlock-on" ]; then
|
|||||||
passwordToFile
|
passwordToFile
|
||||||
fi
|
fi
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i \
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clAutoUnlock "on"
|
||||||
"s/^${netprefix}clAutoUnlock=.*/${netprefix}clAutoUnlock=on/g" \
|
|
||||||
/mnt/hdd/raspiblitz.conf
|
|
||||||
echo "# Autounlock is on for C-lightning $CHAIN"
|
echo "# Autounlock is on for C-lightning $CHAIN"
|
||||||
|
|
||||||
elif [ "$1" = "autounlock-off" ]; then
|
elif [ "$1" = "autounlock-off" ]; then
|
||||||
@ -358,9 +340,7 @@ elif [ "$1" = "autounlock-off" ]; then
|
|||||||
sudo chown bitcoin:bitcoin /dev/shm/.${netprefix}cl.pw
|
sudo chown bitcoin:bitcoin /dev/shm/.${netprefix}cl.pw
|
||||||
fi
|
fi
|
||||||
# setting value in raspiblitz config
|
# setting value in raspiblitz config
|
||||||
sudo sed -i \
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}clAutoUnlock "off"
|
||||||
"s/^${netprefix}clAutoUnlock=.*/${netprefix}clAutoUnlock=off/g" \
|
|
||||||
/mnt/hdd/raspiblitz.conf
|
|
||||||
echo "# Autounlock is off for C-lightning $CHAIN"
|
echo "# Autounlock is off for C-lightning $CHAIN"
|
||||||
|
|
||||||
elif [ "$1" = "change-password" ]; then
|
elif [ "$1" = "change-password" ]; then
|
||||||
|
@ -81,7 +81,7 @@ sudo systemctl daemon-reload
|
|||||||
sudo systemctl enable ${netprefix}lightningd
|
sudo systemctl enable ${netprefix}lightningd
|
||||||
echo "# Enabled the ${netprefix}lightningd.service"
|
echo "# Enabled the ${netprefix}lightningd.service"
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
sudo systemctl start ${netprefix}lightningd
|
sudo systemctl start ${netprefix}lightningd
|
||||||
echo "# Started the ${netprefix}lightningd.service"
|
echo "# Started the ${netprefix}lightningd.service"
|
||||||
|
@ -145,16 +145,6 @@ fi
|
|||||||
echo "# Running: 'cl.install.sh $*'"
|
echo "# Running: 'cl.install.sh $*'"
|
||||||
echo "# Using the settings for: ${network} ${CHAIN}"
|
echo "# Using the settings for: ${network} ${CHAIN}"
|
||||||
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^lightning=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "lightning=cl" | sudo tee -a /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
# add default value to raspi config if needed
|
|
||||||
if ! grep -Eq "^${netprefix}cl=" /mnt/hdd/raspiblitz.conf; then
|
|
||||||
echo "${netprefix}cl=off" | sudo tee -a /mnt/hdd/raspiblitz.conf
|
|
||||||
fi
|
|
||||||
source /mnt/hdd/raspiblitz.conf
|
|
||||||
|
|
||||||
if [ "$1" = on ]||[ "$1" = update ]||[ "$1" = testPR ];then
|
if [ "$1" = on ]||[ "$1" = update ]||[ "$1" = testPR ];then
|
||||||
|
|
||||||
if [ "${CHAIN}" == "testnet" ] && [ "${testnet}" != "on" ]; then
|
if [ "${CHAIN}" == "testnet" ] && [ "${testnet}" != "on" ]; then
|
||||||
@ -363,12 +353,12 @@ alias ${netprefix}clconf=\"sudo\
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
# setting value in the raspiblitz.conf
|
# setting value in the raspiblitz.conf
|
||||||
sudo sed -i "s/^${netprefix}cl=.*/${netprefix}cl=on/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}cl on
|
||||||
|
|
||||||
# if this is the first lightning mainnet turned on - make default
|
# if this is the first lightning mainnet turned on - make default
|
||||||
if [ "${CHAIN}" == "mainnet" ] && [ "${lightning}" == "" ]; then
|
if [ "${CHAIN}" == "mainnet" ] && [ "${lightning}" == "" ]; then
|
||||||
echo "# CL is now the default lightning implementation"
|
echo "# CL is now the default lightning implementation"
|
||||||
sudo sed -i "s/^lightning=.*/lightning=cl/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lightning cl
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
@ -429,15 +419,15 @@ if [ "$1" = "off" ];then
|
|||||||
sudo rm -f /usr/local/bin/lightning-cli
|
sudo rm -f /usr/local/bin/lightning-cli
|
||||||
fi
|
fi
|
||||||
# setting value in the raspiblitz.conf
|
# setting value in the raspiblitz.conf
|
||||||
sudo sed -i "s/^${netprefix}cl=.*/${netprefix}cl=off/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set ${netprefix}cl "off"
|
||||||
|
|
||||||
# if cl mainnet was default - remove
|
# if cl mainnet was default - remove
|
||||||
if [ "${CHAIN}" == "mainnet" ] && [ "${lightning}" == "cl" ]; then
|
if [ "${CHAIN}" == "mainnet" ] && [ "${lightning}" == "cl" ]; then
|
||||||
echo "# CL is REMOVED as the default lightning implementation"
|
echo "# CL is REMOVED as the default lightning implementation"
|
||||||
sudo sed -i "s/^lightning=.*/lightning=/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lightning ""
|
||||||
if [ "${lnd}" == "on" ]; then
|
if [ "${lnd}" == "on" ]; then
|
||||||
echo "# LND is now the new default lightning implementation"
|
echo "# LND is now the new default lightning implementation"
|
||||||
sudo sed -i "s/^lightning=.*/lightning=lnd/g" /mnt/hdd/raspiblitz.conf
|
/home/admin/config.scripts/blitz.conf.sh set lightning "lnd"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
240
home.admin/config.scripts/cl.monitor.sh
Executable file
240
home.admin/config.scripts/cl.monitor.sh
Executable file
@ -0,0 +1,240 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# command info
|
||||||
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||||
|
echo "monitor and troubleshot the c-lightning network"
|
||||||
|
echo "cl.monitor.sh [mainnet|testnet|signet] status"
|
||||||
|
echo "cl.monitor.sh [mainnet|testnet|signet] config"
|
||||||
|
echo "cl.monitor.sh [mainnet|testnet|signet] info"
|
||||||
|
echo "cl.monitor.sh [mainnet|testnet|signet] wallet"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if started with sudo
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "error='run as root'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set based on network type (using own mapping to be able to run without calling sudo -u bitcoin)
|
||||||
|
if [ "$1" == "mainnet" ]; then
|
||||||
|
clConfigDir="/home/bitcoin/.lightning"
|
||||||
|
lightningcli_alias="/usr/local/bin/lightning-cli --lightning-dir=/home/bitcoin/.lightning --conf=${clConfigDir}/config"
|
||||||
|
blockchainHeightKey="btc_mainnet_blocks_verified"
|
||||||
|
netprefix=""
|
||||||
|
elif [ "$1" == "testnet" ]; then
|
||||||
|
clConfigDir="/home/bitcoin/.lightning/testnet"
|
||||||
|
lightningcli_alias="/usr/local/bin/lightning-cli --lightning-dir=/home/bitcoin/.lightning --conf=${clConfigDir}/config"
|
||||||
|
blockchainHeightKey="btc_testnet_blocks_verified"
|
||||||
|
netprefix="t"
|
||||||
|
elif [ "$1" == "signet" ]; then
|
||||||
|
clConfigDir="/home/bitcoin/.lightning/signet"
|
||||||
|
lightningcli_alias="/usr/local/bin/lightning-cli --lightning-dir=/home/bitcoin/.lightning --conf=${clConfigDir}/config"
|
||||||
|
blockchainHeightKey="btc_signet_blocks_verified"
|
||||||
|
netprefix="s"
|
||||||
|
else
|
||||||
|
echo "error='not supported net'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# STATUS
|
||||||
|
# check general status info
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
if [ "$2" = "status" ]; then
|
||||||
|
|
||||||
|
cl_version=$($lightningcli_alias --version 2>/dev/null | cut -d ' ' -f3)
|
||||||
|
cl_running=$(systemctl status ${netprefix}lightningd 2>/dev/null | grep -c "active (running)")
|
||||||
|
cl_ready="0"
|
||||||
|
cl_online="0"
|
||||||
|
cl_error_short=""
|
||||||
|
cl_error_full=""
|
||||||
|
|
||||||
|
if [ "${cl_running}" != "0" ]; then
|
||||||
|
cl_running="1"
|
||||||
|
|
||||||
|
# test connection - record win & fail info
|
||||||
|
randStr=$(echo "$RANDOM")
|
||||||
|
rm /var/cache/raspiblitz/.cl-${randStr}.out 2>/dev/null
|
||||||
|
rm /var/cache/raspiblitz/.cl-${randStr}.error 2>/dev/null
|
||||||
|
touch /var/cache/raspiblitz/.cl-${randStr}.out
|
||||||
|
touch /var/cache/raspiblitz/.cl-${randStr}.error
|
||||||
|
echo "# ${lightningcli_alias} getinfo"
|
||||||
|
$lightningcli_alias getinfo 1>/var/cache/raspiblitz/.cl-${randStr}.out 2>/var/cache/raspiblitz/.cl-${randStr}.error
|
||||||
|
winData=$(cat /var/cache/raspiblitz/.cl-${randStr}.out 2>/dev/null)
|
||||||
|
failData=$(cat /var/cache/raspiblitz/.cl-${randStr}.error 2>/dev/null)
|
||||||
|
rm /var/cache/raspiblitz/.cl-${randStr}.out
|
||||||
|
rm /var/cache/raspiblitz/.cl-${randStr}.error
|
||||||
|
|
||||||
|
# check for errors
|
||||||
|
if [ "${failData}" != "" ]; then
|
||||||
|
cl_ready="0"
|
||||||
|
cl_error_short=""
|
||||||
|
cl_error_full=$(echo ${failData} | tr -d "'" | tr -d '"')
|
||||||
|
|
||||||
|
# check results if proof for online
|
||||||
|
else
|
||||||
|
cl_ready="1"
|
||||||
|
connections=$( echo "${winData}" | grep "num_peers\"" | tr -cd '[[:digit:]]')
|
||||||
|
if [ "${connections}" != "" ] && [ "${connections}" != "0" ]; then
|
||||||
|
cl_online="1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# print results
|
||||||
|
echo "ln_cl_version='${cl_version}'"
|
||||||
|
echo "ln_cl_running='${cl_running}'"
|
||||||
|
echo "ln_cl_ready='${cl_ready}'"
|
||||||
|
echo "ln_cl_online='${cl_online}'"
|
||||||
|
echo "ln_cl_error_short='${cl_error_short}'"
|
||||||
|
echo "ln_cl_error_full='${cl_error_full}'"
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# CONFIG
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
if [ "$2" = "config" ]; then
|
||||||
|
|
||||||
|
# get data
|
||||||
|
clConfigData=$(cat $clConfigDir/config)
|
||||||
|
if [ "${clConfigData}" == "" ]; then
|
||||||
|
echo "error='no config'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# no usesul data to monitor in config yet
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# INFO
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
if [ "$2" = "info" ]; then
|
||||||
|
|
||||||
|
# raw data demo:
|
||||||
|
# sudo /usr/local/bin/lightning-cli --lightning-dir=/home/bitcoin/.lightning --conf=/home/bitcoin/.lightning/config getinfo
|
||||||
|
|
||||||
|
# get data
|
||||||
|
ln_getInfo=$($lightningcli_alias getinfo 2>/dev/null)
|
||||||
|
if [ "${ln_getInfo}" == "" ]; then
|
||||||
|
echo "error='no data'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# parse data
|
||||||
|
cl_alias=$(echo "${ln_getInfo}" | grep '"alias":' | cut -d '"' -f4)
|
||||||
|
port=$(echo "${ln_getInfo}" | grep '"port":' | cut -d: -f2 | tail -1 | bc)
|
||||||
|
pubkey=$(echo "${ln_getInfo}" | grep '"id":' | cut -d '"' -f4)
|
||||||
|
address=$(echo "${ln_getInfo}" | grep '.onion' | cut -d '"' -f4)
|
||||||
|
if [ ${#address} -eq 0 ]; then
|
||||||
|
address=$(echo "${ln_getInfo}" | grep '"ipv4"' -A 1 | tail -1 | cut -d '"' -f4)
|
||||||
|
fi
|
||||||
|
cl_address="${pubkey}@${address}:${port}"
|
||||||
|
cl_tor=$(echo "${cl_address}" | grep -c ".onion")
|
||||||
|
cl_channels_pending=$(echo "${ln_getInfo}" | jq -r '.num_pending_channels')
|
||||||
|
cl_channels_active=$(echo "${ln_getInfo}" | jq -r '.num_active_channels')
|
||||||
|
cl_channels_inactive=$(echo "${ln_getInfo}" | jq -r '.num_inactive_channels')
|
||||||
|
cl_channels_total=$(( cl_channels_pending + cl_channels_active + cl_channels_inactive ))
|
||||||
|
cl_peers=$(echo "${ln_getInfo}" | jq -r '.num_peers')
|
||||||
|
cl_fees_collected_msat=$(echo "${ln_getInfo}" | jq -r '.fees_collected_msat')
|
||||||
|
|
||||||
|
# calculate with cached value if c-lightning is fully synced
|
||||||
|
source <(/home/admin/_cache.sh get ${blockchainHeightKey})
|
||||||
|
#echo "#blockchainHeightKey(${!blockchainHeightKey})"
|
||||||
|
blockheight="${!blockchainHeightKey}"
|
||||||
|
#echo "#blockheight(${blockheight})"
|
||||||
|
cl_sync_height=$(echo "${ln_getInfo}" | jq .blockheight)
|
||||||
|
#echo "#cl_sync_height(${cl_sync_height})"
|
||||||
|
cl_sync_chain=""
|
||||||
|
cl_sync_progress=""
|
||||||
|
if [ "${blockheight}" != "" ]; then
|
||||||
|
cl_sync_progress=$(echo "scale=2; $cl_sync_height*100/$blockheight" | bc)
|
||||||
|
# needs to be at least "two blocks behind" to be considered not synced
|
||||||
|
blockheight=$(($blockheight - 1))
|
||||||
|
if [ ${blockheight} -gt ${cl_sync_height} ];then
|
||||||
|
cl_sync_chain=0
|
||||||
|
else
|
||||||
|
cl_sync_chain=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# print data
|
||||||
|
echo "ln_cl_alias='${cl_alias}'"
|
||||||
|
echo "ln_cl_address='${cl_address}'"
|
||||||
|
echo "ln_cl_tor='${cl_tor}'"
|
||||||
|
echo "ln_cl_peers='${cl_peers}'"
|
||||||
|
echo "ln_cl_sync_chain='${cl_sync_chain}'"
|
||||||
|
echo "ln_cl_sync_progress='${cl_sync_progress}'"
|
||||||
|
echo "ln_cl_channels_pending='${cl_channels_pending}'"
|
||||||
|
echo "ln_cl_channels_active='${cl_channels_active}'"
|
||||||
|
echo "ln_cl_channels_inactive='${cl_channels_inactive}'"
|
||||||
|
echo "ln_cl_channels_total='${cl_channels_total}'"
|
||||||
|
echo "ln_cl_fees_total='${cl_fees_collected_msat//[^0-9.]/}'"
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# WALLETS (FUNDS)
|
||||||
|
######################################################
|
||||||
|
|
||||||
|
if [ "$2" = "wallet" ]; then
|
||||||
|
|
||||||
|
# raw data demo:
|
||||||
|
# /usr/local/bin/lightning-cli --lightning-dir=/home/bitcoin/.lightning --conf=/home/bitcoin/.lightning/config listfunds
|
||||||
|
|
||||||
|
# get data
|
||||||
|
cl_listfunds=$($lightningcli_alias listfunds 2>/dev/null)
|
||||||
|
if [ "${cl_listfunds}" == "" ]; then
|
||||||
|
echo "error='no data'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln_walletbalance=0
|
||||||
|
for i in $(echo "$cl_listfunds" | jq .outputs[] | jq 'select(.status=="confirmed")' | grep value | awk '{print $2}' | cut -d, -f1);do
|
||||||
|
ln_walletbalance=$((ln_walletbalance+i))
|
||||||
|
done
|
||||||
|
ln_walletbalance_wait=0
|
||||||
|
for i in $(echo "$cl_listfunds" | jq .outputs[] | jq 'select(.status=="unconfirmed")' | grep value | awk '{print $2}' | cut -d, -f1);do
|
||||||
|
ln_walletbalance_wait=$((ln_walletbalance_wait+i))
|
||||||
|
done
|
||||||
|
ln_closedchannelbalance=0
|
||||||
|
for i in $(echo "$cl_listfunds" | jq .channels[] | jq 'select(.state=="ONCHAIN")' | grep channel_sat | awk '{print $2}' | cut -d, -f1);do
|
||||||
|
ln_closedchannelbalance=$((ln_closedchannelbalance+i))
|
||||||
|
done
|
||||||
|
ln_pendingonchain=$((ln_walletbalance_wait+ln_closedchannelbalance))
|
||||||
|
if [ ${#ln_pendingonchain} -gt 0 ]; then ln_pendingonchain="(+${ln_pendingonchain})"; fi
|
||||||
|
ln_channelbalance=0
|
||||||
|
for i in $(echo "$cl_listfunds" |jq .channels[]|jq 'select(.state=="CHANNELD_NORMAL")'|grep channel_sat|awk '{print $2}'|cut -d, -f1);do
|
||||||
|
ln_channelbalance=$((ln_channelbalance+i))
|
||||||
|
done
|
||||||
|
if [ ${#ln_channelbalance} -eq 0 ];then
|
||||||
|
ln_channelbalance=0
|
||||||
|
fi
|
||||||
|
ln_channelbalance_all=0
|
||||||
|
for i in $(echo "$cl_listfunds" |jq .channels[]|grep channel_sat|awk '{print $2}'|cut -d, -f1);do
|
||||||
|
ln_channelbalance_all=$((ln_channelbalance_all+i))
|
||||||
|
done
|
||||||
|
ln_channelbalance_pending=$((ln_channelbalance_all-ln_channelbalance-ln_closedchannelbalance))
|
||||||
|
if [ ${#ln_channelbalance_pending} -gt 0 ]; then ln_channelbalance_pending=" (+${ln_channelbalance_pending})"; fi
|
||||||
|
|
||||||
|
# print data
|
||||||
|
echo "ln_cl_wallet_onchain_balance='${ln_walletbalance//[^0-9.]/}'"
|
||||||
|
echo "ln_cl_wallet_onchain_pending='${ln_pendingonchain//[^0-9.]/}'"
|
||||||
|
echo "ln_cl_wallet_channels_balance='${ln_channelbalance//[^0-9.]/}'"
|
||||||
|
echo "ln_cl_wallet_channels_pending='${ln_channelbalance_pending//[^0-9.]/}'"
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "FAIL - Unknown Parameter $2"
|
||||||
|
exit 1
|
@ -26,10 +26,10 @@ if [ "$1" = connect ];then
|
|||||||
sudo ufw allow "${portprefix}6100" comment "${netprefix}clrest"
|
sudo ufw allow "${portprefix}6100" comment "${netprefix}clrest"
|
||||||
localip=$(ip addr | grep 'state UP' -A2 | grep -E -v 'docker0|veth' | grep 'eth0\|wlan0\|enp0' | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
|
localip=$(ip addr | grep 'state UP' -A2 | grep -E -v 'docker0|veth' | grep 'eth0\|wlan0\|enp0' | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
|
||||||
# hidden service to https://xx.onion
|
# hidden service to https://xx.onion
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh ${netprefix}clrest 443 ${portprefix}6100
|
/home/admin/config.scripts/tor.onion-service.sh ${netprefix}clrest 443 ${portprefix}6100
|
||||||
|
|
||||||
toraddress=$(sudo cat /mnt/hdd/tor/${netprefix}clrest/hostname)
|
toraddress=$(sudo cat /mnt/hdd/tor/${netprefix}clrest/hostname)
|
||||||
hex_macaroon=$(xxd -plain /home/bitcoin/c-lightning-REST/certs/access.macaroon | tr -d '\n')
|
hex_macaroon=$(xxd -plain /home/bitcoin/c-lightning-REST/certs/access.macaroon | tr -d '\n')
|
||||||
url="https://${localip}:${portprefix}6100/"
|
url="https://${localip}:${portprefix}6100/"
|
||||||
#string="${url}?${hex_macaroon}"
|
#string="${url}?${hex_macaroon}"
|
||||||
#/home/admin/config.scripts/blitz.display.sh qr "$string"
|
#/home/admin/config.scripts/blitz.display.sh qr "$string"
|
||||||
@ -92,7 +92,7 @@ if [ "$1" = on ];then
|
|||||||
|
|
||||||
sudo -u bitcoin npm install
|
sudo -u bitcoin npm install
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# config
|
# config
|
||||||
cd /home/bitcoin/c-lightning-REST || exit 1
|
cd /home/bitcoin/c-lightning-REST || exit 1
|
||||||
sudo -u bitcoin mkdir ${CLNETWORK}
|
sudo -u bitcoin mkdir ${CLNETWORK}
|
||||||
@ -105,7 +105,7 @@ if [ "$1" = on ];then
|
|||||||
\"LNRPCPATH\": \"/home/bitcoin/.lightning/${CLNETWORK}/lightning-rpc\",
|
\"LNRPCPATH\": \"/home/bitcoin/.lightning/${CLNETWORK}/lightning-rpc\",
|
||||||
\"RPCCOMMANDS\": [\"*\"]
|
\"RPCCOMMANDS\": [\"*\"]
|
||||||
}" | sudo -u bitcoin tee ./${CLNETWORK}/cl-rest-config.json
|
}" | sudo -u bitcoin tee ./${CLNETWORK}/cl-rest-config.json
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
# systemd unit for c-lightning-REST for ${CHAIN}
|
# systemd unit for c-lightning-REST for ${CHAIN}
|
||||||
# /etc/systemd/system/${netprefix}clrest.service
|
# /etc/systemd/system/${netprefix}clrest.service
|
||||||
@ -135,7 +135,7 @@ WantedBy=multi-user.target
|
|||||||
" | sudo tee /etc/systemd/system/${netprefix}clrest.service
|
" | sudo tee /etc/systemd/system/${netprefix}clrest.service
|
||||||
|
|
||||||
sudo systemctl enable ${netprefix}clrest
|
sudo systemctl enable ${netprefix}clrest
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
echo "# OK - the clrest.service is enabled, system is ready so starting service"
|
echo "# OK - the clrest.service is enabled, system is ready so starting service"
|
||||||
sudo systemctl start ${netprefix}clrest
|
sudo systemctl start ${netprefix}clrest
|
||||||
@ -155,7 +155,7 @@ if [ $1 = off ];then
|
|||||||
sudo rm -rf /home/bitcoin/c-lightning-REST/${CLNETWORK}
|
sudo rm -rf /home/bitcoin/c-lightning-REST/${CLNETWORK}
|
||||||
echo "# Deny port ${portprefix}6100 through the firewall"
|
echo "# Deny port ${portprefix}6100 through the firewall"
|
||||||
sudo ufw deny "${portprefix}6100"
|
sudo ufw deny "${portprefix}6100"
|
||||||
/home/admin/config.scripts/internet.hiddenservice.sh off ${netprefix}clrest
|
/home/admin/config.scripts/tor.onion-service.sh off ${netprefix}clrest
|
||||||
if [ "$(echo "$@" | grep -c purge)" -gt 0 ];then
|
if [ "$(echo "$@" | grep -c purge)" -gt 0 ];then
|
||||||
echo "# Removing the source code and binaries"
|
echo "# Removing the source code and binaries"
|
||||||
sudo rm -rf /home/bitcoin/c-lightning-REST
|
sudo rm -rf /home/bitcoin/c-lightning-REST
|
||||||
|
@ -29,15 +29,6 @@ if [ ${#newName} -eq 0 ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# config file
|
|
||||||
blitzConfig="/mnt/hdd/raspiblitz.conf"
|
|
||||||
|
|
||||||
# check if raspiblitz config file exists
|
|
||||||
if [ ! -f ${blitzConfig} ]; then
|
|
||||||
echo "FAIL - missing ${blitzConfig}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if cl config file exists
|
# check if cl config file exists
|
||||||
if ! sudo ls ${CLCONF}; then
|
if ! sudo ls ${CLCONF}; then
|
||||||
echo "FAIL - missing ${CLCONF}"
|
echo "FAIL - missing ${CLCONF}"
|
||||||
@ -57,7 +48,7 @@ sudo systemctl stop ${netprefix}lightningd 2>/dev/null
|
|||||||
# config: change name
|
# config: change name
|
||||||
sudo sed -i "s/^alias=.*/alias=${newName}/g" ${CLCONF}
|
sudo sed -i "s/^alias=.*/alias=${newName}/g" ${CLCONF}
|
||||||
|
|
||||||
source /home/admin/raspiblitz.info
|
source <(/home/admin/_cache.sh get state)
|
||||||
if [ "${state}" == "ready" ]; then
|
if [ "${state}" == "ready" ]; then
|
||||||
sudo systemctl start ${netprefix}lightningd
|
sudo systemctl start ${netprefix}lightningd
|
||||||
fi
|
fi
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user