B2POOL 连接中…

有什么就用什么。

大多数矿池只有一个端口,并且默认后面挂的是矿机。这里每一类硬件都有自己的端口,因为 BLAKE2b 足够便宜,CPU 是真正的参与者,而不是照顾面子。在下面选你的机器,接下来那一屏就是你需要填的三个字段 —— 不用注册账户,也没有密码要记。你的收款地址就是你的账户。

每一份份额都进入矿池近期工作的滑动窗口。矿池找到的每个区块都分摊到这个窗口上,所以一份份额是从多个区块里各拿一点,而不是从一个区块里拿全部 —— 而且不管获胜的那份份额是不是你的,你都有报酬。

六个地区,一个矿池,一个余额。本页所有接入点都跟着你的选择走 —— 我们正在测量哪个离你最近。

用 DATUM,是决定哪些交易进入你正在挖的区块。模板由你自己的节点构建;我们只回传一份谁拿多少的名单。我们看不到你的交易,就算想审查也做不到。我们更希望你这样挖。

28915 端口 连到这里的是网关,不是矿机。网关跑在你自己的机器上,挨着你的节点,而你的矿机指向 .

你需要什么

一个已同步的本链节点 —— Luke Dashjr 的 PPA 里的 Bitcoin Knots 29.4.1,和本矿池跑的是同一个构建 —— 以及 github.com/ocminer/ratum 的网关。两者可以放在同一台机器上。

必须是 ratum-gateway旧的 C 语言网关会按矿机型号挑选 coinbase 布局,并且悄悄丢掉放不下的支付项 —— 对 Antminer A3 来说是全部丢掉。我们宁可在门口就拒绝它,也不让一个区块付错人。

把网关指向我们

把这段加到网关的配置里,和你自己的 bitcoindstratum 设置放在一起:

"datum": {
    "pool_host": "de.b2pool.io",
    "pool_port": 28915,
    "pool_pubkey": "8ba1f7693d117620b1e5a46828f1cd187efe81114e9cee6a063bfbbe2f1b6cff0fc681d3c1ca7cb19c0e0dbddfbea65d5509e974e7f0000112dd07cba744a716",
    "pool_pass_workers": true,
    "pool_pass_full_users": true,
    "pooled_mining_only": true
  }

然后把你的矿机指向你自己机器上的网关 —— 不是指向我们。用户名照旧是你的收款地址:矿池按第一个点之前的部分记账,而且它必须是这条链认可的地址。

接口地址
de.b2pool.io:28915
网关
ratum-gateway 0.1.23+
最低难度
2,048矿池把这个值发给你的网关,网关不会把任何一台矿机放到它以下。网关自己的动态难度从这里往上调。
支付窗口
8 × 全网难度
费率
0 %

如果你的硬件跑不了网关

Antminer A3 和其他 Sia 矿机都跑不了,这没关系。233332444425555 端口就是为它们准备的普通 Stratum V1 接入点 —— 记账方式和支付与 3333、4444、5555 完全相同,所有地区都有。这里矿机档的起始难度更低:2,048 而不是 16,384,所以小机器几秒钟就能交出第一份份额。显卡和 CPU 不变,仍是 128 和 1。它们底层跑的是 DATUM 软件,但从你这边看就是普通的 stratum。

URL        stratum+tcp://de.b2pool.io:23333
  Username   bc1qexample...7k4f.rig-01
  Password   anything

仅限共享 —— 没有 SOLO 的 DATUM 端口,因为每个任务只构建一个 coinbase,由所有连接者共用,无法分别付给各个发现者。要 SOLO 请用 333444455556

一个自由开源的挖矿程序

Supryolo —— MIT 许可,无抽成,无开发者分成,而且快。

github.com/ocminer/supryolo 能在 NVIDIA(CUDA)、AMD(OpenCL)和 CPU 上挖 BLAKE2b,并在可用时自动选择 AVX2 内核。FPGA 和 ASIC 后端在计划中。把它公布的基准数据放到各设备该用的端口上看:

设备算力端口每隔多久一份份额…
NVIDIA RTX 509017.21 GH/s444432 s
AMD RX 7900 XTX5.78 GH/s444495 s
Ryzen 9 3950X,15 线程367 MH/s555512 s

