

bash <<'QUANTUS'
set -euo pipefail
# ===== 收款地址填写在下面这一行引号 =====
MINER_WALLET=''
MINER_DIR=/workspace/quantus-pool
MINER_SHA=c1b3a5e5233c9d70bf8e5faaa7671b2738c009cb185a9a341f34b7050f387e35
# 避免重复启动矿工
if [ -e /etc/supervisor/conf.d/quanpool.conf ]; then
echo '本实例已经部署。请用 supervisorctl status quanpool 查看状态。'
exit 0
fi
if pgrep -f '(^|/)(quanpool-miner[^ /]*|quantus-miner[^ /]*)[[:space:]]+serve' >/dev/null; then
echo '已有矿工进程运行,请先检查,避免重复挖矿。'
exit 1
fi
# 检查环境
for MINER_CMD in curl nvidia-smi supervisorctl python3 sha256sum; do
command -v "$MINER_CMD" >/dev/null || {
echo "缺少命令:$MINER_CMD"
exit 1
}
done
test -r /opt/supervisor-scripts/utils/logging.sh
test -r /opt/supervisor-scripts/utils/environment.sh
python3 - <<'CHECK'
import socket
with socket.socket() as s:
try:
s.bind(('0.0.0.0', 9900))
except OSError:
raise SystemExit('9900 端口已被使用,请先检查已有服务。')
CHECK
# 自动识别显卡数量和实例编号
MINER_GPUS=$(nvidia-smi --query-gpu=index --format=csv,noheader | wc -l | tr -d '[:space:]')
test "$MINER_GPUS" -gt 0
MINER_WORKER="vast-${CONTAINER_ID:-$(hostname)}-${MINER_GPUS}gpu"
# 下载并校验已经实测的 6.0.0 版本
install -d -m 755 "$MINER_DIR"
cd "$MINER_DIR"
curl -fL --proto '=https' --tlsv1.2 \
--connect-timeout 15 --max-time 600 --retry 2 \
<https://download.quanpool.com/quanpool-miner-linux-x86_64> \
-o quanpool-miner.download
printf '%s %s\n' "$MINER_SHA" quanpool-miner.download | sha256sum -c -
chmod 755 quanpool-miner.download
mv quanpool-miner.download quanpool-miner-6.0.0
# 保存公开收款地址、矿机名和矿池证书指纹
umask 077
printf '%s\n' "$MINER_WALLET.$MINER_WORKER" > pool-auth-token
printf '%s\n' "$MINER_GPUS" > gpu-count
printf '%s\n' '87dc37af6096a3ddc860b94368ca087775f3ad3e0c4e9bcff3b07ea08d8abef6' > pool-tls-cert-sha256
# 创建后台启动命令
cat > /opt/supervisor-scripts/quanpool.sh <<'RUN'
#!/usr/bin/env bash
set -eo pipefail
. /opt/supervisor-scripts/utils/logging.sh
. /opt/supervisor-scripts/utils/environment.sh
cd /workspace/quantus-pool
pty ./quanpool-miner-6.0.0 serve \
--node-addr mainnet.quanpool.com:9834 \
--auth-token-file /workspace/quantus-pool/pool-auth-token \
--tls-cert-sha256-file /workspace/quantus-pool/pool-tls-cert-sha256 \
--cpu-workers 0 \
--gpu-devices "$(cat gpu-count)" \
--metrics-port 9900 \
--mode pool
RUN
chmod 755 /opt/supervisor-scripts/quanpool.sh
# 配置自动启动、异常退出后自动重启
cat > /etc/supervisor/conf.d/quanpool.conf <<'CONF'
[program:quanpool]
environment=PROC_NAME="%(program_name)s"
command=/opt/supervisor-scripts/quanpool.sh
directory=/workspace/quantus-pool
autostart=true
autorestart=true
startsecs=10
startretries=5
stopasgroup=true
killasgroup=true
stopsignal=TERM
stopwaitsecs=20
stdout_logfile=/dev/stdout
redirect_stderr=true
stdout_events_enabled=true
stdout_logfile_maxbytes=0
stdout_logfile_backups=0
CONF
chmod 644 /etc/supervisor/conf.d/quanpool.conf
supervisorctl reread
supervisorctl update quanpool
printf '\n已配置 %s 张 GPU,矿机名:%s\n收款地址:%s\n' \
"$MINER_GPUS" "$MINER_WORKER" "$MINER_WALLET"
echo '请等待约 60 秒,再检查后台状态与接受份额。'
supervisorctl status quanpool
QUANTUS
等待约几分钟后,进行检查:
supervisorctl status quanpool
nvidia-smi
curl -fsS <http://127.0.0.1:9900/hive-stats> | python3 -m json.tool
判断是否正常:
RUNNING:后台进程正在运行。hs:每张显卡都有正数算力。ar:例如 [7, 0],表示接受 7 个份额、拒绝 0 个。持续增加才说明正在有效挖矿。如果一直是 hs: []、接受份额为 0,把输出发给我检查。