用 Ratum 网关在 Lazarus 挖矿

ratum-gateway 是 iohzrd 用 Rust 重写的 DATUM 网关:一个静态二进制文件,与 C 版网关用同一个 datum_gateway_config.json,并自带状态页。Lazarus 直接接受它,不需要补丁、特殊设置或审批。它和本站其他自建 DATUM 网关一样:0% 手续费,外加 DATUM 奖励。2026 年 9 月 27 日,连接 Lazarus 的网关中有 19 个在跑它,版本从 0.1.23 到 0.1.53。

每一条已发布的版本线,我们都先在测试链上对接自家 Prime 实测过,才说它能用。逐个版本的结果见文末表格。简短结论:用最新的正式版,也就是本指南安装的版本。

1. 你需要

  • 本链的 Bitcoin Knots 29.4.2,完全同步,开启 server=1。它负责构建你的区块模板;29.4.2 是第一个认识长 coinbase 成熟期规则(自区块 973,440 起为共识)的版本,更旧的节点会构建被全网拒绝的区块。见本链说明。
  • 一台常开的机器:Linux、macOS 或 Windows,64 位,x86 或 ARM。网关本身很小;节点裁剪后约需 20 GB。
  • 一个本链收款地址,来自只在本链使用的钱包。
  • 与网关在同一网络中的 BLAKE2b 矿机(任何 Siacoin 矿机)。

2. 安装 ratum-gateway

从 github.com/iohzrd/ratum/releases 下载适合你机器的版本并核对校验和。64 位 Linux:

V=0.1.53
curl -fsSLO https://github.com/iohzrd/ratum/releases/download/v$V/ratum-gateway-$V-x86_64-linux-musl.tar.gz
curl -fsSLO https://github.com/iohzrd/ratum/releases/download/v$V/ratum-gateway-$V-x86_64-linux-musl.tar.gz.sha256
sha256sum -c ratum-gateway-$V-x86_64-linux-musl.tar.gz.sha256
tar -xzf ratum-gateway-$V-x86_64-linux-musl.tar.gz
sudo install -m0755 ratum-gateway-$V-x86_64-linux-musl/ratum-gateway /usr/local/bin/
ratum-gateway --version

ARM Linux(例如树莓派 5)用 aarch64-linux-musl 文件,Mac 用 macos 文件,Windows 用 x86_64-windows.zip。也可以从源码编译:git clone https://github.com/iohzrd/ratum && cd ratum && git checkout v0.1.53 && cargo build --release --bin ratum-gateway。

3. 让网关及时知道新区块

在节点的 bitcoin.conf 里加上这一行并重启节点,这样出新块时网关几毫秒内就切换,而不是等下一次轮询:

blocknotify=curl -fsS -o /dev/null http://127.0.0.1:7152/NOTIFY

7152 是下面配置里网关的 api.listen_port。也可以用 kill -USR1 <pid>,效果相同。

4. 配置文件

保存为 datum_gateway_config.json。它就是 C 版网关的配置文件,所以已有的文件只要把 datum 段指向这里就能直接用。公钥是本矿池的,来自矿池实时数据。

{
  "bitcoind": {
    "rpcurl": "http://127.0.0.1:8332",
    "rpccookiefile": "/home/YOU/.bitcoin/.cookie",
    "work_update_seconds": 40,
    "notify_fallback": true
  },
  "stratum": {
    "listen_addr": "0.0.0.0",
    "listen_port": 23334,
    "vardiff_min": 4096,
    "require_address_username": true
  },
  "mining": {
    "pool_address": "YOUR_XBT_ADDRESS",
    "coinbase_tag_primary": "Lazarus",
    "coinbase_tag_secondary": "YOUR_GATEWAY_NAME"
  },
  "api": {
    "listen_addr": "127.0.0.1",
    "listen_port": 7152,
    "admin_password": "CHANGE_ME",
    "miner_listen_addr": "127.0.0.1",
    "miner_listen_port": 8000
  },
  "datum": {
    "pool_host": "datum.lazarus-xbt.xyz",
    "pool_port": 28915,
    "pool_pubkey": "29120606bbbfdeb0dcb259d13ed1fba9e6ff198ff6a0152cffb7608dc1c266bd17532393738aee7edf9aa0c9ec93b835256971f186da878f77fb3ed273dff30a",
    "pool_url": "https://pool.lazarus-xbt.xyz",
    "pool_pass_workers": true,
    "pool_pass_full_users": true,
    "pooled_mining_only": true
  }
}
  • datum:我们的主机、端口和矿池公钥。公钥锁定这条连接:填错公钥的网关拿不到会话,也不下发任何工作——我们实测过。pool_url 只是在网关状态页上放一个指向本站的链接。
  • mining.pool_address:填你自己的地址。网关与矿池连接期间,它构建的每个 coinbase 都支付我们的分配和矿池输出,与这里填什么无关,所以不影响你的收入。只有在网关与矿池失联期间挖出的工作才会付到这里,见第 7 步。
  • coinbase_tag_secondary:你的网关名称,也就是本站网关表显示的名字。coinbase_tag_primary 只在连不上矿池时使用;连接期间网关写入的是我们的标签。
  • pool_pass_full_users: true:网关后面的每台矿机按它自己用户名里的地址收款,多人可以共用一个网关。
  • require_address_username: true:用户名不以地址开头的矿工会被网关拒绝,而不是替一个谁也收不到钱的名字挖矿。
  • vardiff_min: 4096:新会话的起始难度,更快的机器会从这里往上调。
  • admin_password 保护 7152 端口上的状态页和设置页。它们用的是普通 HTTP Basic 认证,所以请把 listen_addr 保持在 127.0.0.1 或内网。

5. 启动网关,把矿机指向它

ratum-gateway -c datum_gateway_config.json。一两秒内日志会出现 DATUM pool configuration: … tag "Lazarus",接着是 Stratum job … ready (full): … coinbaser outputs, pooled。要让它常驻,可以用 systemd:

[Unit]
Description=ratum-gateway (DATUM gateway for Lazarus Pool)
After=network-online.target bitcoind.service

[Service]
User=YOU
ExecStart=/usr/local/bin/ratum-gateway -c /home/YOU/ratum/datum_gateway_config.json
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

每台矿机:矿池地址 stratum+tcp://网关局域网IP:23334(运行网关的那台机器,不是我们的主机),用户名 bc1…你的地址.矿工名,密码 x。我们的 DATUM 端口 28915 只和网关通信,矿机指向那里什么也拿不到。

6. 确认我们看到了它

  • 一分钟内,本站网关表会以 Ratum 网关 列出它,带版本号和提交号,名称是你的 secondary 标签。第一个份额被接受后,状态变为「在算」。
  • 工作进入窗口后,你的地址会出现在矿工和下次付款里。可以在 pool.lazarus-xbt.xyz/#bc1… 查询。
  • /api/gateways 里有同一行数据,带 software: {"name": "ratum-gateway", …};Lazarus MCP 的 gateway_status 工具可以按名称回答「我的网关连上了吗」。
  • 网关自己的页面 http://127.0.0.1:7152/ 显示矿池连接、它手里的分配,以及每台已连接的矿机。

7. 连不上矿池时

我们测试过的每个 Ratum 版本,在与矿池失联时(无论是 Prime 重启还是网络中断)行为都一样:最初 12 到 26 秒里,它继续让你的矿机算它自己构建的工作,coinbase 只付给 mining.pool_address。之后才断开矿机,矿池恢复后矿机会自动重连。在这段空档里找到的区块不是矿池区块:我们看不到它,窗口里的任何人都不会从中得到付款。所以 pool_address 应该填你自己的地址:这样的区块付给你,这很公平,因为那是你的工作。如果填我们的地址,它会落进矿池钱包,却记不到任何人名下。我们很少重启 Prime,而且只在出块之后立刻重启;这个空档也已报告给 Ratum 的作者。

