#!/usr/bin/env bash
set -euo pipefail

CONFIG_DIR="/etc/jadecoin"
CONFIG_FILE="${CONFIG_DIR}/miner.env"

if [ "$(id -u)" -ne 0 ]; then
  echo "请使用 root 权限运行：sudo jadecoin-miner-setup"
  exit 1
fi

ask() {
  local prompt="$1"
  local default="${2:-}"
  local value
  if [ -n "$default" ]; then
    read -r -p "${prompt} [${default}]: " value
    echo "${value:-$default}"
  else
    read -r -p "${prompt}: " value
    echo "$value"
  fi
}

mkdir -p "$CONFIG_DIR"

DEFAULT_MANUFACTURER_CODE="$(cat /etc/jadecoin/manufacturer_code 2>/dev/null || true)"
MANUFACTURER_CODE="${MANUFACTURER_CODE:-$(ask "矿机机器唯一码 / 厂家唯一码" "$DEFAULT_MANUFACTURER_CODE")}"
MACHINE_CODE="${MACHINE_CODE:-$(ask "Machine Code，可留空自动等于机器唯一码" "$MANUFACTURER_CODE")}"
DEPIN_INGEST_KEY="${DEPIN_INGEST_KEY:-$(ask "DePIN ingest key；测试白名单机器可先留空" "")}"
BASELINE_NETWORK_MBPS="${BASELINE_NETWORK_MBPS:-$(ask "基准网络 Mbps" "100")}"

cat > "$CONFIG_FILE" <<ENV
MANUFACTURER_CODE=${MANUFACTURER_CODE}
MANUFACTURER_CODE_FILE=/etc/jadecoin/manufacturer_code
MACHINE_CODE=${MACHINE_CODE}
MACHINE_CODE_FILE=/etc/jadecoin/machine_code
DEPIN_INGEST_KEY=${DEPIN_INGEST_KEY}
HEARTBEAT_ENDPOINT=https://jadecoin.org/api/node/depin/heartbeat
HEALTH_ENDPOINT=https://jadecoin.org/api/health
BASELINE_NETWORK_MBPS=${BASELINE_NETWORK_MBPS}
VENDOR_PROBE_ENABLED=true
VENDOR_PROBE_COMMAND=/opt/jadecoin-miner/vendor-hardware-probe.sh
VENDOR_PROBE_TIMEOUT_SECONDS=5
HEARTBEAT_INTERVAL_SECONDS=60
HEARTBEAT_JITTER_SECONDS=10
RETRY_SECONDS=30
HTTP_TIMEOUT_SECONDS=20
LOG_FILE=/var/log/jadecoin-miner-agent.log
STATE_DIR=/var/lib/jadecoin-miner
HISTORY_LIMIT=720
DASHBOARD_ENABLED=true
DASHBOARD_HOST=127.0.0.1
DASHBOARD_PORT=8787
OTA_ENABLED=true
OTA_MANIFEST_URL=https://jadecoin.org/downloads/miner-agent/latest.json
OTA_MANIFEST_SIGNATURE_URL=https://jadecoin.org/downloads/miner-agent/latest.json.sig
OTA_MANIFEST_PUBLIC_KEY_FILE=/etc/jadecoin/ota-ed25519-public.pem
OTA_REQUIRE_SIGNATURE=true
OTA_STATE_DIR=/var/lib/jadecoin-miner/ota
OTA_LOG_FILE=/var/log/jadecoin-miner-ota.log
ENV

printf '%s\n' "$MANUFACTURER_CODE" > /etc/jadecoin/manufacturer_code
printf '%s\n' "$MACHINE_CODE" > /etc/jadecoin/machine_code
chmod 0600 "$CONFIG_FILE" /etc/jadecoin/manufacturer_code /etc/jadecoin/machine_code

systemctl daemon-reload
systemctl enable jadecoin-miner-agent.service jadecoin-miner-ota.timer
systemctl restart jadecoin-miner-agent.service jadecoin-miner-ota.timer

echo
echo "JadeCoin 矿机软件已配置并启动。"
echo "状态：sudo systemctl status jadecoin-miner-agent --no-pager"
echo "日志：sudo journalctl -u jadecoin-miner-agent -f"
echo "本地页面：http://<矿机IP>:8787"
