From 485f8e8c37faeae850a3695435d47759a226fc8f Mon Sep 17 00:00:00 2001 From: wiz Date: Fri, 20 Dec 2019 21:07:35 +0900 Subject: [PATCH 01/12] Add one command installation script for tor + btcnode + seednode --- seednode/README.md | 87 ++++++++++-- seednode/{bisq-seednode => bisq-seednode.env} | 9 +- seednode/bisq-seednode.service | 3 +- seednode/bitcoin.conf | 13 ++ seednode/bitcoin.service | 22 +++ seednode/install_seednode_debian.sh | 134 ++++++++++++++++++ seednode/torrc | 8 ++ seednode/uninstall_seednode_debian.sh | 7 + 8 files changed, 266 insertions(+), 17 deletions(-) rename seednode/{bisq-seednode => bisq-seednode.env} (81%) create mode 100644 seednode/bitcoin.conf create mode 100644 seednode/bitcoin.service create mode 100755 seednode/install_seednode_debian.sh create mode 100644 seednode/torrc create mode 100755 seednode/uninstall_seednode_debian.sh diff --git a/seednode/README.md b/seednode/README.md index 3eb7e14574c..fb5f6e0f783 100644 --- a/seednode/README.md +++ b/seednode/README.md @@ -1,23 +1,86 @@ # Bisq Seed Node -* Install bisq-seednode.service in /etc/systemd/system -* Install bisq-seednode in /etc/default -* Install blocknotify.sh in bitcoind's ~/.bitcoin/ folder and chmod 700 it -* Modify the executable paths and configuration as necessary -* Then you can do: +## Hardware +Highly recommended to use SSD! Minimum specs: + +* CPU: 4 cores +* RAM: 8 GB +* SSD: 512 GB (HDD is too slow) + +## Software + +The following OS are known to work well: + +* Ubuntu 18 +* FreeBSD 12 + +### Installation + +Start with a clean Ubuntu 18.04 LTS server installation, and run the script +```bash +curl https://github.com/bisq-network/bisq/seednode/install_seednode_debian.sh | sudo bash ``` -systemctl start bisq-seednode.service -systemctl stop bisq-seednode.service + +This will install and configure Tor, Bitcoin, and Bisq-Seednode services to start on boot. + +### Firewall + +Next, configure your OS firewall to only allow SSH and Bitcoin P2P +```bash +ufw allow 22/tcp +ufw allow 8333/tcp +ufw enable ``` -and + +### Syncing + +After installation, watch the Bitcoin blockchain sync progress +```bash +sudo tail -f /bitcoin/debug.log ``` -systemctl enable bisq-seednode.service -systemctl disable bisq-seednode.service + +After Bitcoin is fully synced, start the bisq-seednode service +```bash +sudo systemctl start bisq-seednode +sudo journalctl --unit bisq-seednode --follow +``` + +After Bisq is fully synced, check your Bitcoin and Bisq onion hostnames: +```bash +sudo bitcoin-cli -conf=/bitcoin/bitcoin.conf getnetworkinfo|grep address +sudo cat /bisq/bisq-seednode/db/tor/hostname +``` + +### Testing + +After your Bisq seednode is ready, test it by connecting to your new btcnode and bisq-seednode! + +macOS: +```bash +/Applications/Bisq.app/Contents/MacOS/Bisq --seedNodes=foo.onion:8000 --btcNodes=foo.onion:8333 ``` -Follow the logs created by the service by inspecting +### Upgrading +To upgrade your seednode to a new tag, for example v1.2.5 +```bash +sudo -u bisq -s +cd bisq +git fetch origin +git checkout v1.2.5 # new tag +./gradlew clean +./gradlew build -x test +exit +sudo service bisq-seednode restart +sudo journalctl --unit bisq-seednode --follow ``` -journalctl --unit bisq-seednode --follow + +### Uninstall + +If you need to start over, you can run the uninstall script in this repo +```bash +sudo ./delete_seednode_debian.sh ``` +WARNING: this script will delete all data! + diff --git a/seednode/bisq-seednode b/seednode/bisq-seednode.env similarity index 81% rename from seednode/bisq-seednode rename to seednode/bisq-seednode.env index 35759867a98..bee6676cd3f 100644 --- a/seednode/bisq-seednode +++ b/seednode/bisq-seednode.env @@ -8,8 +8,8 @@ JAVA_HOME=/usr/lib/jvm/openjdk-10.0.2 JAVA_OPTS="-Xms8192M -Xmx8192M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.host=127.0.0.1 -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.rmi.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" # bitcoin rpc credentials -BITCOIN_RPC_USERNAME=foo -BITCOIN_RPC_PASSWORD=bar +BITCOIN_RPC_USERNAME=_BITCOIN_RPC_USER_ +BITCOIN_RPC_PASSWORD=_BITCOIN_RPC_USER_ # bitcoind rpc ports BITCOIN_RPC_PORT=8332 @@ -17,8 +17,11 @@ BITCOIN_RPC_BLOCKNOTIFY_PORT=5120 # bisq seednode settings BISQ_APP_NAME=bisq-seednode -BISQ_DATA_DIR=/home/bisq/ +BISQ_DATA_DIR=__BISQ_HOME__ BISQ_NODE_PORT=8000 BISQ_MAX_CONNECTIONS=50 BISQ_MAX_MEMORY=8000 BISQ_BASE_CURRENCY=BTC_MAINNET + +# set to true for BSQ explorer +BISQ_DUMP_BLOCKCHAIN=false diff --git a/seednode/bisq-seednode.service b/seednode/bisq-seednode.service index 941b11e5b64..371e851e5b3 100644 --- a/seednode/bisq-seednode.service +++ b/seednode/bisq-seednode.service @@ -6,7 +6,7 @@ After=network.target [Service] EnvironmentFile=/etc/default/bisq-seednode -ExecStart=/home/bisq/bisq/bisq-seednode --appName=${BISQ_APP_NAME} --nodePort=${BISQ_NODE_PORT} --userDataDir=${BISQ_DATA_DIR} --maxConnections=${BISQ_MAX_CONNECTIONS} --maxMemory=${BISQ_MAX_MEMORY} --fullDaoNode=true --rpcUser=${BITCOIN_RPC_USERNAME} --rpcPassword=${BITCOIN_RPC_PASSWORD} --rpcPort=${BITCOIN_RPC_PORT} --rpcBlockNotificationPort=${BITCOIN_RPC_BLOCKNOTIFY_PORT} --baseCurrencyNetwork=${BISQ_BASE_CURRENCY} +ExecStart=__BISQ_HOME__/__BISQ_REPO_NAME__/bisq-seednode --appName=${BISQ_APP_NAME} --nodePort=${BISQ_NODE_PORT} --userDataDir=${BISQ_DATA_DIR} --maxConnections=${BISQ_MAX_CONNECTIONS} --maxMemory=${BISQ_MAX_MEMORY} --fullDaoNode=true --rpcUser=${BITCOIN_RPC_USERNAME} --rpcPassword=${BITCOIN_RPC_PASSWORD} --rpcPort=${BITCOIN_RPC_PORT} --rpcBlockNotificationPort=${BITCOIN_RPC_BLOCKNOTIFY_PORT} --baseCurrencyNetwork=${BISQ_BASE_CURRENCY} --dumpBlockchainData=${BISQ_DUMP_BLOCKCHAIN} ExecStop=/bin/kill -TERM ${MAINPID} Restart=on-failure @@ -17,7 +17,6 @@ PrivateTmp=true ProtectSystem=full NoNewPrivileges=true PrivateDevices=true -MemoryDenyWriteExecute=false [Install] WantedBy=multi-user.target diff --git a/seednode/bitcoin.conf b/seednode/bitcoin.conf new file mode 100644 index 00000000000..8ebf15665f1 --- /dev/null +++ b/seednode/bitcoin.conf @@ -0,0 +1,13 @@ +server=1 +txindex=1 +dbcache=1337 +maxconnections=1337 +timeout=30000 +listen=1 +discover=1 +peerbloomfilters=1 +onion=127.0.0.1:9050 +rpcallowip=127.0.0.1 +rpcuser=__BITCOIN_RPC_USER__ +rpcpassword=__BITCOIN_RPC_PASS__ +blocknotify=/bitcoin/blocknotify.sh %s diff --git a/seednode/bitcoin.service b/seednode/bitcoin.service new file mode 100644 index 00000000000..162ba196e6a --- /dev/null +++ b/seednode/bitcoin.service @@ -0,0 +1,22 @@ +[Unit] +Description=Bitcoind +After=network.target + +[Service] +ExecStart=/usr/local/bin/bitcoind -daemon -printtoconsole -pid=/bitcoin/bitcoind.pid +ExecStop=/usr/local/bin/bitcoin-cli stop + +Type=forking +PIDFile=/bitcoin/bitcoind.pid +Restart=on-failure + +User=bitcoin +Group=bitcoin + +PrivateTmp=true +ProtectSystem=full +NoNewPrivileges=true +PrivateDevices=true + +[Install] +WantedBy=multi-user.target diff --git a/seednode/install_seednode_debian.sh b/seednode/install_seednode_debian.sh new file mode 100755 index 00000000000..6121e198edb --- /dev/null +++ b/seednode/install_seednode_debian.sh @@ -0,0 +1,134 @@ +#!/bin/sh +set -e + +echo "[*] Bisq Seednode installation script" + +##### change paths if necessary for your system + +ROOT_USER=root +ROOT_GROUP=root +ROOT_PKG="build-essential libtool autotools-dev automake pkg-config bsdmainutils python3 git vim screen ufw" +ROOT_HOME=/root + +SYSTEMD_SERVICE_HOME=/etc/systemd/system +SYSTEMD_ENV_HOME=/etc/default + +BISQ_REPO_URL=https://github.com/bisq-network/bisq +BISQ_REPO_NAME=bisq +BISQ_REPO_TAG=v1.2.4 +BISQ_HOME=/bisq +BISQ_USER=bisq + +BITCOIN_REPO_URL=https://github.com/bitcoin/bitcoin +BITCOIN_REPO_NAME=bitcoin +BITCOIN_REPO_TAG=v0.19.0.1 +BITCOIN_HOME=/bitcoin +BITCOIN_USER=bitcoin +BITCOIN_GROUP=bitcoin +BITCOIN_PKG="libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb-dev" + +TOR_PKG="tor" +TOR_USER=debian-tor +TOR_GROUP=debian-tor +TOR_HOME=/etc/tor + +##### + +echo "[*] Updating apt repo sources" +sudo -H -i -u "${ROOT_USER}" apt-get update -q + +echo "[*] Upgrading OS packages" +sudo -H -i -u "${ROOT_USER}" apt-get upgrade -q -y + +echo "[*] Installing base packages" +sudo -H -i -u "${ROOT_USER}" apt-get install -q -y ${ROOT_PKG} + +echo "[*] Cloning Bisq repo" +sudo -H -i -u "${ROOT_USER}" git config --global advice.detachedHead false +sudo -H -i -u "${ROOT_USER}" git clone --branch "${BISQ_REPO_TAG}" "${BISQ_REPO_URL}" "${ROOT_HOME}/${BISQ_REPO_NAME}" + +echo "[*] Installing Tor" +sudo -H -i -u "${ROOT_USER}" apt-get install -q -y ${TOR_PKG} + +echo "[*] Installing Tor configuration" +sudo -H -i -u "${ROOT_USER}" install -c -m 644 "${ROOT_HOME}/${BISQ_REPO_NAME}/seednode/torrc" "${TOR_HOME}/torrc" + +echo "[*] Creating Bitcoin user with Tor access" +sudo -H -i -u "${ROOT_USER}" useradd -d "${BITCOIN_HOME}" -G "${TOR_GROUP}" "${BITCOIN_USER}" + +echo "[*] Installing Bitcoin build dependencies" +sudo -H -i -u "${ROOT_USER}" apt-get install -q -y ${BITCOIN_PKG} + +echo "[*] Creating Bitcoin homedir" +sudo -H -i -u "${ROOT_USER}" mkdir "${BITCOIN_HOME}" +sudo -H -i -u "${ROOT_USER}" chown "${BITCOIN_USER}":"${BITCOIN_GROUP}" ${BITCOIN_HOME} +sudo -H -i -u "${BITCOIN_USER}" ln -s . .bitcoin + +echo "[*] Cloning Bitcoin repo" +sudo -H -i -u "${BITCOIN_USER}" git config --global advice.detachedHead false +sudo -H -i -u "${BITCOIN_USER}" git clone --branch "${BITCOIN_REPO_TAG}" "${BITCOIN_REPO_URL}" "${BITCOIN_HOME}/${BITCOIN_REPO_NAME}" + +echo "[*] Building Bitcoin from source" +sudo -H -i -u "${BITCOIN_USER}" sh -c "cd ${BITCOIN_REPO_NAME} && ./autogen.sh --quiet && ./configure --quiet --disable-wallet --with-incompatible-bdb && make -j9" + +echo "[*] Installing Bitcoin into OS" +sudo -H -i -u "${ROOT_USER}" sh -c "cd ${BITCOIN_HOME}/${BITCOIN_REPO_NAME} && make install >/dev/null" + +echo "[*] Installing Bitcoin configuration" +sudo -H -i -u "${ROOT_USER}" install -c -o "${BITCOIN_USER}" -g "${BITCOIN_GROUP}" -m 644 "${ROOT_HOME}/${BISQ_REPO_NAME}/seednode/bitcoin.conf" "${BITCOIN_HOME}/bitcoin.conf" +sudo -H -i -u "${ROOT_USER}" install -c -o "${BITCOIN_USER}" -g "${BITCOIN_GROUP}" -m 755 "${ROOT_HOME}/${BISQ_REPO_NAME}/seednode/blocknotify.sh" "${BITCOIN_HOME}/blocknotify.sh" + +echo "[*] Generating Bitcoin RPC credentials" +BITCOIN_RPC_USER=$(head -150 /dev/urandom | md5sum | awk '{print $1}') +sudo sed -i -e "s/__BITCOIN_RPC_USER__/${BITCOIN_RPC_USER}/" "${BITCOIN_HOME}/bitcoin.conf" +BITCOIN_RPC_PASS=$(head -150 /dev/urandom | md5sum | awk '{print $1}') +sudo sed -i -e "s/__BITCOIN_RPC_PASS__/${BITCOIN_RPC_PASS}/" "${BITCOIN_HOME}/bitcoin.conf" + +echo "[*] Installing Bitcoin init scripts" +sudo -H -i -u "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${ROOT_HOME}/${BISQ_REPO_NAME}/seednode/bitcoin.service" "${SYSTEMD_SERVICE_HOME}" + +echo "[*] Creating Bisq user with Tor access" +sudo -H -i -u "${ROOT_USER}" useradd -d "${BISQ_HOME}" -G "${TOR_GROUP}" "${BISQ_USER}" + +echo "[*] Creating Bisq homedir" +sudo -H -i -u "${ROOT_USER}" mkdir "${BISQ_HOME}" +sudo -H -i -u "${ROOT_USER}" chown "${BISQ_USER}":"${BISQ_GROUP}" ${BISQ_HOME} + +echo "[*] Moving Bisq repo" +sudo -H -i -u "${ROOT_USER}" mv "${ROOT_HOME}/${BISQ_REPO_NAME}" "${BISQ_HOME}/${BISQ_REPO_NAME}" +sudo -H -i -u "${ROOT_USER}" chown -R "${BISQ_USER}:${BISQ_GROUP}" "${BISQ_HOME}/${BISQ_REPO_NAME}" + +echo "[*] Installing OpenJDK 10.0.2 from Bisq repo" +sudo -H -i -u "${ROOT_USER}" "${BISQ_HOME}/${BISQ_REPO_NAME}/scripts/install_java.sh" + +echo "[*] Building Bisq from source" +sudo -H -i -u "${BISQ_USER}" sh -c "cd ${BISQ_HOME}/${BISQ_REPO_NAME} && ./gradlew build -x test" + +echo "[*] Installing Bisq init script" +sudo -H -i -u "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${BISQ_HOME}/${BISQ_REPO_NAME}/seednode/bisq-seednode.service" "${SYSTEMD_SERVICE_HOME}/bisq-seednode.service" +sudo sed -i -e "s/__BISQ_REPO_NAME__/${BISQ_REPO_NAME}/" "${SYSTEMD_SERVICE_HOME}/bisq-seednode.service" +sudo sed -i -e "s/__BISQ_HOME__/${BISQ_HOME}/" "${SYSTEMD_SERVICE_HOME}/bisq-seednode.service" + +echo "[*] Installing Bisq environment file with Bitcoin RPC credentials" +sudo -H -i -u "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${BISQ_HOME}/${BISQ_REPO_NAME}/seednode/bisq-seednode.env" "${SYSTEMD_ENV_HOME}/bisq-seednode.env" +sudo sed -i -e "s/__BITCOIN_RPC_USER__/${BITCOIN_RPC_USER}/" "${SYSTEMD_ENV_HOME}/bisq-seednode.env" +sudo sed -i -e "s/__BITCOIN_RPC_PASS__/${BITCOIN_RPC_PASS}/" "${SYSTEMD_ENV_HOME}/bisq-seednode.env" +sudo sed -i -e "s/__BISQ_HOME__/${BISQ_HOME}/" "${SYSTEMD_ENV_HOME}/bisq-seednode.env" + +echo "[*] Updating systemd daemon configuration" +sudo -H -i -u "${ROOT_USER}" systemctl daemon-reload +sudo -H -i -u "${ROOT_USER}" systemctl enable tor.service +sudo -H -i -u "${ROOT_USER}" systemctl enable bisq-seednode.service +sudo -H -i -u "${ROOT_USER}" systemctl enable bitcoin.service + +echo "[*] Preparing firewall" +sudo -H -i -u "${ROOT_USER}" ufw default deny incoming +sudo -H -i -u "${ROOT_USER}" ufw default allow outgoing + +echo "[*] Starting Tor" +sudo -H -i -u "${ROOT_USER}" systemctl start tor +echo "[*] Starting Bitcoin" +sudo -H -i -u "${ROOT_USER}" systemctl start bitcoin +sudo -H -i -u "${ROOT_USER}" journalctl --no-pager --unit bitcoin +sudo -H -i -u "${ROOT_USER}" tail "${BITCOIN_HOME}/debug.log" +echo "[*] Done!" diff --git a/seednode/torrc b/seednode/torrc new file mode 100644 index 00000000000..81c5d7c017e --- /dev/null +++ b/seednode/torrc @@ -0,0 +1,8 @@ +SOCKSPort 9050 # Default: Bind to localhost:9050 for local connections. +Log notice syslog +RunAsDaemon 1 +ControlPort 9051 +CookieAuthentication 1 +CookieAuthFileGroupReadable 1 +DataDirectoryGroupReadable 1 +KeepalivePeriod 42 diff --git a/seednode/uninstall_seednode_debian.sh b/seednode/uninstall_seednode_debian.sh new file mode 100755 index 00000000000..d5be68ae027 --- /dev/null +++ b/seednode/uninstall_seednode_debian.sh @@ -0,0 +1,7 @@ +#!/bin/sh +service bitcoin stop +service bisq stop +userdel bisq +rm -rf /root/bisq +userdel bitcoin +rm -rf /bitcoin From 4b0f25cdf6762a668fe7965e9fb480c8fbb8430d Mon Sep 17 00:00:00 2001 From: wiz Date: Fri, 20 Dec 2019 21:44:04 +0900 Subject: [PATCH 02/12] Fix seednode installation script URL --- seednode/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seednode/README.md b/seednode/README.md index fb5f6e0f783..e67ed2cb233 100644 --- a/seednode/README.md +++ b/seednode/README.md @@ -19,7 +19,7 @@ The following OS are known to work well: Start with a clean Ubuntu 18.04 LTS server installation, and run the script ```bash -curl https://github.com/bisq-network/bisq/seednode/install_seednode_debian.sh | sudo bash +curl -s https://raw.githubusercontent.com/bisq-network/bisq/master/seednode/install_seednode_debian.sh | sudo bash ``` This will install and configure Tor, Bitcoin, and Bisq-Seednode services to start on boot. From a57d33a4840c5c863c4da374449d2cec581f528a Mon Sep 17 00:00:00 2001 From: wiz Date: Fri, 20 Dec 2019 22:01:19 +0900 Subject: [PATCH 03/12] Fix seednode uninstallation script paths --- seednode/uninstall_seednode_debian.sh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/seednode/uninstall_seednode_debian.sh b/seednode/uninstall_seednode_debian.sh index d5be68ae027..43d9f707dec 100755 --- a/seednode/uninstall_seednode_debian.sh +++ b/seednode/uninstall_seednode_debian.sh @@ -1,7 +1,12 @@ #!/bin/sh -service bitcoin stop -service bisq stop -userdel bisq -rm -rf /root/bisq -userdel bitcoin -rm -rf /bitcoin +echo "[*] Uninstalling Bitcoin and Bisq, will delete all data!!" +sudo rm -rf /root/bisq +sudo systemctl stop bitcoin +sudo systemctl stop bisq +sudo systemctl disable bitcoin +sudo systemctl disable bisq +sleep 10 +sudo userdel -f -r bisq +sleep 10 +sudo userdel -f -r bitcoin +echo "[*] Done!" From 442281ce0c32d3fd5f37262b5a29f5b4f71181e4 Mon Sep 17 00:00:00 2001 From: wiz Date: Fri, 20 Dec 2019 23:12:42 +0900 Subject: [PATCH 04/12] Fix seednode install script causing gradle to hang --- seednode/install_seednode_debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seednode/install_seednode_debian.sh b/seednode/install_seednode_debian.sh index 6121e198edb..1cf4b3bb7ac 100755 --- a/seednode/install_seednode_debian.sh +++ b/seednode/install_seednode_debian.sh @@ -102,7 +102,7 @@ echo "[*] Installing OpenJDK 10.0.2 from Bisq repo" sudo -H -i -u "${ROOT_USER}" "${BISQ_HOME}/${BISQ_REPO_NAME}/scripts/install_java.sh" echo "[*] Building Bisq from source" -sudo -H -i -u "${BISQ_USER}" sh -c "cd ${BISQ_HOME}/${BISQ_REPO_NAME} && ./gradlew build -x test" +sudo -H -i -u "${BISQ_USER}" sh -c "cd ${BISQ_HOME}/${BISQ_REPO_NAME} && ./gradlew build -x test < /dev/null" # redirect from /dev/null is necessary to workaround gradlew non-interactive shell hanging issue echo "[*] Installing Bisq init script" sudo -H -i -u "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${BISQ_HOME}/${BISQ_REPO_NAME}/seednode/bisq-seednode.service" "${SYSTEMD_SERVICE_HOME}/bisq-seednode.service" From 7eaf849f1ace9686b20355ab31c413d60ddd70b2 Mon Sep 17 00:00:00 2001 From: wiz Date: Fri, 20 Dec 2019 23:20:26 +0900 Subject: [PATCH 05/12] Fix seednode install script path replacement delimiter --- seednode/install_seednode_debian.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seednode/install_seednode_debian.sh b/seednode/install_seednode_debian.sh index 1cf4b3bb7ac..bfad9a87c02 100755 --- a/seednode/install_seednode_debian.sh +++ b/seednode/install_seednode_debian.sh @@ -107,13 +107,13 @@ sudo -H -i -u "${BISQ_USER}" sh -c "cd ${BISQ_HOME}/${BISQ_REPO_NAME} && ./gradl echo "[*] Installing Bisq init script" sudo -H -i -u "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${BISQ_HOME}/${BISQ_REPO_NAME}/seednode/bisq-seednode.service" "${SYSTEMD_SERVICE_HOME}/bisq-seednode.service" sudo sed -i -e "s/__BISQ_REPO_NAME__/${BISQ_REPO_NAME}/" "${SYSTEMD_SERVICE_HOME}/bisq-seednode.service" -sudo sed -i -e "s/__BISQ_HOME__/${BISQ_HOME}/" "${SYSTEMD_SERVICE_HOME}/bisq-seednode.service" +sudo sed -i -e "s!__BISQ_HOME__!${BISQ_HOME}!" "${SYSTEMD_SERVICE_HOME}/bisq-seednode.service" echo "[*] Installing Bisq environment file with Bitcoin RPC credentials" sudo -H -i -u "${ROOT_USER}" install -c -o "${ROOT_USER}" -g "${ROOT_GROUP}" -m 644 "${BISQ_HOME}/${BISQ_REPO_NAME}/seednode/bisq-seednode.env" "${SYSTEMD_ENV_HOME}/bisq-seednode.env" sudo sed -i -e "s/__BITCOIN_RPC_USER__/${BITCOIN_RPC_USER}/" "${SYSTEMD_ENV_HOME}/bisq-seednode.env" sudo sed -i -e "s/__BITCOIN_RPC_PASS__/${BITCOIN_RPC_PASS}/" "${SYSTEMD_ENV_HOME}/bisq-seednode.env" -sudo sed -i -e "s/__BISQ_HOME__/${BISQ_HOME}/" "${SYSTEMD_ENV_HOME}/bisq-seednode.env" +sudo sed -i -e "s!__BISQ_HOME__!${BISQ_HOME}!" "${SYSTEMD_ENV_HOME}/bisq-seednode.env" echo "[*] Updating systemd daemon configuration" sudo -H -i -u "${ROOT_USER}" systemctl daemon-reload From 839f791caa22bb2fa05908abb1b0ca710dd9db4e Mon Sep 17 00:00:00 2001 From: wiz Date: Fri, 20 Dec 2019 23:49:37 +0900 Subject: [PATCH 06/12] Fix bisq-seednode.env file replacement --- seednode/bisq-seednode.env | 4 ++-- seednode/bisq-seednode.service | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/seednode/bisq-seednode.env b/seednode/bisq-seednode.env index bee6676cd3f..5a8ca791013 100644 --- a/seednode/bisq-seednode.env +++ b/seednode/bisq-seednode.env @@ -8,8 +8,8 @@ JAVA_HOME=/usr/lib/jvm/openjdk-10.0.2 JAVA_OPTS="-Xms8192M -Xmx8192M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.host=127.0.0.1 -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.rmi.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" # bitcoin rpc credentials -BITCOIN_RPC_USERNAME=_BITCOIN_RPC_USER_ -BITCOIN_RPC_PASSWORD=_BITCOIN_RPC_USER_ +BITCOIN_RPC_USERNAME=__BITCOIN_RPC_USER__ +BITCOIN_RPC_PASSWORD=__BITCOIN_RPC_USER__ # bitcoind rpc ports BITCOIN_RPC_PORT=8332 diff --git a/seednode/bisq-seednode.service b/seednode/bisq-seednode.service index 371e851e5b3..713e9bf43af 100644 --- a/seednode/bisq-seednode.service +++ b/seednode/bisq-seednode.service @@ -5,7 +5,7 @@ Description=Bisq Seed Node After=network.target [Service] -EnvironmentFile=/etc/default/bisq-seednode +EnvironmentFile=/etc/default/bisq-seednode.env ExecStart=__BISQ_HOME__/__BISQ_REPO_NAME__/bisq-seednode --appName=${BISQ_APP_NAME} --nodePort=${BISQ_NODE_PORT} --userDataDir=${BISQ_DATA_DIR} --maxConnections=${BISQ_MAX_CONNECTIONS} --maxMemory=${BISQ_MAX_MEMORY} --fullDaoNode=true --rpcUser=${BITCOIN_RPC_USERNAME} --rpcPassword=${BITCOIN_RPC_PASSWORD} --rpcPort=${BITCOIN_RPC_PORT} --rpcBlockNotificationPort=${BITCOIN_RPC_BLOCKNOTIFY_PORT} --baseCurrencyNetwork=${BISQ_BASE_CURRENCY} --dumpBlockchainData=${BISQ_DUMP_BLOCKCHAIN} ExecStop=/bin/kill -TERM ${MAINPID} Restart=on-failure From 4151cadabe67c130d09157e8ad7c7d5994afdc1c Mon Sep 17 00:00:00 2001 From: wiz Date: Fri, 20 Dec 2019 23:50:12 +0900 Subject: [PATCH 07/12] Fix seednode README bitcoin-cli usage instructions --- seednode/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seednode/README.md b/seednode/README.md index e67ed2cb233..898ac63a4b3 100644 --- a/seednode/README.md +++ b/seednode/README.md @@ -48,7 +48,7 @@ sudo journalctl --unit bisq-seednode --follow After Bisq is fully synced, check your Bitcoin and Bisq onion hostnames: ```bash -sudo bitcoin-cli -conf=/bitcoin/bitcoin.conf getnetworkinfo|grep address +sudo -u bitcoin bitcoin-cli getnetworkinfo|grep address sudo cat /bisq/bisq-seednode/db/tor/hostname ``` From 7be4caf6c131b1a9b09b1d4675e9726ba98d07fd Mon Sep 17 00:00:00 2001 From: wiz Date: Sat, 21 Dec 2019 00:19:28 +0900 Subject: [PATCH 08/12] Fix seednode README getting onion hostname --- seednode/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seednode/README.md b/seednode/README.md index 898ac63a4b3..64b4e4f5166 100644 --- a/seednode/README.md +++ b/seednode/README.md @@ -49,7 +49,7 @@ sudo journalctl --unit bisq-seednode --follow After Bisq is fully synced, check your Bitcoin and Bisq onion hostnames: ```bash sudo -u bitcoin bitcoin-cli getnetworkinfo|grep address -sudo cat /bisq/bisq-seednode/db/tor/hostname +sudo cat /bisq/bisq-seednode/btc_mainnet/tor/hiddenservice/hostname ``` ### Testing From 1ddb4df70afc26265dcac5f9de183b73e4289812 Mon Sep 17 00:00:00 2001 From: wiz Date: Sat, 21 Dec 2019 02:38:59 +0900 Subject: [PATCH 09/12] Add missing libssl-dev in seednode installation script --- seednode/install_seednode_debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seednode/install_seednode_debian.sh b/seednode/install_seednode_debian.sh index bfad9a87c02..557cce1396e 100755 --- a/seednode/install_seednode_debian.sh +++ b/seednode/install_seednode_debian.sh @@ -25,7 +25,7 @@ BITCOIN_REPO_TAG=v0.19.0.1 BITCOIN_HOME=/bitcoin BITCOIN_USER=bitcoin BITCOIN_GROUP=bitcoin -BITCOIN_PKG="libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb-dev" +BITCOIN_PKG="libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb-dev libssl-dev" TOR_PKG="tor" TOR_USER=debian-tor From 4c79f08cc10a169d1048eac0df7c531aabaa4ed3 Mon Sep 17 00:00:00 2001 From: wiz Date: Sat, 21 Dec 2019 03:29:32 +0900 Subject: [PATCH 10/12] Fix seednode README command to get bitcoin onion hostname --- seednode/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seednode/README.md b/seednode/README.md index 64b4e4f5166..67b5b24d98b 100644 --- a/seednode/README.md +++ b/seednode/README.md @@ -48,7 +48,7 @@ sudo journalctl --unit bisq-seednode --follow After Bisq is fully synced, check your Bitcoin and Bisq onion hostnames: ```bash -sudo -u bitcoin bitcoin-cli getnetworkinfo|grep address +sudo -H -u bitcoin bitcoin-cli getnetworkinfo|grep address sudo cat /bisq/bisq-seednode/btc_mainnet/tor/hiddenservice/hostname ``` From af7c628f3231be8197d4f0323e0f2435b21b2f97 Mon Sep 17 00:00:00 2001 From: wiz Date: Sat, 21 Dec 2019 03:36:16 +0900 Subject: [PATCH 11/12] Add warning at bottom of seednode install script to enable firewall --- seednode/install_seednode_debian.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/seednode/install_seednode_debian.sh b/seednode/install_seednode_debian.sh index 557cce1396e..0cdf4014de4 100755 --- a/seednode/install_seednode_debian.sh +++ b/seednode/install_seednode_debian.sh @@ -131,4 +131,8 @@ echo "[*] Starting Bitcoin" sudo -H -i -u "${ROOT_USER}" systemctl start bitcoin sudo -H -i -u "${ROOT_USER}" journalctl --no-pager --unit bitcoin sudo -H -i -u "${ROOT_USER}" tail "${BITCOIN_HOME}/debug.log" -echo "[*] Done!" +echo '[*] Done!' +echo ' ' +echo '[*] DONT FORGET TO ENABLE FIREWALL!!!11' +echo '[*] Follow all the README instructions!' +echo ' ' From 9d1b1d19f613309d6e53ea171ca7b400bd3946f3 Mon Sep 17 00:00:00 2001 From: wiz Date: Sat, 21 Dec 2019 03:46:07 +0900 Subject: [PATCH 12/12] Add notes to server motd in seednode install script --- seednode/install_seednode_debian.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/seednode/install_seednode_debian.sh b/seednode/install_seednode_debian.sh index 0cdf4014de4..2d62b087ab7 100755 --- a/seednode/install_seednode_debian.sh +++ b/seednode/install_seednode_debian.sh @@ -127,11 +127,25 @@ sudo -H -i -u "${ROOT_USER}" ufw default allow outgoing echo "[*] Starting Tor" sudo -H -i -u "${ROOT_USER}" systemctl start tor + echo "[*] Starting Bitcoin" sudo -H -i -u "${ROOT_USER}" systemctl start bitcoin sudo -H -i -u "${ROOT_USER}" journalctl --no-pager --unit bitcoin sudo -H -i -u "${ROOT_USER}" tail "${BITCOIN_HOME}/debug.log" + +echo "[*] Adding notes to motd" +sudo -H -i -u "${ROOT_USER}" sh -c 'echo " " >> /etc/motd' +sudo -H -i -u "${ROOT_USER}" sh -c 'echo "Bisq Seednode instructions:" >> /etc/motd' +sudo -H -i -u "${ROOT_USER}" sh -c 'echo "https://github.com/bisq-network/bisq/tree/master/seednode" >> /etc/motd' +sudo -H -i -u "${ROOT_USER}" sh -c 'echo " " >> /etc/motd' +sudo -H -i -u "${ROOT_USER}" sh -c 'echo "How to check logs for Bisq-Seednode service:" >> /etc/motd' +sudo -H -i -u "${ROOT_USER}" sh -c 'echo "sudo journalctl --no-pager --unit bisq-seednode" >> /etc/motd' +sudo -H -i -u "${ROOT_USER}" sh -c 'echo " " >> /etc/motd' +sudo -H -i -u "${ROOT_USER}" sh -c 'echo "How to restart Bisq-Seednode service:" >> /etc/motd' +sudo -H -i -u "${ROOT_USER}" sh -c 'echo "sudo service bisq-seednode restart" >> /etc/motd' + echo '[*] Done!' + echo ' ' echo '[*] DONT FORGET TO ENABLE FIREWALL!!!11' echo '[*] Follow all the README instructions!'