B2POOL 连接中…

一个地址,全部数据。

一个公开的只读 API,供任何要收录、绘图或比较本矿池的人使用。无密钥、无需注册、不限来源。数据结构沿用 Miningcore 的,因为每个矿池抓取程序都已经有它的解析器 —— 如果你以前写过 Miningcore 适配器,这里只需要你换个主机名。

https://b2pool.io/api/v1/public

JSON · 缓存 60 秒 · 每地址 5 次/秒,突发 20 · 超出就返回 429

如果你是收录站,集成到此为止

一次服务端调用,最快每分钟一次。它同时返回两个矿池 —— 共享和 SOLO —— 以及收录页或收益页需要的一切。

字段它是什么
poolStats.poolHashrate矿池算力,单位 H/s
networkStats.networkHashrate全网算力,同一单位。两者之比就是矿池的真实占比 —— 中间不需要任何换算系数。
networkStats.networkDifficulty全网难度,定义与 SHA-256 链相同。
poolStats.connectedMiners当前在挖的不同收款地址数。connectedWorkers 数的是机器。
poolFeePercent1.0,两个矿池都是。
blockReward当前高度的名义区块补贴,单位 BTCB2。
avgBlockReward矿工实际拿到的金额,按本矿池已确认的区块取平均 —— 还在成熟中的区块尚未入账分配,把它算进去会高估这个数字。做收益计算请用这个:见下面的说明,它和 blockReward 不是一回事。在矿池有确认区块之前为 null,这也是 SOLO 矿池今天报 null 的原因。
blockTime600 秒。与比特币的目标相同。
paymentProcessing支付方式、最低支付额,以及什么触发一次支付。
totalBlocks已找到的区块数,旁边还有 blocksLast24hlastPoolBlockTimelastPoolBlockHeight
poolEffort本轮已完成的工作量 ÷ 全网难度。大于 1 不是错误 —— 只是说明这一轮到目前为止运气不好。
ports每个端口及其起始难度、下限和协议。矿机可以在 stratum 密码字段里用 d=<数字> 覆盖起始值;矿池会四舍五入到最近的 2 的幂,且不会低于该端口的下限。
先看这个 在共享矿池上 只有区块补贴在矿工之间分配。区块里的交易手续费留在矿池,1% 的费率从补贴里扣。所以 coinbase 总额 不是 矿工的收入: avgBlockReward 才是。在 SOLO 矿池上,发现者确实拿走整个 coinbase,补贴和手续费都算上,扣 1% —— 这就是两个矿池在同一个字段上报不同数字的原因。每个矿池对象都在 sharedRevenueblockRewardNote 里写明,省得你去记。

接口地址

全部在 https://b2pool.io 之下。矿池 id 是 btcb2(共享)和 btcb2-solo

路径返回
/api/v1/public两个矿池,外加一张所有接口的清单。从这里开始。
/api/v1/public/pools单独的矿池列表:{"pools":[…]}
/api/v1/public/pools/{id}单个矿池:{"pool":{…}}
/api/v1/public/pools/{id}/blocks已找到的区块,最新在前。?page= 0–50,?pageSize= 1–100。区块还在成熟期间,poolFeeminerRewardnull —— 确认之前分配不入账,在那里放个占位数就等于把一个错数当事实说。subsidytransactionFeesreward 是链上事实,始终存在。
/api/v1/public/pools/{id}/payments支付交易,最新在前。SOLO 矿池为空,因为它在自己区块的 coinbase 里付款。
/api/v1/public/pools/{id}/performance按小时的算力、矿工数和矿机数。?hours= 1–336。
/api/v1/public/network链上事实:高度、难度、算力、补贴、下次减半、coinbase 成熟期。
/api/pools/api/v1/public/pools 的别名,位于 Miningcore 客户端自己会去请求的路径上。/api/pools/{id} 及其子路径同理。

每个响应都是 JSON,带 Access-Control-Allow-Origin: *,所以浏览器可以直接读。时间是 UTC 的 ISO 8601。金额是 8 位小数的 BTCB2,除非字段名以 Sats 结尾。算力一律是 H/s —— 矿池和全网都一样。

试一下

不用装什么,也不用注册什么。

curl -s https://b2pool.io/api/v1/public | jq '.pools[0] | {
  hashrate: .poolStats.poolHashrate,
  miners:   .poolStats.connectedMiners,
  fee:      .poolFeePercent,
  scheme:   .paymentProcessing.payoutScheme,
  reward:   .avgBlockReward,
  network:  .networkStats.networkHashrate
}'

这条链还年轻,收录站可能找不到别的来源来取补贴或难度。/api/v1/public/network 把这些和本矿池的任何数据分开提供,欢迎你就这么用。

限制,以及这里没有什么

速率限制
5 次/秒按地址计,突发 20。超出会得到 429,而不是 503 —— 不是我们挂了,是你来早了。响应缓存 60 秒,所以轮询更快没有任何好处。
认证
只读,无密钥,也没有需要申请的配额。如果你有正当的集成需求要更高的限额,开口就是。
稳定性
只增不改字段只会新增,不会改名或删除。路径里带 v1;破坏性变更会作为 v2 并存。
不包含
按矿工的明细支付按交易聚合,而不是按地址,也没有按地区的拆分。收录一个矿池不需要这两样,而想看支付明细的人,链上本来就有。

发现数字有问题,或者需要一个这里没有的字段?这个矿池小到开口就管用。协议说明讲挖矿那一侧,这条链是什么讲其余部分。

常见问题

B2Pool 的 API 需要密钥吗?

不需要。/api/v1/public 下的每个接口都是只读且开放的,无密钥、无需注册、不限 CORS。限速是每地址每秒 5 次请求,突发 20,超出返回 429。

矿池收录站该用哪个地址?

https://b2pool.io/api/v1/public —— 一次调用就返回两个矿池的算力、费率、支付方式、区块数,以及链的难度和补贴。已经会说 Miningcore 的客户端可以改用 https://b2pool.io/api/pools,它在它们预期的路径上返回同一份矿池列表。

BTCB2 的区块奖励是多少?

补贴的时间表和比特币一样:目前每个区块 3.125 BTCB2,每 210,000 个区块减半。在共享矿池上,只有这部分补贴在矿工之间分配;区块里的交易手续费留在矿池。所以收益计算应该用 avgBlockReward —— 也就是矿工每个区块实际拿到的金额 —— 而不是整个 coinbase。

BTCB2 是用 SHA-256 挖的吗?

不是。BTCB2 是采用 BLAKE2b 工作量证明的比特币,也就是 BIP-110 描述的硬分叉,在第 961,640 区块生效。API 里的 algorithm 字段因此写的是 blake2b。这条链的算力按 Blake2B 租用,有些地方仍标为 Sia 或 SC。