使用 CONVOY 开始挖矿

搭建您自己的 DATUM Gateway
已经在运行 DATUM Gateway 了?

以下已经是 Gateway 的内置默认值,您通常不需要自行设置:

datum.pool_host: datum-beta1.mine.convoy.xyz
datum.pool_port: 28915
datum.pool_pubkey: dbb11fa0c2b5403e4f798fa6071bb97e6079d219598366032fdf2ae01962b13c5e66e2be7d6b008f0b2603f3e6f6fc64768fa786c8129c46d3e30a5867734b62
1.
搭建比特币节点

DATUM 的原理是通过您自己的比特币节点生成专属的区块模板。在安装 DATUM Gateway 之前,您需要先准备一个可供其对接的已同步节点。

选择您的平台:

在您的 StartOS Marketplace 中添加 https://start9.mempool.guide 作为自定义注册表(点击左上角的注册表名称,然后选择“+ Add”),然后从中安装“Bitcoin Knots”。

通过网址添加 mempool.guide 注册表。

如果您想调整内存池、区块模板和区块通知相关设置,Bitcoin Knots 自身的 Actions & Config 中的“Mempool Settings”和“Other Settings”即可直接配置——不过默认值已经足以让您开始使用。

最简单的方式是使用官方的 Bitcoin Knots PPA:

sudo add-apt-repository ppa:luke-jr/bitcoinknots
sudo apt install bitcoind

bitcoinknots.org 下载适合您 CPU 架构的构建版本并解压。

Bitcoin Knots 并未提供 Alpine 版本的构建,而且 Alpine 使用的 musl libc 也无法运行其他发行版基于 glibc 预编译的二进制文件——请安装编译依赖并自行编译:

apk add build-base cmake pkgconf python3 libevent-dev boost-dev sqlite-dev
cmake -B build
cmake --build build

完整的通用 Linux 编译说明请参阅 Knots 官方的 build-unix.md

无论采用哪种方式,这都是整套配置中负载最重的部分,请为其配备高速磁盘及充足的存储空间和带宽。

同步完成后,请扩大内存池容量(大于默认值),为矿池的收益交易预留空间,并在出现新区块时通知 Gateway。在节点的配置文件中添加:

maxmempool=1000
blockmaxweight=785000
blocknotify=killall -USR1 datum_gateway

blocknotify 这一行需要系统已安装 killall 命令,该命令来自 psmisc 软件包:

apk add psmisc
sudo pacman -S psmisc
sudo apt install psmisc
sudo dnf install psmisc
sudo apt install psmisc

如果您的节点和 Gateway 运行在不同的机器上,请改用 Gateway 的 NOTIFY API 接口。

将其配置为系统服务,以便开机自动启动:

[Unit]
Description=Bitcoin Knots daemon
After=network.target

[Service]
User=bitcoin
ExecStart=/usr/local/bin/bitcoind -conf=/etc/bitcoin/bitcoin.conf
Restart=on-failure

[Install]
WantedBy=multi-user.target

将其保存为 /etc/systemd/system/bitcoind.service(请根据您的实际情况调整路径/用户),然后执行:

sudo systemctl enable --now bitcoind

如果您下载的是 GUI 版本,只需让 bitcoin-qt 保持运行即可。

Alpine 使用 OpenRC 而非 systemd。请查阅 Bitcoin Knots 的 README 或 Alpine wiki 获取 OpenRC 启动脚本,或者暂时直接运行 bitcoind,自行处理重启事宜。

2.
安装并配置 DATUM Gateway

DATUM Gateway 位于您的节点和矿机之间:它通过 RPC 从您的节点获取区块模板,将工作分发给矿机,并通过加密的 DATUM 协议与 CONVOY 协调收益分配。通过自己的 Gateway 挖矿,费用为 CONVOY 标准的 1% 矿池费。

选择您的平台:

