一个地址,全部数据。
一个公开的只读 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 数的是机器。 |
| poolFeePercent | 1.0,两个矿池都是。 |
| blockReward | 当前高度的名义区块补贴,单位 BTCB2。 |
| avgBlockReward | 矿工实际拿到的金额,按本矿池已确认的区块取平均 —— 还在成熟中的区块尚未入账分配,把它算进去会高估这个数字。做收益计算请用这个:见下面的说明,它和 blockReward 不是一回事。在矿池有确认区块之前为 null,这也是 SOLO 矿池今天报 null 的原因。 |
| blockTime | 600 秒。与比特币的目标相同。 |
| paymentProcessing | 支付方式、最低支付额,以及什么触发一次支付。 |
| totalBlocks | 已找到的区块数,旁边还有 blocksLast24h、lastPoolBlockTime 和 lastPoolBlockHeight。 |
| poolEffort | 本轮已完成的工作量 ÷ 全网难度。大于 1 不是错误 —— 只是说明这一轮到目前为止运气不好。 |
| ports | 每个端口及其起始难度、下限和协议。矿机可以在 stratum 密码字段里用 d=<数字> 覆盖起始值;矿池会四舍五入到最近的 2 的幂,且不会低于该端口的下限。 |
接口地址
全部在 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。区块还在成熟期间,poolFee 和 minerReward 是 null —— 确认之前分配不入账,在那里放个占位数就等于把一个错数当事实说。subsidy、transactionFees 和 reward 是链上事实,始终存在。 |
| /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。