232 / 736STALE%

Stale Rate

Когда результат майнинга относится к устаревшему заданию

Петра следит за своей майнинговой установкой. Она считает и расходует электричество, но пул помечает часть результатов как stale. Устройство неисправно или его работа просто пришла слишком поздно? Stale Rate помогает отслеживать такие ситуации. Но для понимания процента Петре нужно знать, что считает пул, за какой период и как оплачивает эту работу. Одно название ещё не показывает потерянный доход.

Stale Rate — доля результатов или взвешенной работы, признанных устаревшими. При майнинге Bitcoin через пул речь обычно идёт о shares: частичных подтверждениях вычислений, которые больше не соответствуют текущему заданию. Точное определение и влияние на вознаграждение зависят от измеряемой системы.

Пул — сервис, распределяющий работу между майнерами. Когда сеть находит новый блок, обычно нужно начать строить следующий на его основе. Результат прежнего задания уже не подходит для новой работы. Stratum V2, протокол связи майнинговых устройств, обрабатывает это сообщением SetNewPrevHash: устройство начинает искать блок, который продолжит цепочку после вновь указанного блока. Из подготовленных ранее заданий действительным остаётся только обозначенное идентификатором задания job_id. Поэтому Петра проверяет актуальность задания, а не только время отправки результата. [1]

В простом примере Петра отправляет 100 результатов одинаковой сложности. Пул принимает 98, отклоняет 1 как stale и 1 по другой причине. Отклонённые stale-результаты составляют 1%, а все отклонения вместе — 2%. F2Pool называет rejection rate долю всех отклонённых отправлений среди всех поданных. В нашем примере stale — лишь часть этого показателя. Числа объясняют расчёт, а не допустимый рабочий порог; иная классификация может изменить смысл показаний. [2]

Сложность share определяет, насколько строгому условию должен соответствовать результат. Braiins учитывает результат сложности d как d базовых единиц работы. Представим одну stale share сложности 1 и одну принятую сложности 9. По числу отправлений получится 50%, по весу работы — 10%. Ни один расчёт сам по себе не ошибочен, но они отвечают на разные вопросы. При сравнении Петра поэтому использует одну единицу в числителе и знаменателе и проверяет одинаковый способ определения сложности. [3]

Документация F2Pool различает категорию Staled, приносящую вознаграждение, и отклонённые stale shares, за которые его не начисляют. Значит, одна пометка не говорит, потеряла ли Петра деньги. Эту политику нельзя переносить на каждый пул: важны условия конкретного сервиса и фактическое начисление. Сравнивая поставщиков, Петра сначала выясняет категорию результатов. Только после этого можно оценивать их влияние на доход. [2]

При чтении рабочего журнала легко упустить, что Stratum V2 может подтвердить несколько отправлений одним сообщением SubmitShares.Success. Поле new_submits_accepted_count указывает число только что подтверждённых отправлений, а new_shares_sum суммирует их сложности. Поэтому количество ответов сервера не равно числу принятых shares. При отклонении SubmitShares.Error содержит sequence_number, идентификатор отправления, и error_code, причину ошибки. Без этого различия Петра могла бы принять любую ошибку за запоздалую работу. [1]

Новость о новом блоке сначала должна пройти между компьютерами, проверяющими Bitcoin. BIP152 описывает Compact Block Relay — передачу блоков с меньшим объёмом данных между узлами сети P2P, то есть напрямую соединёнными участниками. Меньший объём может сократить задержку передачи. Но это распространение блоков, а не учёт shares в пуле. Доля блоков, оставшихся вне основной цепочки, поэтому не измеряет запоздалые результаты установки Петры. [4]

Braiins предоставляет статистику работы за разные периоды: shares_5m (за последние 5 минут), shares_60m (за последние 60 минут) и shares_24h (за последние 24 часа). Петра не может делить запоздалые результаты короткого промежутка на работу за весь день и сравнивать это с часовой статистикой другого устройства. Обе части расчёта должны охватывать один период и одни устройства. Если отправлений не наблюдалось, доля не определена; это не измеренная потеря 0%. Пробел в мониторинге или отсутствующий ответ также сами по себе не доказывают, что результат был stale. [5]

Петра начинает со смены заданий, причин отклонения и состояния соединения за тот же период. F2Pool связывает результаты stale с условиями сети. Другие отклонения могут возникать из-за ошибок прошивки — программного обеспечения, которое управляет устройством, — или чрезмерного разгона. При разгоне повышают рабочую частоту чипов, пытаясь выполнять больше вычислений. Braiins рекомендует ping — простую проверку того, отвечает ли сервер на сетевые запросы. Успешный ответ не подтверждает правильности майнинга или начисления вознаграждения. Более низкий общий процент сам по себе не доказывает устранения причины. Задача — понять, что изменилось, и отслеживать конкретную ошибку в сопоставимых условиях. [2] [6]

Для полной картины прочитайте эту статью вместе с Mining Share, Share Difficulty, Mining Latency, Pool Fee, Bitcoin. На эту статью также ссылаются Stale Block, Mining Latency.

DOC · 001Stratum V2 — Mining ProtocolСпецификация DOC · 002F2Pool — Rejection and Staled ratesДокументация DOC · 003Braiins — Share difficulty accountingДокументация DOC · 004BIP152 — Compact Block RelayСпецификация DOC · 005Braiins — Worker monitoring windowsДокументация DOC · 006Braiins — Connection diagnosticsДокументация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией