Связаться с нами
Приносим свои извинения, но эта страница еще не переведена на русский язык.
ПРОТОКОЛ МАЙНИНГА

Stratum V1

Stratum V1 Mining Protocol

a
b
c

Key facts

  • Представлен в 2012 году для решения некоторых проблем роста майнинговой индустрии.

  • Был эволюцией протокола getwork

  • Помог пулам для майнинга биткойнов обслуживать больше пользователей с более высоким хешрейтом

  • Впервые реализован на майнинг-пуле Bitcoin.cz, который теперь называется Slush Pool

В 2012 году Марек "Slush" Палатинус представил протокол stratum как эволюцию протокола getwork для майнинга биткойнов. Stratum V1 решил некоторые проблемы роста, которым проходил майнинг биткойнов, когда он впервые стал популярным.

Getwork Protocol Limitations

Раньше для майнинга биткойнов требовалось, чтобы майнеры подключались к самому протоколу и взаимодействовали с ним, используя полные узлы. 

Чтобы стандартизировать коммуникацию между майнерами и биткоин-протоколом, протокол с открытым исходным кодом «getwork» использовался как быстрое и простое решение для автономных майнеров, чтобы начать майнинг. Протокол getwork использовал HTTP как метод соединения с биткоин-протоколом. Однако HTTP обычно используется для веб-страниц, и он не был идеальным для координации одноранговых узлов для майнинга. Таким образом, по мере роста популярности майнинга стали очевидны многие недостатки. 

К 2012 году неэффективность сети выросла, так как майнинг претерпела радикальные изменения и сеть росла в геометрической прогрессии. Это потребовало значительного объема пропускной способности сети на стороне майнеров и практически невозможного объема пропускной способности на стороне серверов (т.е. пулов) для из-за увеличивающегося количества майнеров. 

На этом этапе было совершенно ясно, что протокол getwork не является масштабируемым решением. 

Popularizing Pooled Mining 

Примерно в конце 2010 года в майнинге произошел серьезный сдвиг, поскольку к сети присоединялось все больше и больше людей. При 10-минутном блоке тысячи майнеров соревнуются в поиске каждого блока, многие участники уже не получают достаточно надежного дохода, чтобы продолжать майнинг. 

Решение заключалось в объединении вычислительных ресурсов майнеров вместе, чтобы они могли находить блоки более последовательно и, следовательно, получать часть вознаграждения за блоки достаточно регулярно, чтобы иметь достаточно стабильный денежный поток. 

Однако ограничения протокола getwork стали еще более очевидными по мере роста популярности объединенного майнинга. Это привело к тому, что Марек «Slush» Палатинус, который создал Slush Pool в 2010 году, разработал протокол стратума (Stratum V1) для связи между майнерами и майнинг-пулами. 

Main Improvements with Stratum V1

Stratum V1 был стандартным протоколом, который использовался для объединенного майнинга в течение последних 7-8 лет, за это время общий хешрейт сети Биткойн увеличился с ~ 20 TH/s до 130 EH/s.

Излишне говорить, что это был бешеный успех. В конечном итоге широкое распространение и долгосрочное использование Stratum V1 связано с двумя основными улучшениями масштабируемости, которые он позволил:

Long-Polling

Для справки: https://slushpool.com/help/stratum-protocol/?c=btc 

С протоколом getwork майнеры постоянно отправляли запросы на Биткойн daemon (bitcoind) для майнинга. Когда начал развиваться пул-майнинг, это усложнило ситуацию, потому что теперь роль серверов - отправлять работу майнерам, перенеслась на пулы. Майнеры столкнулись с выбором между короткими интервалами запросов, чтобы минимизировать коэффициент устаревания, или длительными запросами с использованием отдельного подключения к серверам пула для минимизации сетевой нагрузки.

Лучшим решением был длительный запрос, но он создавал некоторые проблемы с балансировкой нагрузки в бэкэндах пула. Stratum V1 был построен таким образом, что вместо того, чтобы майнеры по существу запрашивали информацию у bitcoind через свой пул через HTTP, пулы могли управлять нагрузкой и транслировать сообщения майнерам в любое время без накладных расходов HTTP или обходных путей длительного запроса. Это было большим улучшением как для майнеров, так и для операторов пулов. 