算力是项目自己的数据;节奏是按端口难度算出来的。注意 CPU 那一行 —— 十二秒一份份额,那是处理器在真干活,不是做做样子。

编译它需要 CMake 3.24 或更新版本、一个 C++20 编译器和 OpenSSL 开发文件。CUDA 工具包是可选的,只有 NVIDIA 显卡才需要。

git clone https://github.com/ocminer/supryolo
cd supryolo
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CUDA_ARCHITECTURES=120
cmake --build build -j

没有 CUDA 工具包,或者只有 CPU 的机器?不带它编译:

cmake -S . -B build-cpu -DCMAKE_BUILD_TYPE=Release -DYOLO_CUDA=OFF -DYOLO_OPENCL=OFF
cmake --build build-cpu -j

然后把它指到这里。显卡用 FPGA/显卡端口:

./build/supryolo --url stratum+tcp://de.b2pool.io:4444 \
  --user <your-payout-address>.rig1 --gpu-device 0 --no-cpu

或者 CPU 用难度 1 的端口:

./build/supryolo --no-gpu --cpu-threads 15 \
  --url stratum+tcp://de.b2pool.io:5555 --user <your-payout-address>.cpu1

--list-devices 列出它找到的设备,--benchmark 不连接就测速,另外还有 --gpu-core-clock--gpu-mem-clock--powerlimit--gpu-fan-speed 供你调参。

Supryolo 不是我们的,我们也不因为推荐它而拿一分钱 —— 它是 MIT 许可,没有开发者抽成。我们链接它,是因为用显卡或处理器上这条链,它是最快的路;也因为一个公开了协议却没有可用开源客户端的矿池,只算半个东西。

选最近的地区

从你自己的浏览器到每个地区实测,不是看地图猜的。

法兰克福

测量中…

de.b2pool.io:3333

赫尔辛基

测量中…

hel.b2pool.io:3333

芝加哥

测量中…

ord.b2pool.io:3333

洛杉矶

测量中…

lax.b2pool.io:3333

基辅

测量中…

ua.b2pool.io:3333

香港

测量中…

hkg.b2pool.io:3333

端口会跟着上面的硬件标签页和支付方式开关走,所以每个地区下面那一行就是可以直接粘贴的地址。它们都汇入同一个矿池、同一个余额 —— 选最近的那个,省下的只是每份份额的往返时间。

选对你 ping 最低的那个 —— 你连接的 stratum 端点就跑在那台主机上,往返时间越短,从找到份额到被计入的间隔就越短。它们都汇入同一个矿池和同一个余额,所以切换不花你任何代价。

从中国大陆挖矿

从大陆挖矿该用香港这个接入点,理由是路由而不是距离:它走 CN2 直连线路进入中国电信网络,所以路径完全不碰拥堵的 ChinaNet 骨干,高峰时段也稳得住。在主机上各 ping 十次实测:到北京约 60 毫秒(中国联通,57–67 毫秒),而到法兰克福约 180 毫秒(177–187 毫秒)。往返时间大约只有三分之一,而且因为路径始终在 CN2 上,高峰时段也保持得住。华南还要更近。

这对你提交的每一份份额都有影响,不是只影响一次 —— 往返时间越长,你的硬件就越可能在已经过期的工作上白费力气。如果你在那边有矿场,搬之前请自己测:从你自己的网络跑 ping hkg.b2pool.iomtr hkg.b2pool.io,比网站上的任何说法都更能定这件事,我们也更希望你自己核实。

两个永远不变的字段

不管你选了哪个端口,这两个都一样。

