用 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.
下方配置
要么全有,要么没有
独挖
7.5%
没有窗口,不分享。找到区块,整笔奖励扣除手续费归你;找不到就什么也没有。
下方配置
选哪个 DATUM 网关
如果你自己跑节点,从下面选一个。四者都支持 BLAKE2b,无需补丁即可连到这里。用公共 stratum 可跳过这一段。
-
推荐 iohzrd Master
c031568;StartOSpow_0.4.1_23用的是较早的7491a50。每台矿机都拿到完整分账,并按区块 weight 与 sigop 上限裁剪,所以找到的区块付给整个窗口。我们对自己的 Prime 实测:每个新区块之后约 20 毫秒内,以及矿池分账迟到期间,它可能下发只付给矿池的任务。 -
FlyTheElephant Master
a5f28aa:CONVOY 的 BLAKE2b 代码加上 FlyTheElephant 的修复。每台矿机都拿到完整的分账 coinbase,并按区块 weight 与 sigop 上限裁剪,所以找到的区块会付给整个窗口。和目前所有 C 语言网关一样,每个新区块之后的片刻,以及矿池分账迟到期间,它可能下发只付给矿池的任务;一个单文件补丁即可修复。安装指南与测试结果。 -
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× 向你的算力靠拢。
你来组块。我们只分配 coinbase。运行 Bitcoin Knots 和 DATUM 网关,把网关指向 Prime,把矿机指向网关。由你的节点选交易;Prime 把窗口的 coinbase 分配交给你的网关,验证每一份 share,并记入你的地址。如果你的矿机找到区块,那是你的模板,里面有所有人的支付。该运行哪个网关。更长的安装说明:CONVOY 入门(中文) / English。
DATUM 奖励。 The public stratum pays a 25% fee. 12.5 points of it is not kept by the pool: on every block found it is credited to every DATUM miner holding work in the window, pro rata by DATUM work. It lands on your balance whether or not your address made that block’s coinbase, and is paid with your next output once it clears the minimum. Small gateways get their exact share; nobody is skipped.
- 主机
- datum.lazarus-xbt.xyz
- 端口
- 28915
- 公钥
- —
- 手续费
- 0% 的窗口份额 — no cut versus 公共 stratum
- 奖励
datum_gateway_config.json 中的 stratum 与 datum 段
- 为本链运行 Bitcoin Knots,打开
server=1,并提供网关能读的 cookie 或 RPC 用户。 - 编译网关,把上面的
stratum和datum段合并进配置,并把mining.pool_address设为你的收款地址。分配未点名的剩余金额会到那里。原版 DATUM 若省略stratum.vardiff_min会默认 16384——那既是下限也是起点,Prime 无法再调低。请设为 4096,让新会话从那里开始;更快的机器 vardiff 仍会往上走。 - 把矿机指向你网关的 stratum(通常是
stratum+tcp://127.0.0.1:23334)。用户名为地址.矿机名:第一个.之前的部分是收款人,必须是本链接受的地址。 - 在 网关 下看到你的网关,在 矿工 下看到你的地址。原版构建仍可能发出一份省略窗口的 coinbase 任务:当前的 iohzrd、CONVOY 和 FlyTheElephant 仅在矿池分配来晚时如此。旧的 FlyTheElephant / OCEAN 系
v0.4.1-beta构建(没有+lazarus-split)仍会在每个高度的第一份任务上如此。Prime 会接受这份工作,若这样的任务找到了区块,会记下矿池随后欠窗口的金额。 - 这四步之外,更完整的 Knots + DATUM 说明见 CONVOY 入门指南(中文),然后回到这里拿 Lazarus 的主机、端口、公钥和配置片段。用 Ratum?它有单独的指南,整份配置都已指向这里。
按网关设置,钱付给谁
| 网关设置 | 矿池收到的用户名 | 付给 |
|---|---|---|
pool_pass_full_users: true(上面的配置) |
矿机自己的 stratum 用户名,原样传递 | 每位矿工自己的地址,同一网关后的矿工分开收款 |
pool_pass_workers: truepool_pass_full_users: false |
网关的 mining.pool_address,然后是 . 和矿机用户名 |
付给网关地址;矿机名仍会到达矿池 |
两者都为 false |
仅网关的 mining.pool_address |
付给网关地址;矿池收不到矿机名 |
独挖是赌注,不是工资。你的 shares 买不到任何东西——只证明你在干活。其中一份成为区块时,该块的全部奖励扣除我们的手续费,付给用户名里的地址,并写在该块自己的 coinbase 里。在那之前,无论挖多久都没有收入。矿池挖矿让你稳定分得矿池找到的每个块;独挖很少发生、一旦发生就很大。多数矿工应留在矿池。
- 用户名
- bc1q…你的地址.矿机名
- 密码
- x
- 手续费
- 7.5% 的区块奖励,作为你解出的 coinbase 中的一笔输出。块与块之间既不扣留,也不欠你任何东西。
- 支付
- 区块的其余部分——补贴与其中每一笔交易费——直接到你的地址,满 6,481 个确认后可花费(区块 973,440 之前为 100 个)。
- 你的几率
- 按你的算力预计出块时间显示在你的 数据 页。
独挖工作故意不进入 TIDES 窗口。若你想两者都要,可把一部分矿机指向独挖、其余指向矿池端口;矿池的继续赚窗口份额,独挖的去追整块。你的独挖 shares 不会出现在 矿工 或 下一次支付——请看 独挖。
已经在跑自己的节点?那就直接对着它独挖——那不需要我们,也不该付钱给我们。这些端口是给不想跑节点、又想独挖的矿工。
网关
Prime 上的每一座网关。
此刻连上的每一座 DATUM 网关,包括我们自己的,以及曾经找到过区块、即便现已离线的。区块计数为累计。