From 0e8ecfe46b10c5417e62db1a0f7fcdf5732fd510 Mon Sep 17 00:00:00 2001 From: Kim Neunert Date: Sat, 4 Apr 2020 17:35:39 +0200 Subject: [PATCH 1/9] bugfix #1059 necessary for cryptography python package --- home.admin/config.scripts/bonus.cryptoadvance-specter.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home.admin/config.scripts/bonus.cryptoadvance-specter.sh b/home.admin/config.scripts/bonus.cryptoadvance-specter.sh index 42e30e893..b42b20b47 100755 --- a/home.admin/config.scripts/bonus.cryptoadvance-specter.sh +++ b/home.admin/config.scripts/bonus.cryptoadvance-specter.sh @@ -93,7 +93,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then sudo service bitcoind start echo "*** Installing prerequisites ***" - sudo apt install libusb-1.0.0-dev libudev-dev virtualenv + sudo apt install libusb-1.0.0-dev libudev-dev virtualenv libssl-dev # activating Authentication here ... echo "*** creating App-config ***" From ed2260e4677b5e1c77bbf827688a0d5089734699 Mon Sep 17 00:00:00 2001 From: pretyflaco Date: Wed, 8 Apr 2020 21:07:15 +0200 Subject: [PATCH 2/9] Update 00settingsMenuServices.sh Typo Cryptoadvance in lines 83, 104 --- home.admin/00settingsMenuServices.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home.admin/00settingsMenuServices.sh b/home.admin/00settingsMenuServices.sh index c5db193cd..a085c5395 100644 --- a/home.admin/00settingsMenuServices.sh +++ b/home.admin/00settingsMenuServices.sh @@ -80,7 +80,7 @@ l 'Lightning Loop' ${loop} \ 4 'Run behind TOR' ${runBehindTor} \ 5 'RTL Webinterface' ${rtlWebinterface} \ b 'BTC-RPC-Explorer' ${BTCRPCexplorer} \ -s 'Cyryptoadvance Specter' ${specter} \ +s 'Cryptoadvance Specter' ${specter} \ 6 'LND Auto-Unlock' ${autoUnlock} \ 9 'Touchscreen' ${touchscreenMenu} \ r 'LCD Rotate' ${lcdrotateMenu} \ @@ -101,7 +101,7 @@ l 'Lightning Loop' ${loop} \ 4 'Run behind TOR' ${runBehindTor} \ 5 'RTL Webinterface' ${rtlWebinterface} \ b 'BTC-RPC-Explorer' ${BTCRPCexplorer} \ -s 'Cyryptoadvance Specter' ${specter} \ +s 'Cryptoadvance Specter' ${specter} \ 6 'LND Auto-Unlock' ${autoUnlock} \ 7 'BTC UPnP (AutoNAT)' ${networkUPnP} \ 8 'LND UPnP (AutoNAT)' ${autoNatDiscovery} \ From adb8377ae1a3470ac740deeb6fc09afa5a2c8ba5 Mon Sep 17 00:00:00 2001 From: openoms Date: Thu, 9 Apr 2020 14:20:48 +0100 Subject: [PATCH 3/9] hiddenservice: fix existing port lookup --- home.admin/config.scripts/internet.hiddenservice.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/home.admin/config.scripts/internet.hiddenservice.sh b/home.admin/config.scripts/internet.hiddenservice.sh index e1d6758e8..7466fca95 100644 --- a/home.admin/config.scripts/internet.hiddenservice.sh +++ b/home.admin/config.scripts/internet.hiddenservice.sh @@ -47,7 +47,7 @@ if [ "${runBehindTor}" = "on" ]; then isHiddenService=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c $service) if [ ${isHiddenService} -eq 0 ]; then #check if the port is already forwarded - alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c 127.0.0.1:$fromPort) + alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c "\b127.0.0.1:$fromPort\b") if [ ${alreadyThere} -gt 0 ]; then echo "The port $fromPort is already forwarded. Check /etc/tor/torrc for the details." exit 1 @@ -60,7 +60,7 @@ HiddenServicePort $toPort 127.0.0.1:$fromPort" | sudo tee -a /etc/tor/torrc # check and insert second port pair if [ ${#toPort2} -gt 0 ]; then - alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c 127.0.0.1:$fromPort2) + alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c "\b127.0.0.1:$fromPort2\b") if [ ${alreadyThere} -gt 0 ]; then echo "The port $fromPort2 is already forwarded. Check the /etc/tor/torrc for the details." else @@ -91,7 +91,7 @@ HiddenServicePort $toPort 127.0.0.1:$fromPort" | sudo tee -a /etc/tor/torrc echo "$TOR_ADDRESS" echo "use with the port: $toPort" echo "" - alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c 127.0.0.1:$fromPort2) + alreadyThere=$(sudo cat /etc/tor/torrc 2>/dev/null | grep -c "\b127.0.0.1:$fromPort2\b") if [ ${#toPort2} -gt 0 ]; then if [ ${alreadyThere} -eq 0 ]; then echo "or the port: $toPort2" From f686b244eeeb5e9f622ce269dc540c7be248aea8 Mon Sep 17 00:00:00 2001 From: openoms Date: Fri, 10 Apr 2020 22:30:21 +0100 Subject: [PATCH 4/9] electrs: improve status and fix missing cert --- home.admin/config.scripts/bonus.electrs.sh | 29 ++++++++++++++++------ 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/home.admin/config.scripts/bonus.electrs.sh b/home.admin/config.scripts/bonus.electrs.sh index 5c6811b2d..abc0f0db4 100644 --- a/home.admin/config.scripts/bonus.electrs.sh +++ b/home.admin/config.scripts/bonus.electrs.sh @@ -56,10 +56,10 @@ if [ "$1" = "status" ]; then echo "localTCPPortActive=${localPortRunning}" publicPortRunning=$(nc -z -w6 ${publicIP} 50001 2>/dev/null; echo $?) if [ "${publicPortRunning}" == "0" ]; then - # OK looks good - but just means that somethingis answering on that port + # OK looks good - but just means that something is answering on that port echo "publicTCPPortAnswering=1" else - # no answere on that port + # no answer on that port echo "publicTCPPortAnswering=0" fi echo "portHTTP='50002'" @@ -67,10 +67,10 @@ if [ "$1" = "status" ]; then echo "localHTTPPortActive=${localPortRunning}" publicPortRunning=$(nc -z -w6 ${publicIP} 50002 2>/dev/null; echo $?) if [ "${publicPortRunning}" == "0" ]; then - # OK looks good - but just means that somethingis answering on that port + # OK looks good - but just means that something is answering on that port echo "publicHTTPPortAnswering=1" else - # no answere on that port + # no answer on that port echo "publicHTTPPortAnswering=0" fi # add TOR info @@ -81,6 +81,9 @@ if [ "$1" = "status" ]; then else echo "TORrunning=0" fi + # check Nginx + nginxTest=$(sudo nginx -t 2>&1 | grep -c "test is successful") + echo "nginxTest=$nginxTest" else echo "isSynced=0" @@ -95,6 +98,18 @@ if [ "$1" = "menu" ]; then echo "# collecting status info ... (please wait)" source <(sudo /home/admin/config.scripts/bonus.electrs.sh status) + if [ ${nginxTest} -eq 0 ]; then + dialog --title "Testing nginx.conf has failed" --msgbox " +Will try to fix by generating a self-signed certificate. +Try connecting via port 50002 or Tor again once finished. +Check 'sudo nginx -t' for a detailed error message. + " 9 61 + /home/admin/config.scripts/internet.selfsignedcert.sh + echo "Press ENTER to get back to main menu." + read key + exit 0 + fi + if [ ${serviceInstalled} -eq 0 ]; then echo "# FAIL not installed" exit 1 @@ -138,7 +153,7 @@ This can take multiple hours. echo "https://electrum.org" echo echo "On Network Settings > Server menu:" - echo "- deavtivate automatic server selection" + echo "- deactivate automatic server selection" echo "- as manual server set '${localIP}' & '${portHTTP}'" echo "- laptop and RaspiBlitz need to be within same local network" echo @@ -146,11 +161,11 @@ This can take multiple hours. echo "electrum --oneserver --server ${localIP}:${portHTTP}:s" if [ ${TORrunning} -eq 1 ]; then echo "" - 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 echo "To connect through TOR open the Tor Browser and start with the options:" - echo "electrum --oneserver --server=$TOR_ADDRESS: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.lcd.sh qr "${TORaddress}" fi echo From 74219a9ed569a104289cf891dcf9e8512101527b Mon Sep 17 00:00:00 2001 From: openoms <43343391+openoms@users.noreply.github.com> Date: Fri, 10 Apr 2020 22:45:07 +0100 Subject: [PATCH 5/9] electrs: check nginx last when opening menu --- home.admin/config.scripts/bonus.electrs.sh | 25 +++++++++++----------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/home.admin/config.scripts/bonus.electrs.sh b/home.admin/config.scripts/bonus.electrs.sh index abc0f0db4..82c45172e 100644 --- a/home.admin/config.scripts/bonus.electrs.sh +++ b/home.admin/config.scripts/bonus.electrs.sh @@ -98,18 +98,6 @@ if [ "$1" = "menu" ]; then echo "# collecting status info ... (please wait)" source <(sudo /home/admin/config.scripts/bonus.electrs.sh status) - if [ ${nginxTest} -eq 0 ]; then - dialog --title "Testing nginx.conf has failed" --msgbox " -Will try to fix by generating a self-signed certificate. -Try connecting via port 50002 or Tor again once finished. -Check 'sudo nginx -t' for a detailed error message. - " 9 61 - /home/admin/config.scripts/internet.selfsignedcert.sh - echo "Press ENTER to get back to main menu." - read key - exit 0 - fi - if [ ${serviceInstalled} -eq 0 ]; then echo "# FAIL not installed" exit 1 @@ -135,6 +123,19 @@ This can take multiple hours. exit 0 fi + if [ ${nginxTest} -eq 0 ]; then + dialog --title "Testing nginx.conf has failed" --msgbox " +Will try to fix by generating a self-signed certificate. +Try connecting via port 50002 or Tor again once finished. +Open this menu again for more information. +Check 'sudo nginx -t' for a detailed error message. + " 10 61 + /home/admin/config.scripts/internet.selfsignedcert.sh + echo "Press ENTER to get back to main menu." + read key + exit 0 + fi + # Options (available without TOR) OPTIONS=( \ CONNECT "How to Connect" \ From d92a239412b0e61d799a9f9929f03a755af08ec8 Mon Sep 17 00:00:00 2001 From: openoms <43343391+openoms@users.noreply.github.com> Date: Sat, 11 Apr 2020 09:50:05 +0100 Subject: [PATCH 6/9] electrs: test and fix missing nginx log --- home.admin/config.scripts/bonus.electrs.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/home.admin/config.scripts/bonus.electrs.sh b/home.admin/config.scripts/bonus.electrs.sh index 82c45172e..3b43180e0 100644 --- a/home.admin/config.scripts/bonus.electrs.sh +++ b/home.admin/config.scripts/bonus.electrs.sh @@ -122,14 +122,18 @@ This can take multiple hours. " 9 48 exit 0 fi - + if [ ${nginxTest} -eq 0 ]; then - dialog --title "Testing nginx.conf has failed" --msgbox " -Will try to fix by generating a self-signed certificate. + dialog --title "Testing nginx.conf has failed" --msgbox " +Nginx is in a failed state. Will attempt to fix. Try connecting via port 50002 or Tor again once finished. -Open this menu again for more information. Check 'sudo nginx -t' for a detailed error message. - " 10 61 + " 9 61 + logFileMissing=$(sudo nginx -t 2>&1 | grep -c "/var/log/nginx/access.log") + if [ ${logFileMissing} -eq 1 ]; then + sudo mkdir /var/log/nginx + sudo systemctl restart nginx + fi /home/admin/config.scripts/internet.selfsignedcert.sh echo "Press ENTER to get back to main menu." read key From 0678b690ef29e32361b4e314303fbb506894c222 Mon Sep 17 00:00:00 2001 From: Kim Neunert Date: Sat, 11 Apr 2020 18:15:19 +0200 Subject: [PATCH 7/9] include .specter/.env/bin to path in systemd-service of specter At least in version 0.2.0 and maybe also in others, the hwi-executable must be on the path for specter, otherwise hwi won't work, at least on my box. --- home.admin/config.scripts/bonus.cryptoadvance-specter.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home.admin/config.scripts/bonus.cryptoadvance-specter.sh b/home.admin/config.scripts/bonus.cryptoadvance-specter.sh index 53a71bfb7..990a35dbb 100755 --- a/home.admin/config.scripts/bonus.cryptoadvance-specter.sh +++ b/home.admin/config.scripts/bonus.cryptoadvance-specter.sh @@ -213,7 +213,7 @@ After=${network}d.service [Service] ExecStart=/home/bitcoin/.specter/.env/bin/python3 -m cryptoadvance.specter server --host 0.0.0.0 --cert=/home/bitcoin/.specter/cert.pem --key=/home/bitcoin/.specter/key.pem User=bitcoin -Environment=PATH=/home/bitcoin/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin:/bin +Environment=PATH=/home/bitcoin/.specter/.env/bin:/home/bitcoin/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin:/bin Restart=always TimeoutSec=120 RestartSec=30 From 884016592ede5db2350a9f30b3a6f8f181cbfde8 Mon Sep 17 00:00:00 2001 From: openoms Date: Sat, 11 Apr 2020 23:10:18 +0100 Subject: [PATCH 8/9] joinmarket: simplify startup and skip in tmux --- home.admin/config.scripts/bonus.joinmarket.sh | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/home.admin/config.scripts/bonus.joinmarket.sh b/home.admin/config.scripts/bonus.joinmarket.sh index bcab1cb2e..239cd8151 100644 --- a/home.admin/config.scripts/bonus.joinmarket.sh +++ b/home.admin/config.scripts/bonus.joinmarket.sh @@ -30,7 +30,7 @@ if [ "$1" = "menu" ]; then whiptail --title " JoinMarket info " --msgbox "Usage: https://github.com/openoms/bitcoin-tutorials/blob/master/joinmarket/README.md\n Start to use by logging in to the 'joinmarket' user with: -'sudo su - joinmarket' \n +sudo su joinmarket\n Can log in directly with the 'joinmarket' user via ssh. The user password is the PASSWORD_B. " 14 81 @@ -109,18 +109,15 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then pip install https://github.com/sunu/qt5reactor/archive/58410aaead2185e9917ae9cac9c50fe7b70e4a60.zip#egg=qt5reactor # autostart for joinmarket - if [ $(sudo cat /home/joinmarket/.bashrc | grep -c "bash startup.sh") -eq 0 ]; then - sudo bash -c "echo 'bash startup.sh' >> /home/joinmarket/.bashrc" - fi - if [ $(sudo cat /home/joinmarket/.bashrc | grep -c ". /home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate") -eq 0 ]; then - sudo bash -c "echo '. /home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate' >> /home/joinmarket/.bashrc" - fi - if [ $(sudo cat /home/joinmarket/.bashrc | grep -c "/home/joinmarket/joinmarket-clientserver/jmvenv/bin/python -c \"import PySide2\"") -eq 0 ]; then - sudo bash -c "echo '/home/joinmarket/joinmarket-clientserver/jmvenv/bin/python -c \"import PySide2\"' >> /home/joinmarket/.bashrc" - fi - if [ $(sudo cat /home/joinmarket/.bashrc | grep -c "cd /home/joinmarket/joinmarket-clientserver/scripts/") -eq 0 ]; then - sudo bash -c "echo 'cd /home/joinmarket/joinmarket-clientserver/scripts/' >> /home/joinmarket/.bashrc" - fi + bash -c "echo '# automatically start startup.sh for joinmarket unless' >> /home/joinmarket/.bashrc" + bash -c "echo '# when running in a tmux session' >> /home/joinmarket/.bashrc" + bash -c "echo 'if [ -z \"\$TMUX\" ]; then' >> /home/joinmarket/.bashrc" + bash -c "echo ' /home/joinmarket/startup.sh' >> /home/joinmarket/.bashrc" + bash -c "echo 'fi' >> /home/joinmarket/.bashrc" + bash -c "echo '# always activate jmvenv with PySide2 and cd to scripts' >> /home/joinmarket/.bashrc" + bash -c "echo '. /home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate' >> /home/joinmarket/.bashrc" + bash -c "echo '/home/joinmarket/joinmarket-clientserver/jmvenv/bin/python -c \"import PySide2\"' >> /home/joinmarket/.bashrc" + bash -c "echo 'cd /home/joinmarket/joinmarket-clientserver/scripts/' >> /home/joinmarket/.bashrc" cat > /home/admin/startup.sh < Date: Sat, 11 Apr 2020 23:47:21 +0100 Subject: [PATCH 9/9] jm: startup.sh exexutable, remove needless sudo- --- home.admin/config.scripts/bonus.joinmarket.sh | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/home.admin/config.scripts/bonus.joinmarket.sh b/home.admin/config.scripts/bonus.joinmarket.sh index 239cd8151..99abe0211 100644 --- a/home.admin/config.scripts/bonus.joinmarket.sh +++ b/home.admin/config.scripts/bonus.joinmarket.sh @@ -139,19 +139,19 @@ else sudo chmod 600 /home/joinmarket/.joinmarket/joinmarket.cfg || exit 1 echo "" echo "Editing the joinmarket.cfg" - sudo sed -i "s/^rpc_user =.*/rpc_user = raspibolt/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^rpc_user =.*/rpc_user = raspibolt/g" /home/joinmarket/.joinmarket/joinmarket.cfg PASSWORD_B=\$(sudo cat /mnt/hdd/bitcoin/bitcoin.conf | grep rpcpassword | cut -c 13-) - sudo sed -i "s/^rpc_password =.*/rpc_password = \$PASSWORD_B/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^rpc_password =.*/rpc_password = \$PASSWORD_B/g" /home/joinmarket/.joinmarket/joinmarket.cfg echo "Filled the bitcoin RPC password (PASSWORD_B)" #communicate with IRC servers via Tor - sudo sed -i "s/^host = irc.darkscience.net/#host = irc.darkscience.net/g" /home/joinmarket/.joinmarket/joinmarket.cfg - sudo sed -i "s/^#host = darksci3bfoka7tw.onion/host = darksci3bfoka7tw.onion/g" /home/joinmarket/.joinmarket/joinmarket.cfg - sudo sed -i "s/^host = irc.hackint.org/#host = irc.hackint.org/g" /home/joinmarket/.joinmarket/joinmarket.cfg - sudo sed -i "s/^#host = ncwkrwxpq2ikcngxq3dy2xctuheniggtqeibvgofixpzvrwpa77tozqd.onion/host = ncwkrwxpq2ikcngxq3dy2xctuheniggtqeibvgofixpzvrwpa77tozqd.onion/g" /home/joinmarket/.joinmarket/joinmarket.cfg - sudo sed -i "s/^socks5 = false/#socks5 = false/g" /home/joinmarket/.joinmarket/joinmarket.cfg - sudo sed -i "s/^#socks5 = true/socks5 = true/g" /home/joinmarket/.joinmarket/joinmarket.cfg - sudo sed -i "s/^#port = 6667/port = 6667/g" /home/joinmarket/.joinmarket/joinmarket.cfg - sudo sed -i "s/^#usessl = false/usessl = false/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^host = irc.darkscience.net/#host = irc.darkscience.net/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^#host = darksci3bfoka7tw.onion/host = darksci3bfoka7tw.onion/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^host = irc.hackint.org/#host = irc.hackint.org/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^#host = ncwkrwxpq2ikcngxq3dy2xctuheniggtqeibvgofixpzvrwpa77tozqd.onion/host = ncwkrwxpq2ikcngxq3dy2xctuheniggtqeibvgofixpzvrwpa77tozqd.onion/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^socks5 = false/#socks5 = false/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^#socks5 = true/socks5 = true/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^#port = 6667/port = 6667/g" /home/joinmarket/.joinmarket/joinmarket.cfg + sed -i "s/^#usessl = false/usessl = false/g" /home/joinmarket/.joinmarket/joinmarket.cfg echo "Edited the joinmarket.cfg to communicate over Tor only." echo "" echo "Welcome to the JoinMarket command line!" @@ -164,12 +164,13 @@ else fi EOF - sudo mv /home/admin/startup.sh /home/joinmarket/startup.sh - sudo chown joinmarket:joinmarket /home/joinmarket/startup.sh + mv /home/admin/startup.sh /home/joinmarket/startup.sh + chown joinmarket:joinmarket /home/joinmarket/startup.sh + chmod +x /home/joinmarket/startup.sh else - echo "JoinMarket is already installed" - echo "" + echo "JoinMarket is already installed" + echo "" fi if [ -f "/home/joinmarket/joinmarket-clientserver/jmvenv/bin/activate" ] ; then