From 6d2161f41fee0cc091a04b50389ee4ec53c62114 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 29 Apr 2026 16:13:07 +0000 Subject: [PATCH] Add Ubuntu daemon installer and DNS seeds --- contrib/install-ubuntu-daemon.sh | 100 +++++++++++++++++++++++++++++++ src/chainparams.cpp | 7 ++- 2 files changed, 105 insertions(+), 2 deletions(-) create mode 100755 contrib/install-ubuntu-daemon.sh diff --git a/contrib/install-ubuntu-daemon.sh b/contrib/install-ubuntu-daemon.sh new file mode 100755 index 00000000..c26da2c4 --- /dev/null +++ b/contrib/install-ubuntu-daemon.sh @@ -0,0 +1,100 @@ +#!/usr/bin/env bash +set -euo pipefail + +REPO_URL="${REPO_URL:-https://github.com/pacificao/agrarian.git}" +BRANCH="${BRANCH:-main}" +INSTALL_DIR="${INSTALL_DIR:-/opt/agrarian}" +AGRARIAN_USER="${AGRARIAN_USER:-agrarian}" +DATA_DIR="${DATA_DIR:-/var/lib/agrarian}" +CONF_DIR="${CONF_DIR:-/etc/agrarian}" +CONF_FILE="${CONF_FILE:-$CONF_DIR/agrarian.conf}" +SERVICE_FILE="${SERVICE_FILE:-/etc/systemd/system/agrariand.service}" +JOBS="${JOBS:-$(nproc)}" +RPCUSER="${RPCUSER:-agrarianrpc}" +RPCPASSWORD="${RPCPASSWORD:-$(openssl rand -hex 32)}" + +if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then + echo "Run as root: sudo $0" >&2 + exit 1 +fi + +export DEBIAN_FRONTEND=noninteractive + +apt-get update +apt-get install -y \ + git ca-certificates build-essential pkg-config autoconf automake libtool \ + bsdmainutils libboost-all-dev libevent-dev libgmp-dev libssl-dev \ + libdb5.3-dev libdb5.3++-dev + +if ! id "$AGRARIAN_USER" >/dev/null 2>&1; then + useradd --system --home "$DATA_DIR" --shell /usr/sbin/nologin "$AGRARIAN_USER" +fi + +mkdir -p "$(dirname "$INSTALL_DIR")" "$DATA_DIR" "$CONF_DIR" + +if [[ -d "$INSTALL_DIR/.git" ]]; then + git -C "$INSTALL_DIR" fetch origin + git -C "$INSTALL_DIR" checkout "$BRANCH" + git -C "$INSTALL_DIR" pull --ff-only origin "$BRANCH" +else + rm -rf "$INSTALL_DIR" + git clone --branch "$BRANCH" "$REPO_URL" "$INSTALL_DIR" +fi + +cd "$INSTALL_DIR" +chmod +x ./autogen.sh ./contrib/build-linux.sh +JOBS="$JOBS" ./contrib/build-linux.sh + +install -m 0755 src/agrariand /usr/local/bin/agrariand +install -m 0755 src/agrarian-cli /usr/local/bin/agrarian-cli + +chown -R "$AGRARIAN_USER:$AGRARIAN_USER" "$DATA_DIR" "$CONF_DIR" + +if [[ ! -f "$CONF_FILE" ]]; then + install -m 0640 -o "$AGRARIAN_USER" -g "$AGRARIAN_USER" /dev/null "$CONF_FILE" + cat > "$CONF_FILE" < "$SERVICE_FILE" <(1, 23); base58Prefixes[SCRIPT_ADDRESS] = std::vector(1, 24);