B2POOL подключение…

Один адрес — всё.

Публичный API только для чтения — для всех, кто перечисляет, строит графики или сравнивает этот пул. Без ключа, без регистрации, без ограничений по источнику. Форма — миningcore'овская, потому что парсер под неё уже есть у каждого сборщика данных о пулах: если вы когда-то писали адаптер под 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 секунд. Та же цель, что у Bitcoin.
paymentProcessingСхема, минимальная выплата и то, что её запускает.
totalBlocksНайдено блоков, рядом blocksLast24h, lastPoolBlockTime и lastPoolBlockHeight.
poolEffortРабота, сделанная в текущем раунде ÷ сложность сети. Больше 1 — не ошибка: значит, раунду пока не везёт.
portsКаждый порт с его стартовой сложностью, полом и протоколом. Майнер может переопределить стартовое значение через d=<число> в поле пароля stratum; пул округлит до ближайшей степени двойки и никогда не уйдёт ниже пола порта.
Сначала прочитайте это На общем пуле между майнерами делится только субсидия блока. Комиссии транзакций в блоке остаются пулу, а 1 % берётся из субсидии. Поэтому итог coinbase — не то, что зарабатывает майнер: avgBlockReward — вот что. На solo-пуле нашедший действительно забирает весь coinbase, субсидию и комиссии, за вычетом 1 %, — поэтому два пула отдают разные числа в одном и том же поле. Каждый объект пула сообщает об этом в sharedRevenue и blockRewardNote , чтобы вам не приходилось это запоминать.

Точки доступа

Всё под https://b2pool.io. Идентификаторы пулов — 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: *, так что браузер может читать его напрямую. Время — ISO 8601 в UTC. Суммы — BTCB2 с 8 знаками, кроме полей, имя которых оканчивается на 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.
Не включено
Детализация по майнерамВыплаты агрегируются по транзакции, а не по адресу, и разбивки по регионам нет. Ни то, ни другое не нужно, чтобы перечислить пул, а детали платежей и так лежат в цепочке для всех желающих.

Нашли ошибку в числах или нужно поле, которого здесь нет? Пул достаточно мал, чтобы вопрос работал. Заметки по протоколу покрывают сторону майнинга, а что это за цепочка — всё остальное.

Частые вопросы

Нужен ли ключ для API B2Pool?

Нет. Каждая точка под /api/v1/public открыта и работает только на чтение — без ключа, без регистрации и без ограничений CORS. Лимит — 5 запросов в секунду на адрес со всплеском 20; при превышении отвечает 429.

Какой адрес использовать трекеру пулов?

https://b2pool.io/api/v1/public — один вызов возвращает оба пула с хешрейтом, комиссией, схемой выплат, числом блоков, а также сложностью и субсидией цепочки. Клиенты, которые уже говорят на Miningcore, могут вместо этого использовать https://b2pool.io/api/pools: тот же список пулов по привычному им пути.

Какова награда за блок на BTCB2?

Субсидия идёт по тому же графику, что у Bitcoin: сейчас 3,125 BTCB2 за блок, халвинг каждые 210 000 блоков. На общем пуле между майнерами делится только эта субсидия; комиссии транзакций в блоке остаются пулу. Поэтому расчёт доходности должен опираться на avgBlockReward — то, что майнеры реально получили за блок, — а не на весь coinbase.

Майнится ли BTCB2 через SHA-256?

Нет. BTCB2 — это Bitcoin с доказательством работы BLAKE2b, хардфорк из BIP-110, вступивший в силу на блоке 961 640. Поэтому поле algorithm в API отдаёт blake2b. Хешрейт для этой цепочки арендуют под Blake2B, иногда он всё ещё значится как Sia или SC.