用 FlyTheElephant 网关在 Lazarus 挖矿

FlyTheElephant1/datum_gateway 是这条链上的一个 DATUM 网关:基于 CONVOY 的 BLAKE2b 代码,加上 FlyTheElephant 自己的改进。它的 master 让每台矿机都拿到矿池完整的分账(16 KB coinbase),并按区块的 weight 和 sigop 上限裁剪这个 coinbase,所以完整分账永远不会让你的区块无效。无需任何补丁即可连接 Lazarus。FlyTheElephant 也在我们 Discord 的 #support 频道帮矿工配置,谢谢他。

1. 节点。Bitcoin Knots 29.4.2(旧版本不认长 coinbase 成熟期规则,它们出的块无效),在这条链上完全同步。bitcoin.conf 中:

server=1
blake2b_headline=8-30 NYPost Deride And Conquer
blockmaxweight=736000
blocknotify=killall -USR1 datum_gateway

blockmaxweight 为分账 coinbase 留出空间。Knots 默认的 DNS 种子指向 SHA-256 节点,所以请从这条链的最新列表加几行 addnode=(bitcoinxor.org/node,或 CONVOY 的指南);几周前复制的列表会失效。maxtipage 只在分叉后同步缓慢的那几周有用,同步完成后可以不设。

2. 编译网关。Debian 或 Ubuntu 下(其他系统见仓库 README):

sudo apt install cmake pkgconf libcurl4-openssl-dev libjansson-dev libsodium-dev libmicrohttpd-dev psmisc
git clone https://github.com/FlyTheElephant1/datum_gateway
cd datum_gateway
cmake . && make
./datum_gateway --test
./datum_gateway -c datum_gateway_config.json

仓库里也有 Dockerfile;用 Docker 时把 notify_fallback 设为 false,并用 blocknotify=wget -q -O /dev/null http://datum-gateway:7152/NOTIFY。

3. 配置。下面是连接 Lazarus 的完整 datum_gateway_config.json。pool_pubkey 从下方 DATUM 标签页复制;pool_address 填你自己的地址(只有非矿池工作才会付到这里);rpccookiefile 或 rpcuser/rpcpassword 指向你的节点。

{
  "bitcoind": {
    "rpccookiefile": "/home/you/.bitcoin/.cookie",
    "rpcurl": "http://127.0.0.1:8332",
    "notify_fallback": true
  },
  "stratum": { "listen_port": 23334, "vardiff_min": 4096 },
  "mining": {
    "pool_address": "bc1q…your address",
    "coinbase_tag_primary": "Lazarus",
    "coinbase_tag_secondary": "your name or rig"
  },
  "api": { "listen_port": 7152, "admin_password": "choose one" },
  "logger": { "log_level_console": 2 },
  "datum": {
    "pool_host": "datum.lazarus-xbt.xyz",
    "pool_port": 28915,
    "pool_pubkey": "the pubkey from the DATUM tab below",
    "pool_pass_workers": true,
    "pool_pass_full_users": true,
    "pooled_mining_only": true
  }
}

vardiff_min 保持 4096:不设的话原版 DATUM 每个会话从 16384 起步,Prime 无法调低。

4. 矿机指向你的网关,而不是我们:stratum+tcp://<网关的局域网 IP>:23334,用户名 你的地址.worker,密码 x。第一个 . 之前的部分就是收款地址。

5. 确认运行。一分钟内你的网关会出现在 Gateways,显示为 v0.4.1-beta/<commit>、费用路径 DATUM;第一个份额之后你的地址会出现在 Miners。网关自己的面板在 7152 端口。日志里应出现 DATUM Server MOTD 和我们的箴言;找到的区块会连同分账显示在这里。

连不上时。日志出现 DATUM not connected and configured for pooled mining only! Rejecting connection,表示网关没有矿池会话,于是拒绝矿机(矿机固件会切到备用矿池):检查 pool_host、pool_port,以及 pool_pubkey 是否是本页的完整公钥;公钥错误过不了握手。区块高度卡在 961,639 说明 Knots 版本过旧或连到了另一条链的节点。日志中出现带升级提示的 Refused,说明你的节点出过被链拒绝的区块;升级 Knots 后重连,会自动放行。

我们的实测。我们在 regtest 上用自己的 Prime 和 Knots 29.4.2 测试了这个网关:握手与公钥校验、每个找到的区块都付给窗口里的所有矿工、地址.worker 与纯地址用户名、0% 的 DATUM 费用路径、断线重连、Prime 的模板检查与拒绝,全部通过。有一项没通过,而且目前所有 C 语言 DATUM 网关(包括 iohzrd 和 CONVOY)都有:每个新区块之后的片刻,以及矿池分账迟到的整个期间,网关可能下发一个只付给矿池的 coinbase 任务。一个小补丁可以修复:分账到达之前只发只含区块补贴的空任务,或者不发任务。我们正把它提交给 FlyTheElephant;合并之后这个版本就没有已知缺陷,在此之前你可以自己打上:datum-gateway-fte-late-coinbaser.patch(在 cmake 之前 patch -p1 <)。

接入

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

两条路,一条规则。你的 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× 向你的算力靠拢。

网关

Prime 上的每一座网关。

此刻连上的每一座 DATUM 网关,包括我们自己的,以及曾经找到过区块、即便现已离线的。区块计数为累计。