法兰克福
测量中…
de.b2pool.io:3333
大多数矿池只有一个端口,并且默认后面挂的是矿机。这里每一类硬件都有自己的端口,因为 BLAKE2b 足够便宜,CPU 是真正的参与者,而不是照顾面子。在下面选你的机器,接下来那一屏就是你需要填的三个字段 —— 不用注册账户,也没有密码要记。你的收款地址就是你的账户。
或者整件事自己来:你自己的节点构建区块,由你挑选交易,矿池只回答谁该拿多少。同样是 1 % 的费率,而且这是 stratum 退场唯一不会波及的路径。一步步搭建你自己的 DATUM 网关 →
每一份份额都进入矿池近期工作的滑动窗口。矿池找到的每个区块都分摊到这个窗口上,所以一份份额是从多个区块里各拿一点,而不是从一个区块里拿全部 —— 而且不管获胜的那份份额是不是你的,你都有报酬。
只有当你的某份份额就是那个区块时才有报酬,那时整个 coinbase 都归你。在那之前你一分钱也挣不到,不管要多久。先看看你的算力胜算如何。
六个地区,一个矿池,一个余额。本页所有接入点都跟着你的选择走 —— 我们正在测量哪个离你最近。
区块由你自己构建。你自己的节点挑选交易、组装模板;你的网关只向我们问一个问题——谁该拿多少——再把我们的回答写进 coinbase。区块存在之前我们根本看不到它,而我们无法审查自己并不构建的东西。这条链本就该这样挖。
代价是一台长期开机的机器、约 40 GB 磁盘,以及一到三天的首次同步。不需要编译——网关只是一个 2.4 MB 的静态二进制文件。Bitcoin Knots 29.4.2 或更新版本是必需的:更旧的节点会把过早花费的 coinbase 放进你的模板,而网络从第 973,440 个区块起就会拒绝它。
网关由我们运行,付你钱的依然是区块本身。你的地址是 coinbase 里的一个输出,而不是我们替你保管的余额——和 RATUM 一样。你放弃的是模板:在这条路上,交易由我们挑选,不是你。如果你的矿机没法放在自己的节点后面,就选它。
每个区域的 23333、24444 和 25555 端口:面向矿机是普通 Stratum V1,底下是 DATUM,同样从 coinbase 支付,同样 1 % 的手续费。ASIC 档从 2,048 起步而不是 16,384,所以小机器几秒内就能交出第一份额。没有独享的 DATUM 单挖端口——每个任务只构建一个 coinbase 并由所有人共用,无法单独支付给每个找到区块的人。
URL stratum+tcp://de.b2pool.io:23333 Username bc1qexample...7k4f.rig-01 Password anything
这一项不是一类硬件。Stratum V2 是较新的线路协议:端到端加密,用二进制而不是 JSON,并且允许矿机自己挑选区块里的交易,而不是照单全收矿池的。同一条链,同样的支付,同样的机器 —— 只是换一种方式跟我们说话。
你几乎肯定用不到这个。目前几乎没有挖矿固件会说 V2,租用算力更是没有 —— 如果你要把矿机或租来的算力指过来,左边的某个标签页才是你要的。这一页是给自己写或自己跑 V2 挖矿程序的人看的。
V2 端口就是 V1 端口前面加个 1,别的什么都不变:矿机用 13333,FPGA 和显卡用 14444,CPU 用 15555 —— 档位相同、难度相同、记账相同,所有地区都有。SOLO 同理,用 13334、14445 和 15556。Job Declaration 也开放,共享用 13337,SOLO 用 13338 —— 那就是让你自己挑交易的那一个。
URL stratum2+tcp://de.b2pool.io:13333 Authority key cc22ab3495b26c1a5d0a5c834df4ae8926cc7dbf8ef6c292f951f174280cd323 Username bc1qexample...7k4f.rig-01 Channel standard or extended, both accepted
把 authority key 固定下来:你的矿机就是靠它确认对面是我们,而不是中间人。矿池重启时它不会变。
普通的 stratum 端口:你把矿机指向我们,区块由我们构建。它今天能用,支付方式也一样——出自 coinbase,直接到你的地址。现在什么都不会坏;但如果你正在为未来两年采购硬件,请先读 RATUM 那一栏。
这条链的工作量证明是 BLAKE2b —— 和 Sia 用的是同一个函数 —— 所以 Sia 时代的硬件不用改动就能挖。不用新固件,没有厂商锁定,没什么要刷的。iBeLink BM-S3 或 BM-S3+ 指向本矿池的方式,和当年指向 Sia 矿池一模一样。
| 设备 | 端口 | 起始 | 下限 | 每份份额的哈希数 |
|---|---|---|---|---|
| ASIC | 3333 | 16,384 | 1,024 | 1.41 × 1014 |
| FPGA | 4444 | 128 | 128 | 5.50 × 1011 |
| GPU | 4444 | 128 | 128 | 5.50 × 1011 |
| CPU | 5555 | 1 | 1 | 4.29 × 109 |
FPGA 与 GPU 共用端口是有意的:三个端口覆盖整个区间,而 FPGA 下接快速显卡、上接慢速 ASIC。CPU 从难度 1 开始,也停在那里——那是链本身的下限,不是我们的让步。显卡在这里不会比 ASIC 赚得多,本页也不假装如此;只要它的工作还在支付窗口内,它就按比例分到每一个被找到的区块。
Pool 1 URL stratum+tcp://de.b2pool.io:3333 Pool 1 Worker bc1qexample...7k4f.shed-01 Pool 1 Password x Pool 2 URL stratum+tcp://hel.b2pool.io:3333 (failover) Pool 2 Worker bc1qexample...7k4f.shed-01 Pool 2 Password x
在浏览器里打开矿机的 IP,登录后进入矿池配置页。那里有三个槽位;填好第一个,再把第二个区域设为备用。一台 4.3 TH/s 的机器大约在连接后 16 秒交出第一份额,550 GH/s 的大约要两分钟。
Supryolo —— MIT 许可,无抽成,无开发者分成,而且快。
github.com/ocminer/supryolo 能在 NVIDIA(CUDA)、AMD(OpenCL)和 CPU 上挖 BLAKE2b,并在可用时自动选择 AVX2 内核。FPGA 和 ASIC 后端在计划中。把它公布的基准数据放到各设备该用的端口上看:
| 设备 | 算力 | 端口 | 每隔多久一份份额… |
|---|---|---|---|
| NVIDIA RTX 5090 | 17.21 GH/s | 4444 | 32 s |
| AMD RX 7900 XTX | 5.78 GH/s | 4444 | 95 s |
| Ryzen 9 3950X,15 线程 | 367 MH/s | 5555 | 12 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-0.2.1-windows-x86_64.zip 并解压。把你的收款地址填进附带的启动脚本,或者直接调用可执行文件:
supryolo.exe --url stratum+tcp://de.b2pool.io:4444 ^ --user <your-payout-address>.rig1 --gpu-device 0 --no-cpu
任何其他支持 Stratum V1 的 BLAKE2b 矿工程序同样可用 —— 协议已完整公开。
从发布页取 supryolo-0.2.1.hiveos.tar.gz,作为自定义矿工程序添加 —— Hive OS 接受任何带安装脚本的压缩包。旁边还有给 mmpOS 用的 -mmpos.tar.gz。飞行表只需要这些:
完整的 Hive OS 或 mmpOS 安装我们没有端到端验证过 —— 包已经构建好,上面的飞行表是我们确知可用的部分。
镜像是 ocminersupr/supryolo:0.2.1。容器不会改变矿工程序的任何参数:
docker run --rm --gpus all ocminersupr/supryolo:0.2.1 \ --url stratum+tcp://de.b2pool.io:4444 \ --user <your-payout-address>.rig1 --gpu-device 0 --no-cpu
只用 CPU 的话不需要 --gpus 参数:
docker run --rm ocminersupr/supryolo:0.2.1 --no-gpu --cpu-threads 15 \ --url stratum+tcp://de.b2pool.io:5555 --user <your-payout-address>.cpu1
发布页上也有 -docker.tar.gz,如果你更想加载镜像而不是拉取。
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.io 和 mtr hkg.b2pool.io,比网站上的任何说法都更能定这件事,我们也更希望你自己核实。
不管你选了哪个端口,这两个都一样。
d=<数字> 可以设定你自己的难度下限。为这条链新建一个钱包,复制一个接收地址。绝不要重复使用在分叉另一侧已经持币的地址。
你的硬件决定用哪个端口,你想怎么拿钱决定它是共享的那个号还是 SOLO 的那个号。除此之外两者没有任何区别。
地址、矿机名、密码。打开你矿机的网页界面或命令行,把上面标签页里的值填进去。
保存,让机器重连,然后看有没有被接受的份额。一两分钟内,你的页面就会出现在「矿工」下面。
没有提现这一步,因为根本无需提现。
当矿池找到一个区块时,你的地址会被写入该区块的 coinbase — 也就是创造这些币的那笔交易 — 旁边就是你的份额。从那一刻起这些币就属于你;它们从不躺在矿池钱包里,也从不依赖运营者是否转出。刚挖出的币仍需先成熟才能花费 — 这是链的规则,对链上每位矿工都一样。低于 10,000 sat 的金额会结转到你的下一份份额。
把另一个地区填成 Pool 2,矿机名和密码一样。
比如法兰克福作 Pool 1、赫尔辛基作 Pool 2。每个地区都汇入同一个矿池和同一个余额,所以切换只花掉重连的那几秒。两个槽位用同一个端口号 —— 端口在各地的含义完全相同。
几乎总是矿机名字段的问题。它必须是你的收款地址,后面可以跟一个点和矿机名。如果地址格式不对,矿池会直接断开连接,而不是往一个没人能花的地址上挖。
先看机器的时钟 —— 系统时间跟真实时间差太多是最常见的原因。然后再看矿机名字段。换端口没有用:所有端口跑的是同一个协议,区别只在起始难度。
你多半用了给更快硬件准备的端口,第一份份额还没到。把该端口的起始难度乘以 4.295 × 109 再除以你的算力:那就是等待时间。在收到你的第一份份额之前,矿池没法给你降难度,所以一张停在矿机端口上的显卡可能安静好几天。往下换一个端口,或者在密码字段里用 d= 自己指定难度,完全跳过这段等待。
用矿机端口。它从 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,效果完全一样。
因为链本身有下限。难度 1 的一份份额要 232 次哈希 —— 大约 43 亿次 —— 再没有更小的工作单位可以发放。CPU 端口已经贴在这个下限上了。八个核心在那里大约每 81 秒一份份额,矿池再怎么做也快不了。
矿池只能测到它收到的份额,所以是在一个时间窗口里估算你的速率,数字会来回跳。请按小时比,不要按分钟。如果持续差出几个百分点以上,通常意味着有被拒绝的份额或线路不稳。
可以 —— CPU 端口就是干这个的。任何会说 stratum 的 BLAKE2b CPU 挖矿程序都能连上并提交份额,这足以在你把真正的硬件指过来之前,确认你的地址和矿机名能被接受。