本指南将帮助您在 Debian/Ubuntu 系统上部署 Tari 主网节点,并配置 Caddy 反向代理以提供 HTTP Wallet Query Service。
xxxxxxxxxx# 创建临时文件夹TMP_DIR="$(mktemp -d)"
# 创建程序安装目录INSTALL_DIR="/opt/tari"sudo mkdir -p $INSTALL_DIR
# 创建数据存储目录DATA_DIR="/var/lib/tari"sudo mkdir -p $DATA_DIR为安全起见,我们创建一个专用的系统用户来运行 Tari 节点:
xxxxxxxxxxsudo addgroup --system tarisudo adduser --system --ingroup tari --no-create-home \ --home $DATA_DIR --shell /usr/sbin/nologin \ --gecos "Tari Daemon User" tarixxxxxxxxxxwget -O $TMP_DIR/tari_suite.zip https://github.com/tari-project/tari/releases/download/v5.2.0-pre.7/tari_suite-5.2.0-pre.7-mainnet-c9a183b-linux-arm64.zip💡 提示:
请访问 Tari Releases 页面获取最新版本。
确保下载适用于您系统架构的版本(如 x86_64、arm64 等)。
xxxxxxxxxx# 解压文件unzip $TMP_DIR/tari_suite.zip -d $TMP_DIR/tari_suite
# 移动可执行文件到安装目录sudo mv $TMP_DIR/tari_suite/minotari_node $INSTALL_DIRxxxxxxxxxx# 设置目录所有权sudo chown -R tari:tari $DATA_DIRsudo chown -R tari:tari $INSTALL_DIR
# 设置可执行权限sudo chmod +x $INSTALL_DIR/minotari_nodexxxxxxxxxxsudo tee /lib/systemd/system/tari-node.service > /dev/null <<EOF[Unit]Description=Tari Base NodeAfter=network-online.targetWants=network-online.target
[Service]Type=simpleUser=tariGroup=tariWorkingDirectory=$DATA_DIRExecStart=$INSTALL_DIR/minotari_node \\ -b $DATA_DIR \\ -p base_node.mining_enabled=true \\ -p base_node.grpc_enabled=true \\ -p base_node.grpc_address="/ip4/0.0.0.0/tcp/18142" \\ -p base_node.use_libtor=false \\ -p base_node.p2p.transport.type="tcp" \\ -p base_node.p2p.transport.tcp.listener_address="/ip4/0.0.0.0/tcp/18189" \\ -p base_node.http_wallet_query_service.port=9000 \\ -p base_node.http_wallet_query_service.listen_ip="127.0.0.1" \\ --non-interactive-mode \\ --watch statusRestart=on-failureRestartSec=10sStandardOutput=journalStandardError=journalSyslogIdentifier=tari-node
# Security hardeningNoNewPrivileges=truePrivateTmp=trueProtectSystem=strictProtectHome=trueReadWritePaths=$DATA_DIR
[Install]WantedBy=multi-user.targetEOF配置参数说明:
| 参数 | 说明 |
|---|---|
-b $DATA_DIR | 指定数据存储目录 |
base_node.mining_enabled=true | 启用挖矿功能 |
base_node.grpc_enabled=true | 启用 gRPC 接口 |
base_node.grpc_address | gRPC 监听地址 (端口 18142) |
base_node.p2p.transport.tcp.listener_address | P2P 监听地址 (端口 18189) |
base_node.http_wallet_query_service.port | HTTP 查询服务端口 |
--non-interactive-mode | 非交互模式运行 |
首次运行前需要初始化:
xxxxxxxxxxsudo -u tari $INSTALL_DIR/minotari_node -b /var/lib/tari --initxxxxxxxxxx# 重新加载 systemd 配置sudo systemctl daemon-reload
# 启动 Tari 节点sudo systemctl start tari-node
# 设置开机自启sudo systemctl enable tari-nodexxxxxxxxxxsudo tee /etc/caddy/Caddyfile > /dev/null <<EOF# 全局配置{ log { level INFO }}
# HTTP Wallet Query Servicewallet-api.yourdomain.com { log { output file /var/log/caddy/wallet-api-access.log } reverse_proxy 127.0.0.1:9000 { header_up Host {host} header_up Origin https://{host} header_up X-Real-IP {remote_host} }}EOF如果您使用 Cloudflare CDN,建议使用以下配置限制访问:
xxxxxxxxxxsudo tee /etc/caddy/Caddyfile > /dev/null <<EOF# 全局配置{ log { level INFO }}
# HTTP Wallet Query Servicewallet-api.yourdomain.com { # 只允许 Cloudflare IP 访问 @not_cloudflare { not remote_ip 173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 104.24.0.0/14 172.64.0.0/13 131.0.72.0/22 } respond @not_cloudflare "Access Denied" 403 log { output file /var/log/caddy/wallet-api-access.log } reverse_proxy 127.0.0.1:9000 { header_up Host {host} header_up Origin https://{host} header_up X-Real-IP {header.CF-Connecting-IP} header_up X-Forwarded-For {header.CF-Connecting-IP} }}EOF📌 注意:Cloudflare IP 列表可能会更新,请定期访问 https://www.cloudflare.com/ips-v4 获取最新列表。
xxxxxxxxxx# 验证配置语法sudo caddy validate --config /etc/caddy/Caddyfile
# 格式化配置文件sudo caddy fmt --overwrite /etc/caddy/Caddyfile
# 重新加载配置sudo caddy reload --config /etc/caddy/Caddyfile等待节点同步完成后,可使用 minotari_console_wallet 连接:
xxxxxxxxxxminotari_console_wallet -p wallet.http_server_url="https://wallet-api.yourdomain.com"使用 P2Pool 进行 Monero + Tari 合并挖矿:
xxxxxxxxxxp2pool --wallet YOUR_MONERO_WALLET_ADDRESS \ --merge-mine tari://TARI_NODE_IP:18142 TARI_WALLET_ADDRESS参数说明:
YOUR_MONERO_WALLET_ADDRESS:您的 Monero 钱包地址
TARI_NODE_IP:Tari 节点 IP 地址
TARI_WALLET_ADDRESS:您的 Tari 钱包地址
xxxxxxxxxx# 查看服务状态sudo systemctl status tari-node
# 查看日志sudo journalctl -u tari-node -f
# 重启服务sudo systemctl restart tari-node
# 停止服务sudo systemctl stop tari-node| 端口 | 协议 | 用途 |
|---|---|---|
| 18142 | gRPC | 节点 RPC 接口 |
| 18189 | TCP | P2P 网络通信 |
| 9000 | HTTP | Wallet Query Service (本地) |
| 443 | HTTPS | Caddy 反向代理 |
⛏️ P2Pool
⚠️ 安全提示:
请确保防火墙正确配置,仅开放必要端口
定期更新 Tari 节点至最新版本
建议使用 Cloudflare 或类似服务保护您的 HTTP 服务