接入
在这里挖矿意味着运行你自己的网关:你的地址按你在结算窗口中的工作量比例,直接写入矿池发现的任何区块的 coinbase。矿池从不持有你的资金,也无需创建账户。
本链使用 BLAKE2b 挖矿,而不是 SHA256d。
Bitcoin Knots 硬分叉替换了工作量证明,网关通过 Stratum v1 的 Siacoin 变体提供这些区块头。因此硬件是 BLAKE2b 硬件,也就是为 Siacoin 销售的那种。SHA256d 比特币 ASIC 无论指向哪里都完全无法挖这条链。
第 1 步
你的矿机
BLAKE2b 硬件
第 2 步
一个网关
在 Bitcoin Knots 节点旁
第 3 步
本矿池
ratum-prime
中间这一跳由你自己运行:把矿机直接指向矿池自身的端口是行不通的,因为矿池实现的是 DATUM,不是 stratum。
运行自己的网关
网关是一个在你自己节点旁运行的小程序。它向节点请求区块模板,向你的硬件提供 stratum,并通过加密的 DATUM 协议连接矿池。你挖的每个区块中的交易都由你选择。
开始之前
- 一个带 BLAKE2b 更改的 Bitcoin Knots 节点,已同步,且网关能访问其 RPC。原版 Bitcoin Core 节点验证的是另一条链,无法使用。在节点的模板列出
!blake2b规则之前,网关根本不会分发任何工作。 - 版本匹配。区块头哈希在节点、矿池和网关之间是按字节耦合的,因此三者必须一起升级。请运行 ratum-gateway 0.1.23 或更新版本(更早的版本把 coinbase 限制在约 17 个输出,会把矿池分配的一部分留给运营者手动结清),或者 CONVOY 网关自 2026 年 9 月 3 日合并 BLAKE2b 之后的 master 分支。
- 本链上的一个收款地址,以及一个你的硬件能够访问的端口。
1 · 获取网关
每个发布版本都附有 x86-64 和 aarch64 Linux 以及 Windows 的预编译二进制文件。本矿池也接受 CONVOY DATUM 网关,其 master 分支自 2026 年 9 月 3 日起挖 BLAKE2b。两者读取同一个配置文件,各自忽略不认识的键,因此互相切换只需替换可执行文件。
2 · 编写 gateway.json
CONVOY 网关自带的示例,已填入本矿池的 datum 块。需要编辑三行,二级标签由你自选。
bitcoind.rpcuser和rpcpassword是你节点的 RPC 凭据,rpcurl是它的监听地址。bitcoind.rpccookiefile,即节点.cookie文件的路径,在两种网关上都可以代替这两项凭据。mining.pool_address是你的地址。矿机没有发送自己的地址时就付给它,因此它必须在本链上有效。mining.coinbase_tag_secondary是矿池显示在你身份标识旁的标签;生成的示例中的“DATUM User”在这里只是占位符,ratum-gateway 默认留空。coinbase_tag_primary在矿池模式下被矿池自己的标签替换,只对单独挖出的区块有效。stratum.require_address_username: true是 ratum-gateway 新增的键:启用后,网关在授权时拒绝地址部分不是地址的用户名。上方没有列出它,因为 CONVOY 网关会忽略它;在那里,裸工人名会到达矿池并以BadUsername被拒绝。datum.pool_pubkey是本矿池的身份,你的网关据此校验矿池的握手签名。上方已从运行中的矿池填入;在信任它之前,请与运营者公布的值比对。留空时 CONVOY 网关会获取对端提供的任何密钥而不做校验,所以请保持填写。pooled_mining_only让你的硬件在矿池无法连接时闲置,而不是单独挖矿。- 这个块就是
datum_gateway --example-conf打印的内容,键、顺序和占位符完全相同,另外在datum块中加入了pool_host、pool_port和pool_pubkey,并用占位符替换了默认的二级标签;datum_gateway -?对每个键都有说明。ratum-gateway 没有这个参数,读取的是同一个文件,并在启动时提示log_rotate_daily对它无效。api.listen_port在 7152 端口提供网关自己的状态页;设为 0 可关闭。
3 · 运行,然后把矿机指向它
ratum-gateway -c gateway.json
它连接矿池,等待节点的模板,并在端口 23334 提供 stratum。把你的硬件指向 stratum+tcp://your-host:23334,并把每台矿机的收款地址作为其用户名。
用户名与收款人
矿池把工作量记入 stratum 用户名中第一个点之前的部分,该部分必须是本链节点接受的地址。哪个用户名到达矿池由上方配置中的两个设置决定,因此这里也是你决定网关背后的矿机分别收款还是合并收款的地方。
| 网关设置 | 矿池收到的用户名 | 付给 |
|---|---|---|
pool_pass_full_users: true 上方的配置 | 矿机自己的 stratum 用户名,原样不变 | 每台矿机自己的地址,因此同一网关背后的矿机分别收款 |
pool_pass_workers: truepool_pass_full_users: false | 网关的 pool_address,后接一个点和矿机的用户名 | 网关的地址;工人名仍会到达矿池 |
| 两者都为 false | 仅网关的 pool_address | 网关的地址;没有工人名到达矿池 |
两个设置默认都为 true,两者都设置时 pool_pass_full_users 优先,因此未改动的配置会原样转发用户名。以点开头的用户名只是工人名:两种网关都会把它附加到 pool_address 之后。
如果份额被拒绝
矿池在记入每个份额之前都会根据其任务和 coinbase 重建它,不接受的份额会带着原因返回,你的网关会记录下来。以下是值得处理的几种。
| 代码 | 原因 | 含义 |
|---|---|---|
| 14 | BadUsername | 用户名中第一个点之前的部分不是本链节点接受的地址。通常是因为用了裸工人名。 |
| 43 | NoSplit | 网关挖出的 coinbase 没有支付矿池指定的任何输出。请升级网关:以这种方式提交的工作量不予记入。 |
| 25 | StaleBlock | 份额的父区块已不再是链顶。每个新区块前后出现少量属于正常。 |
| 21 | HighHash | 份额未达到分配给它的难度。持续出现 HighHash 表明矿机在处理一个未分配给它的任务。 |