8. 故障排查

  • connecting to DATUM pool datum-beta1.mine.ocean.xyz
    datum 段缺失或拼错,Ratum 退回了内置默认值(OCEAN)。按上面的配置填好 pool_host、pool_port 与 pool_pubkey。
  • 刚连上就 DATUM connection ended,本站也看不到你的网关
    pool_pubkey 不对。握手是用我们的公钥加密的,别家矿池的公钥(或旧的副本)在任何工作开始之前就会被拒绝。请从“接入”一节重新复制公钥。
  • no work is served until it connects / disconnecting stratum clients
    开着 pooled_mining_only(请保持开启),而网关连不上 datum.lazarus-xbt.xyz:28915。检查出站 TCP 28915 和 DNS。恢复后矿机会自动重连。
  • 矿机能连上,但一直收不到任务
    节点还在同步,或者不是 BLAKE2b 版 Knots:节点模板里没有 !blake2b 规则之前,Ratum 不下发任何工作。请为本链运行 Bitcoin Knots 29.4.2 并等它同步完成。
  • 启动时 Address already in use
    有别的程序占了端口。Ratum 还会开一个矿工查询端口 api.miner_listen_port(默认 8000);改掉它或 API 端口即可。
  • 某个矿工的授权被拒
    这是 require_address_username 在起作用:第一个 . 之前的部分不是地址。请用 bc1…你的地址.矿工名。不开这个检查的话,份额会被接受,但记在一个谁也收不到钱的名字上。
  • 本站网关表上有少量 bad-coinbase-outputs 或过期拒绝
    Prime 刚重启或链上出了新块之后属正常:之前的任务带的是旧的分配。几秒内消失,不会损失任何记账。
  • 链拒绝你的区块,或网关因 #419 被拒
    你的节点早于 Knots 29.4.2,不认识长 coinbase 成熟期规则。升级节点后重连,拒绝会自动解除。

9. 换用 Ratum,或换到 Lazarus

从 C 版网关(CONVOY、iohzrd、FlyTheElephant 或 StartOS):停掉 datum_gateway,用同一个文件启动 ratum-gateway -c;如果 8000 端口已被占用,再加上 api.miner_listen_port。收益跟着地址走,不跟着网关走,所以已在窗口里的工作仍然是你的。新网关有新的密钥,会在本站网关表上显示为新的一行,旧的那行变为离线。

从别家矿池的 Ratum 配置(Omega、B2Pool、P2Block、AlphaPool):只改 datum 段,换成上面的主机、端口和公钥;如果设置了 pool_url 也一并改掉。指向别家公共网关的 secondary 标签在这里没有意义,留着或删掉都行。P2Block 的分支有 solo 模式:把 mining.solo 设为 false,否则网关根本不连矿池。AlphaPool 的 28916 端口和它的公钥在这里无效,我们的是 28915。

换回去就是反过来改。没有任何锁定:你在这里做的工作,只要还在窗口里,就由我们找到的区块支付。

我们实测了什么

ratum-gateway 对接 Lazarus Prime:regtest 实测(2026 年 9 月 27 日,XBT-082)与线上 Prime 的计数
版本区块、收款人只付矿池的完整工作失联时
iohzrd 0.1.285 / 5 记为 split,13–14 个收款人4 毫秒 / 222 秒
线上 0.020%
不经矿池 18 秒
iohzrd 0.1.3910 / 10 记为 split,13–15 个收款人0 毫秒 / 230 秒
线上 0.030%
不经矿池 26 秒
iohzrd 0.1.53(最新正式版)7 / 7 记为 split,13–15 个收款人3 毫秒 / 229 秒
线上 0.084% (份额尚少)
不经矿池 17 秒
iohzrd master 0.1.549 / 9 记为 split,13–15 个收款人6 毫秒 / 227 秒
线上 —
不经矿池 19 秒
B2Pool 分支(ocminer)0.1.259 / 9 记为 split,13–15 个收款人9 毫秒 / 227 秒
线上 0.000% (份额尚少)
不经矿池 19 秒
P2Block 分支 0.1.297 / 7 记为 split,13–15 个收款人6 毫秒 / 232 秒
线上 —
不经矿池 20 秒