Extranonce Rolling 

До введения extranonce rolling в Stratum V1 майнеры могли изменять только 2 поля в заголовке блока (nonce и ntime), которые они затем хешировали для поиска решения для блока. Как только у майнера заканчиваются новые возможные комбинации, ему нужно было запросить дополнительную работу из пула (или прямо из bitcoind), что было довольно неэффективно. 

Stratum V1 представил поле extranonce, чтобы расширить уникальные комбинации, которые майнеры могли повторять, когда им поручали некоторую работу. Перенеся эту способность создавать уникальные заголовки блоков в хэш из пула конечным майнерам, весь процесс объединенного майнинга стал намного более эффективным.

Other Benefits

Помимо этих значительных улучшений в технологии, еще одной причиной того, что Stratum V1 в конечном итоге стал таким успешным, было то, что он отправлял полезные данные JSON, которые были удобочитаемы и уже широко поддерживаются клиентами майнинга биткойнов. JSON сопровождался некоторыми накладными расходами (которые мы значительно сократили за счет перехода на двоичный код в Stratum V2), но в то время он хорошо отвечал потребностям отрасли. 

Criticisms of Stratum V1 

Stratum V1 был критикован за то, что изначально был разработан в секрете от общественности, поскольку не использовался формальный BIP для описания его реализации. Однако утверждалось, что Stratum V1 не связан с биткоин-протоколом или реализацией - скорее, это настраиваемое расширение для майнинга пула, которое не требует официального BIP.

Another source of controversy was that, while Stratum V1 was being developed, the community had spent months developing an open-source protocol called “getblocktemplate“ (BIP22) that would supersede the “getwork” protocol. With Stratum V1 being released near the same time, direct adoption for the getblocktemplate protocol suffered. However, it should be noted that the Stratum servers use a getblocktemplate mechanism under the surface, while simply adding a lot of other improvements around it. 

К сожалению, единственным существенным недостатком отказа от использования решения getblocktemplate было то, что майнеры потеряли возможность создавать свои собственные шаблоны блоков (т.е. выбирать, какие транзакции находятся в блоках, которые они добывают). Хотя это и не вредит экономическим стимулам майнинга, поскольку все майнеры заинтересованы в том, чтобы включать транзакции с самой высокой комиссией в свои блоки, это создает уязвимость в виде возможности того, что операторы пула будут скомпрометированы. Вот почему мы вновь предоставляем возможность майнерам создавать свои собственные блоки в Stratum V2.

Finally, there’s the matter of security. As Ruben Recabarren pointed out in his paper, Hardening Stratum, the Bitcoin Pool Mining Protocol, Stratum V1 is vulnerable to possible man-in-the-middle attacks. Although no significant cases of "hashrate hijacking" have been reported, it's possible that they can occur undetected, making it all the more critical that the Bitcoin mining industry moves on to a more secure protocol. Hashrate hijacking prevention is another key feature of Stratum V2.

Beyond Stratum V1

В конечном счете, Stratum V1 прекрасно справился со своей ролью в качестве протокола объединенного майнинга, используемого во всем мире. При этом есть возможности для улучшения, и именно поэтому мы (Ян Чапек и Павел Моравец) вместе с Мэттом Коралло представили Stratum V2.

"Протокол решает исторические технические проблемы и проблемы безопасности, он, как правило, намного более эффективен и позволяет использовать некоторые расширенные варианты использования, такие как выбор работы или более простое управление майнинговой фермой", - сказал Bitcoin Magazine со-генеральный директор Braiins Павел Моравец. "На самом деле это следовало сделать много лет назад".

Однако многое изменилось с тех пор, как в 2012 году был опубликован исходный протокол stratum. Сегодня одна машина для майнинга ASIC способна производить больший хешрейт, чем вся сеть Биткойн тогда (примерно 20 TH / s). Stratum V2 - это решение для непрерывного развития индустрии биткоин-майнинга.

Изучить СТРАТУМ V2