CONVOY 在同一个社区注册表中维护着自己的“Datum Gateway”版本(标记为 #pow),默认已配置为在 CONVOY 的 DATUM 服务器上挖矿。

浏览时请勿安装您在 Start9 官方 Registry 或其 Community Registry 中看到的“Datum Gateway”——那些是完全不同、由其他团队单独维护的版本。Community Registry 中的版本基于旧版本构建,如今已经完全无法用于比特币,更不用说 CONVOY 了。官方 Registry 中的版本是否兼容 CONVOY 尚未经过验证,在得到证实之前请视为不受支持。

  • 从您在第 1 步中添加的 start9.mempool.guide 注册表安装“Datum Gateway”(标记为 #pow 的版本)。

mempool.guide 注册表:Bitcoin Knots 与 Datum Gateway(#pow),以及其他几款支持 BLAKE2b 的软件包。

  • 打开它的 Actions & Config,进入 Mining Settings,填入您自己的比特币收款地址。

Mining Settings:在此填写您的比特币地址,其余选项保持默认即可。

  • 打开 Actions & Config → Create Password,即可生成 Gateway 的管理员密码(用于其自身的网页仪表板,与您的 StartOS 密码是两回事)。

Create Password 会为您生成并显示管理员密码。

待您的 Bitcoin Knots 安装完成同步、且以上两项任务都已完成后,Dashboard 的 Status 应会显示为正常。

Dashboard 会列出 Gateway 启动前还需完成的事项。

安装编译所需的依赖,然后从源代码进行编译:

apk add cmake pkgconf curl-dev jansson-dev libsodium-dev libmicrohttpd-dev psmisc build-base
sudo pacman -Syu base-devel cmake pkgconf curl jansson libsodium libmicrohttpd psmisc
sudo apt install cmake pkgconf libcurl4-openssl-dev libjansson-dev libsodium-dev libmicrohttpd-dev psmisc
sudo dnf install cmake pkgconf libcurl-devel jansson-devel libsodium-devel libmicrohttpd-devel psmisc
sudo apt install cmake pkgconf libcurl4-openssl-dev libjansson-dev libsodium-dev libmicrohttpd-dev psmisc

针对 Ubuntu 还计划推出专属的 Launchpad PPA,作为准备就绪后更简便的替代方案。

git clone https://github.com/CONVOYMining/datum_gateway.git
cd datum_gateway
cmake .
make

从仓库中的 doc/example_datum_gateway_config.json 复制示例配置,然后填入您节点的 RPC 信息以及您自己的比特币收款地址:

{
    "bitcoind": {
        "rpcuser": "你的节点RPC用户名",
        "rpcpassword": "你的节点RPC密码",
        "rpcurl": "http://localhost:8332"
    },
    "mining": {
        "pool_address": "您自己的比特币收款地址"
    },
    "api": {
        "admin_password": "请设置一个强密码",
        "listen_port": 7152
    }
}

请设置一个强健的 api.admin_password 以保护 Gateway 的网页仪表板。datum.pool_host 请保持不填,它已默认指向 CONVOY 的 DATUM 服务器。

同样将其配置为系统服务:

[Unit]
Description=DATUM Gateway
After=network.target bitcoind.service

[Service]
WorkingDirectory=/etc/datum_gateway
ExecStart=/usr/local/bin/datum_gateway -c /etc/datum_gateway/datum_gateway_config.json
Restart=on-failure

[Install]
WantedBy=multi-user.target

将其保存为 /etc/systemd/system/datum_gateway.service(请根据您的实际情况调整路径),然后执行:

sudo systemctl enable --now datum_gateway

Alpine 同样使用 OpenRC 而非 systemd——请参阅第 1 步中的说明,或者暂时直接运行 datum_gateway

运行后,Gateway 会在您配置的端口(api.listen_port)上提供一个小型仪表板。您可以在其中查看配置,如果设置了 api.modify_conf,还可以直接在此修改配置:

DATUM Gateway 的 Config 标签页,显示您的比特币地址、coinbase 标签,以及 DATUM 矿池连接信息。

Advanced 部分,用于配置节点的 RPC 连接。

查看 Status 标签页以确认连接成功:

已成功连接的 Gateway 的 Status 标签页。

3.
将您的矿机指向您的 DATUM Gateway,使用您的比特币地址作为用户名,密码填写为“x”。
  • 支持的地址类型:
    • P2PKH(原始地址类型,以“1”开头)
    • P2SH(多重签名或 P2SH-Segwit,以“3”开头)
    • Bech32(Segwit,以“bc”开头)
    • Bech32m(Taproot,以“bc”开头,长度比 Bech32 更长)
  • 您的比特币地址必须准确无误。
    • 通常不建议手动输入地址。
    • Gateway 不会校验用户名是否为有效的比特币地址,地址无效也不会导致连接被拒绝。
    • 若用户名不是有效的比特币地址,Gateway 将无法生成区块。每次修改配置后,请务必测试整套挖矿流程。
    • 请务必反复检查统计页面,确保一切运行正常!
  • 您可以在地址后加上一个句点(.)和自定义的 worker 名称,为矿机附加简短标识。这有助于在仪表板中更精确地追踪单台矿机或矿机组。
    • 示例:myaddress.myworkername
    • 若未指定 worker 名称,系统将默认使用“default”。
  • 同一用户名 / worker 名称下可连接多台矿机,其算力会自动汇总。
  • Gateway 支持的 Stratum 用户名最长可达 191 个字符。设置完成后,请务必在仪表板中确认矿机已与矿池正常连接。
  • 另外,请将 stratum+tcp://mine.convoy.xyz:3333 添加为备用矿池,用户名与您上面的主连接保持一致,这样即使您的节点或 Gateway 离线,矿机也能继续工作。此地址仅作为备用连接,并非主要连接——直接使用它挖矿会跳过 DATUM,放弃对区块模板的控制权,且需支付该备用服务 2% 的费用,而非 DATUM 标准的 1%。
  • 密码可以任意填写,系统会忽略该字段,但建议保持简短(例如:“x”,不含引号)。
  • 不确定您 Gateway 的 IP 地址?可以查看路由器的已连接设备列表。
    • 在运行它的机器上执行 ip -4 -o addr show scope global——输出中网络接口那一行,“inet”后面、“/”前面的数字就是它的局域网 IP。
    • 或者查看 StartOS 中 Gateway 的 Interfaces 标签页。
选择您使用的所有矿机品牌(可多选):

请至少选择一个矿机品牌,以查看相应的设置说明。

在矿机的网页管理界面中,进入矿机配置(Miner Configuration)下的常规设置(General Settings),将 Pool 1 的 URL 设置为 stratum+tcp://your_gateway_ip:23334,Worker 填写您的比特币地址,密码(Password)填写“x”。

对 Pool 2 重复上述操作,将 URL 设置为 stratum+tcp://mine.convoy.xyz:3333 作为备用矿池——Worker 和密码与 Pool 1 保持一致。

如果您不知道矿机在网络中的地址,find.goldshell.com 可以帮您查找。

请先确认界面已解锁(右上角),然后在 矿机设置 下点击 添加 打开矿池配置:协议已默认设置为 stratum+tcp,因此 URL 只需填写 your_gateway_ip:23334(不要加 stratum+tcp:// 前缀),矿工名填写您的比特币地址,密码填写“x”。

再次点击 添加 新建第二个矿池条目:协议不变,URL 只需填写 mine.convoy.xyz:3333(同样不要加 stratum+tcp:// 前缀)作为备用矿池,矿工名和密码与之前保持一致。

在矿机的 Config 页面中添加一个矿池,URL 填写 stratum+tcp://your_gateway_ip:23334,Pool User 填写您的比特币地址,Pool Password 填写“x”。

再次点击 Add Pool 新建第二个矿池条目:URL 填写 stratum+tcp://mine.convoy.xyz:3333 作为备用矿池,Pool User 和 Pool Password 与之前保持一致。

(占位内容——我们目前还没有 Innosilicon 网页界面的截图来确认具体字段名称。目前在用的机型大多是较旧的 S11 SiaMaster;如果您正在使用,欢迎告诉我们界面情况,我们会补充完善此处内容。)

矿机连接后,您会在 Gateway 的 Clients 标签页中看到它:

您的 DATUM Gateway 的 Clients 标签页,显示已连接的矿机及其接受/拒绝的份额数。

4.
确认一切运行正常
  • 在您首次提交的工作量证明被接受后,统计数据可能需要几分钟才会显示。

查看您的统计数据:

欢迎来到 CONVOY