From 37c8f6f897fcaf431f465d63ff847710db1924fb Mon Sep 17 00:00:00 2001
From: openoms <43343391+openoms@users.noreply.github.com>
Date: Wed, 22 Nov 2023 13:03:07 +0100
Subject: [PATCH] Activate i2p more reliably (#4265)

* move the i2p setup after the last bitcoin.conf check
* redo config even if i2p is active
---
 home.admin/_provision_.sh               | 10 +++++-----
 home.admin/config.scripts/blitz.i2pd.sh | 13 ++++++-------
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/home.admin/_provision_.sh b/home.admin/_provision_.sh
index 9659f7d44..a11ad1f27 100755
--- a/home.admin/_provision_.sh
+++ b/home.admin/_provision_.sh
@@ -210,11 +210,6 @@ else
   echo "Provisioning Bitcoin Core interims update - keep default" >> ${logFile}
 fi
 
-# I2P
-echo "Start i2pd" >> ${logFile}
-/home/admin/_cache.sh set message "i2pd setup"
-/home/admin/config.scripts/blitz.i2pd.sh on >> ${logFile}
-
 # LND INTERIMS UPDATE
 if [ ${#lndInterimsUpdate} -gt 0 ]; then
   /home/admin/_cache.sh set message "Provisioning LND update"
@@ -811,6 +806,11 @@ if [ ${confExists} -eq 0 ]; then
   chown bitcoin:bitcoin /mnt/hdd/bitcoin/bitcoin.conf
 fi
 
+# I2P
+echo "Start i2pd" >> ${logFile}
+/home/admin/_cache.sh set message "i2pd setup"
+/home/admin/config.scripts/blitz.i2pd.sh on >> ${logFile}
+
 # signal setup done
 /home/admin/_cache.sh set message "Setup Done"
 
diff --git a/home.admin/config.scripts/blitz.i2pd.sh b/home.admin/config.scripts/blitz.i2pd.sh
index 5d403e5a3..b961c13f1 100644
--- a/home.admin/config.scripts/blitz.i2pd.sh
+++ b/home.admin/config.scripts/blitz.i2pd.sh
@@ -92,7 +92,7 @@ function bitcoinI2Pstatus {
   echo "# Follow live with the command:"
   echo "sudo tail -n 1000 -f /mnt/hdd/bitcoin/debug.log | grep i2p"
   echo
-  sudo cat  /mnt/hdd/bitcoin/debug.log | grep i2p
+  sudo cat /mnt/hdd/bitcoin/debug.log | grep i2p
   echo
   echo "# Running the command:"
   echo "bitcoin-cli -netinfo 4"
@@ -107,7 +107,6 @@ function bitcoinI2Pstatus {
   echo
 }
 
-
 echo "# Running: 'blitz.i2pd.sh $*'"
 source /mnt/hdd/raspiblitz.conf
 
@@ -145,12 +144,11 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
 
   if systemctl is-active --quiet i2pd.service; then
     echo "# i2pd.service is already active."
-    exit 0
+  else
+    echo "# sudo systemctl enable i2pd"
+    sudo systemctl enable i2pd
   fi
 
-  echo "# sudo systemctl enable i2pd"
-  sudo systemctl enable i2pd
-
   echo "# i2pd config"
   /home/admin/config.scripts/blitz.conf.sh set debug tor /mnt/hdd/bitcoin/bitcoin.conf noquotes
   confAdd debug i2p /mnt/hdd/bitcoin/bitcoin.conf
@@ -159,7 +157,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
   /home/admin/config.scripts/blitz.conf.sh set onlynet tor /mnt/hdd/bitcoin/bitcoin.conf noquotes
   confAdd onlynet i2p /mnt/hdd/bitcoin/bitcoin.conf
   PASSWORD_B=$(sudo cat /mnt/hdd/bitcoin/bitcoin.conf | grep rpcpassword | cut -c 13-)
-  cat << EOF | sudo tee /etc/i2pd/i2pd.conf
+  cat <<EOF | sudo tee /etc/i2pd/i2pd.conf
 # i2pd settings for the RaspiBlitz
 # for the defaults see:
 # https://github.com/PurpleI2P/i2pd/blob/openssl/contrib/i2pd.conf
@@ -212,6 +210,7 @@ EOF
   # setting value in raspiblitz.conf
   /home/admin/config.scripts/blitz.conf.sh set i2pd "on"
 
+  localip=$(hostname -I | awk '{print $1}')
   echo "# Config: /etc/i2pd/i2pd.conf"
   echo "# i2pd web console: ${localip}:7070"
   echo "# Monitor i2p in bitcoind:"