矿机
<收款地址>.<矿机名>例如 bc1q8zq…vty4.shed-01 —— 地址就是你的账户,矿机名只是在矿工页面上区分你的各台机器。
密码
x填什么都行。这个字段存在只是因为 stratum 要求有它。d=<数字> 可以设定你自己的难度下限。
你的报酬来自
来自支付窗口,每个区块都有 每个区块都分摊到矿池近期工作的滑动窗口上 —— 窗口是全网难度的四倍。视区块是怎么找到的,你要么直接从它的 coinbase 收款,要么由矿池转账。只有补贴参与分配;区块的交易手续费留在矿池。
费率
区块补贴的 1.0%区块里的交易手续费留在矿池,用于覆盖运营成本。
  1. 01

    弄一个地址

    为这条链新建一个钱包,复制一个接收地址。绝不要重复使用在分叉另一侧已经持币的地址。

  2. 02

    选择端口

    你的硬件决定用哪个端口,你想怎么拿钱决定它是共享的那个号还是 SOLO 的那个号。除此之外两者没有任何区别。

  3. 03

    填三个字段

    地址、矿机名、密码。打开你矿机的网页界面或命令行,把上面标签页里的值填进去。

  4. 04

    保存并查看

    保存,让机器重连,然后看有没有被接受的份额。一两分钟内,你的页面就会出现在「矿工」下面。

两个接入点做备用

把另一个地区填成 Pool 2,矿机名和密码一样。

比如法兰克福作 Pool 1、赫尔辛基作 Pool 2。每个地区都汇入同一个矿池和同一个余额,所以切换只花掉重连的那几秒。两个槽位用同一个端口号 —— 端口在各地的含义完全相同。

出问题的时候

矿机连上后立刻断开

几乎总是矿机名字段的问题。它必须是你的收款地址,后面可以跟一个点和矿机名。如果地址格式不对,矿池会直接断开连接,而不是往一个没人能花的地址上挖。

份额提交了但全被拒绝

先看机器的时钟 —— 系统时间跟真实时间差太多是最常见的原因。然后再看矿机名字段。换端口没有用:所有端口跑的是同一个协议,区别只在起始难度。

什么都没提交,但矿机说自己在算

你多半用了给更快硬件准备的端口,第一份份额还没到。把该端口的起始难度乘以 4.295 × 109 再除以你的算力:那就是等待时间。在收到你的第一份份额之前,矿池没法给你降难度,所以一张停在矿机端口上的显卡可能安静好几天。往下换一个端口,或者在密码字段里用 d= 自己指定难度,完全跳过这段等待。

租算力平台报「Low worker difficulty」

用矿机端口。它从 16,384 起步,从不低于 1,024,足以越过任何租算力平台可能要求的最低值。如果平台自己有难度字段,别动它 —— 矿池的值会直接透传过去。

租来的算力通常远大于 16,384 所适合的规模:在 100 TH/s 下那是每 0.7 秒一份份额,在动态难度稳定下来之前,双方都不需要这么大的流量。在密码字段里写 d=1000000,起步就接近每 45 秒一份份额。

我能自己设起始难度吗?

可以。在密码字段里写 d= 加一个数字 —— 大的租用算力写 d=50000,小的写 d=2000。矿池会在你的第一条 mining.set_difficulty 里用这个难度回应,在你的第一份份额之前。这也是它唯一起作用的时刻:在第一份份额到达之前,动态难度什么也调不了,所以那之前完全由起始值决定。

这个数字会被四舍五入到最近的 2 的幂。在这条链上,份额目标是 2224−1 右移整数位,所以 32,768 和 65,536 之间什么都没有 —— d=50000 变成 65,536,d=2000 变成 2,048。端口下限依然有效:要求低于端口允许的值,你拿到的就是下限。如果你的矿机会说 mining.suggest_difficulty,效果完全一样。

为什么 CPU 不能拿到更低的难度?

因为链本身有下限。难度 1 的一份份额要 232 次哈希 —— 大约 43 亿次 —— 再没有更小的工作单位可以发放。CPU 端口已经贴在这个下限上了。八个核心在那里大约每 81 秒一份份额,矿池再怎么做也快不了。

网站上的算力比矿机上低

矿池只能测到它收到的份额,所以是在一个时间窗口里估算你的速率,数字会来回跳。请按小时比,不要按分钟。如果持续差出几个百分点以上,通常意味着有被拒绝的份额或线路不稳。

没有矿机能先试试吗?

可以 —— CPU 端口就是干这个的。任何会说 stratum 的 BLAKE2b CPU 挖矿程序都能连上并提交份额,这足以在你把真正的硬件指过来之前,确认你的地址和矿机名能被接受。