Eine Adresse, alles.
Eine öffentliche, nur lesende API für alle, die diesen Pool listen, darstellen oder vergleichen. Kein Schlüssel, keine Registrierung, keine Herkunftsbeschränkung. Die Form ist die von Miningcore, weil jeder Pool-Scraper dafür schon einen Parser hat — wer einmal einen Miningcore-Adapter geschrieben hat, braucht hier nichts ausser dem Hostnamen.
https://b2pool.io/api/v1/public
JSON · 60 s zwischengespeichert · 5 Anfragen/s je Adresse, Spitze 20 · antwortet mit 429, wenn du darüber gehst
Wenn du ein Tracker bist, ist das die ganze Anbindung
Ein Aufruf, serverseitig, höchstens einmal pro Minute. Er liefert beide Pools — gemeinschaftlich und solo — mit allem, was eine Auflistung oder eine Ertragsseite braucht.
| Feld | Was es ist |
|---|---|
| poolStats.poolHashrate | Pool-Hashrate in H/s. |
| networkStats.networkHashrate | Netz-Hashrate, dieselbe Einheit. Das Verhältnis der beiden ist der echte Anteil des Pools — dazwischen ist kein Umrechnungsfaktor anzuwenden. |
| networkStats.networkDifficulty | Netzschwierigkeit, dieselbe Definition wie bei der SHA-256-Kette. |
| poolStats.connectedMiners | Verschiedene Auszahlungsadressen, die gerade minen. connectedWorkers zählt Maschinen. |
| poolFeePercent | 1,0, auf beiden Pools. |
| blockReward | Die nominale Subvention auf der aktuellen Höhe, in BTCB2. |
| avgBlockReward | Was Miner tatsächlich bekommen haben, gemittelt über die bestätigten Blöcke dieses Pools — bei einem noch reifenden Block ist die Aufteilung nicht gebucht, ihn mitzumitteln würde die Zahl überhöhen. Nimm dieses Feld für die Ertragsrechnung: siehe den Hinweis unten, es ist nicht dasselbe wie blockReward. Null, bis der Pool einen bestätigten Block hat — deshalb meldet der Solo-Pool heute null. |
| blockTime | 600 Sekunden. Dasselbe Ziel wie Bitcoin. |
| paymentProcessing | Modell, Mindestauszahlung und was eine Auszahlung auslöst. |
| totalBlocks | Gefundene Blöcke, daneben blocksLast24h, lastPoolBlockTime und lastPoolBlockHeight. |
| poolEffort | Geleistete Arbeit der laufenden Runde ÷ Netzschwierigkeit. Über 1 ist kein Fehler — es heisst, die Runde hatte bisher Pech. |
| ports | Jeder Port mit seiner Startschwierigkeit, Untergrenze und seinem Protokoll. Ein Miner kann den Startwert mit d=<zahl> im Stratum-Passwortfeld überschreiben; der Pool rundet auf die nächste Zweierpotenz und geht nie unter die Untergrenze des Ports. |
Endpunkte
Alles unter https://b2pool.io. Die Pool-Kennungen sind btcb2 (gemeinschaftlich) und btcb2-solo.
| Pfad | Liefert |
|---|---|
| /api/v1/public | Beide Pools, dazu eine Übersicht aller Endpunkte. Fang hier an. |
| /api/v1/public/pools | Nur die Poolliste: {"pools":[…]}. |
| /api/v1/public/pools/{id} | Ein Pool: {"pool":{…}}. |
| /api/v1/public/pools/{id}/blocks | Gefundene Blöcke, neueste zuerst. ?page= 0–50, ?pageSize= 1–100. poolFee und minerReward sind null, solange ein Block reift — die Aufteilung wird erst mit der Bestätigung gebucht, und ein Platzhalter dort wäre eine falsche Zahl, als Tatsache ausgegeben. subsidy, transactionFees und reward sind Kettenfakten und immer vorhanden. |
| /api/v1/public/pools/{id}/payments | Auszahlungstransaktionen, neueste zuerst. Beim Solo-Pool leer, weil er im Coinbase seines eigenen Blocks zahlt. |
| /api/v1/public/pools/{id}/performance | Stündliche Hashrate, Miner und Worker. ?hours= 1–336. |
| /api/v1/public/network | Kettenfakten: Höhe, Schwierigkeit, Hashrate, Subvention, nächste Halbierung, Coinbase-Reife. |
| /api/pools | Alias für /api/v1/public/pools, auf dem Pfad, den ein Miningcore-Client von sich aus anfragt. /api/pools/{id} und seine Unterpfade funktionieren genauso. |
Jede Antwort ist JSON mit Access-Control-Allow-Origin: *, ein Browser kann sie also direkt lesen. Zeiten sind ISO 8601 in UTC. Beträge sind BTCB2 mit 8 Nachkommastellen, ausser wo ein Feldname auf Sats endet. Hashraten sind durchweg H/s — Pool wie Netz.
Ausprobieren
Nichts zu installieren, nichts anzumelden.
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
}'
Die Kette ist jung, ein Tracker hat für Subvention oder Schwierigkeit also womöglich keine andere Quelle. /api/v1/public/network führt beides getrennt von allem, was diesen Pool betrifft, und darf gern so genutzt werden.
Grenzen, und was hier nicht drinsteht
- Ratenbegrenzung
- 5 / sJe Adresse, Spitze 20. Darüber bekommst du 429, nicht 503 — wir sind nicht ausgefallen, du bist nur zu früh. Antworten sind 60 Sekunden zwischengespeichert, häufiger abzufragen bringt also nichts.
- Anmeldung
- KeineNur lesend, kein Schlüssel, kein Kontingent zu beantragen. Wer für eine ernsthafte Anbindung eine höhere Grenze braucht, fragt.
- Stabilität
- Nur ergänzendFelder kommen hinzu, werden nicht umbenannt oder entfernt. Der Pfad führt v1; eine brechende Änderung käme als v2 daneben.
- Nicht enthalten
- Aufschlüsselung je MinerZahlungen werden je Transaktion zusammengefasst, nicht je Adresse, und eine Aufteilung nach Region gibt es nicht. Beides braucht man nicht, um einen Pool zu listen, und die Zahlungsdetails stehen ohnehin in der Kette, für jeden, der sie will.
Etwas stimmt in den Zahlen nicht, oder du brauchst ein Feld, das hier fehlt? Der Pool ist klein genug, dass Fragen funktioniert. Die Protokollnotizen decken die Mining-Seite ab, und was diese Kette ist den Rest.
Häufige Fragen
Braucht die B2Pool-API einen Schlüssel?
Nein. Jeder Endpunkt unter /api/v1/public ist nur lesend und offen, ohne Schlüssel, ohne Registrierung und ohne CORS-Beschränkung. Die Grenze liegt bei 5 Anfragen je Sekunde und Adresse mit einer Spitze von 20; darüber antwortet er mit 429.
Welche Adresse sollte ein Pool-Tracker benutzen?
https://b2pool.io/api/v1/public — ein Aufruf, der beide Pools mit Hashrate, Gebühr, Auszahlmodell, Blockzahlen sowie Schwierigkeit und Subvention der Kette liefert. Clients, die schon Miningcore sprechen, können stattdessen https://b2pool.io/api/pools nehmen, das dieselbe Poolliste auf dem erwarteten Pfad liefert.
Wie hoch ist die Blockbelohnung auf BTCB2?
Die Subvention folgt demselben Plan wie Bitcoin: derzeit 3,125 BTCB2 je Block, Halbierung alle 210.000 Blöcke. Im Gemeinschaftspool wird nur diese Subvention unter den Minern aufgeteilt; die Transaktionsgebühren im Block bleiben beim Pool. Eine Ertragsrechnung sollte deshalb avgBlockReward verwenden — das, was Miner je Block tatsächlich bekommen haben — und nicht den ganzen Coinbase.
Wird BTCB2 mit SHA-256 gemint?
Nein. BTCB2 ist Bitcoin mit BLAKE2b-Arbeitsnachweis, die Hardfork aus BIP-110, wirksam ab Block 961.640. Deshalb sagt das Feld algorithm in der API blake2b. Hashrate für diese Kette wird unter Blake2B gemietet, mancherorts noch als Sia oder SC geführt.