方法:一条启用 BLAKE2b 与长 coinbase 成熟期规则的 Bitcoin Knots 29.4.2 regtest 链、一份我们的 Prime(与矿池运行的版本相同)、每个网关版本,以及两台 CPU 矿机;每个版本约八分钟,每个模板都带交易,另有对手每 15 秒出一个块。检查项:公钥锁定连接;每个记为 split 的区块在链上的支付与记录完全一致;DATUM 费率路径与奖励;地址.矿工名 与 地址~标签.矿工名 用户名;Prime 重启;以及没有任何拒绝。「线上」是在只付给矿池的完整任务上被接受的份额所占比例,取自我们 Prime 对该版本所有已连接网关的计数。我们推荐的 iohzrd C 版网关按同一口径为 0.018%。每个 Ratum 新版本我们都会重跑同一套测试并更新此表。

接入

用户名只有一个:你的地址。

两条路,一条规则。你的 stratum 用户名就是收款地址。

推荐 · 零手续费 · 拿奖励

你自己的 DATUM 网关

0%

由你的节点组块并挑选交易。Lazarus 只规定 coinbase 分配并验证你的 shares。On top of your full share, every block credits you a cut of the public stratum’s fee.

下方配置

最简单 · 指向即可

公共 stratum

25%

我们的节点、我们的模板。任意 BLAKE2b ASIC 或矿机。同一个 TIDES 窗口——以后改走网关,已接受的工作跟着走。12.5 points of the fee goes to the DATUM miners; run a gateway and you are on the receiving end.

下方配置

选哪个 DATUM 网关

如果你自己跑节点,从下面选一个。四者都支持 BLAKE2b,无需补丁即可连到这里。用公共 stratum 可跳过这一段。

  1. 推荐 iohzrd Master c031568;StartOS pow_0.4.1_23 用的是较早的 7491a50。每台矿机都拿到完整分账,并按区块 weight 与 sigop 上限裁剪,所以找到的区块付给整个窗口。我们对自己的 Prime 实测:每个新区块之后约 20 毫秒内,以及矿池分账迟到期间,它可能下发只付给矿池的任务。
  2. FlyTheElephant Master a5f28aa:CONVOY 的 BLAKE2b 代码加上 FlyTheElephant 的修复。每台矿机都拿到完整的分账 coinbase,并按区块 weight 与 sigop 上限裁剪,所以找到的区块会付给整个窗口。和目前所有 C 语言网关一样,每个新区块之后的片刻,以及矿池分账迟到期间,它可能下发只付给矿池的任务;一个单文件补丁即可修复。安装指南与测试结果。
  3. Ratum iohzrd 用 Rust 写的网关 ratum-gateway:Linux、macOS、Windows 各一个二进制文件,配置文件相同。coinbase 里包含全部分配输出,只付给矿池的任务最多占 0.006% 的时间;每个版本都对接我们的 Prime 实测过。与矿池断开后,它仍会继续下发 12–26 秒的非矿池任务,这些任务付给 mining.pool_address,所以请把它设成你自己的地址。安装指南。
  4. CONVOY Master ac9b70c。对它能识别的矿机(包括蚂蚁 A3)仍按固件分档,所以这些矿机找到的区块可能只付给前 ~17 位矿工。和其他 C 语言网关一样,每个新区块之后约 20 毫秒内,以及矿池分账迟到期间,它可能下发只付给矿池的任务。

CONVOY 的入门指南把 Bitcoin Knots 和 DATUM 网关写得更细——节点、编译网关、再把矿机指过去。读中文版,或看 English。网关的主机、端口和公钥用本页下面的;Lazarus 的费率与 DATUM 奖励以本页为准,不是他们的。

Stratum
用户名
bc1q…你的地址.矿机名
密码
x
手续费
25% 的窗口份额,在 coinbase 内扣除. 12.5 points of it is credited to the DATUM miners in the window — run your own gateway and it is paid to you instead
算法
BLAKE2b — Sia 风格区块头,不是 SHA-256d
支付
你在 TIDES 窗口中的份额,写入矿池找到的每个区块的 coinbase。见 下一次支付。

我们在 :23334 上的公共网关本身就是这套 Prime 上的 DATUM 网关——你会在 网关 里看到它——所以这里的工作和你自建网关的工作会记入同一地址的同一窗口。新会话从难度 4096 开始;vardiff 随后约每 20 秒按 2× 向你的算力靠拢。