Я пытаюсь понять, как протекает весь процесс. Вот как я сейчас понимаю, что это работает.
Клиент майнинга -> Сервер пула -> Bitcoind
getwork
:
- Клиент майнинга звонит
getwork
с сервера пула, а он, в свою очередь, звонитgetwork
(или что-то еще?) с Bitcoind.
stratum
:
- Клиент майнинга подключается к серверу пула, используя протокол stratum, а сервер пула вызывает
getwork
(или что-то еще?) из Bitcoind.
getblocktemplate
:
- Клиент майнинга звонит
getblocktemplate
, а сервер пула звонитgetblocktemplate
из Bitcoind.
И я понимаю, что сервер пула делает больше, чем просто ретранслирует информацию, но я хотел, чтобы это было просто. Я просто хочу получить представление о том, как все это сливается воедино и к чему это приводит.
Любая помощь приветствуется!
getwork
во всех смыслах полностью устарел из-за его неэффективности. На данный момент одно устройство ASIC может полностью завалить bitcoind
запросами, поскольку они могут исчерпать 32-битный одноразовый номер за доли секунды. Ситуация настолько серьезна, что такие пулы, как BTC Guild, взимают чрезвычайно большие (6%+) комиссионные с клиентов getwork
, чтобы заставить их переключиться на более эффективные методы.
Внутри такие пулы, как Eloipool , используют getblocktemplate
для создания работы для клиентов, а затем используют stratum
или getblocktemplate
для связи с работниками в зависимости от типа запроса, который они делают. getwork
не участвует ни на одном этапе. На самом деле, в настоящее время его планируется полностью удалить в какой-то момент.
xil3
Eloipool
в значительной степени ретранслирует тот же самый getblocktemplate, который они получают от bitcoind?Анонимный
jsonrpc_getblocktemplate.py
, я бы сказал так.xil3