Чтобы хорошо усвоить материал, настоятельно рекомендуем прочитать статью “Что такое майнинг? Удача в майнинге”. А ещё лучшё — всю Криптобиблию, где собраны наши лучшие статьи о принципах работы криптовалют, майнинга и других смежных тем.
Майнинг пул Эфириума. Источник: 2Miners.com
Давайте обратимся к Эфириум-пулу 2Miners. Пул использует систему выплат PPLNS, а на главной майнинг-пула указана сложность шары — 8,6G. Похоже на обозначение сети мобильного интернета из далёкого будущего, но это не так. Начинаем.
Сложность шары. Источник: 2Miners.com
Что такое шары?
Шара — это результат процесса майнинга. Этот результат отправляется от майнера на пул и способствует поиску нового блока на блокчейне (в процессе подтверждая транзакции).
Вы можете представить шару как математическую задачу, решаемую с помощью случайного числа. Майнер пробует много разных случайных чисел, пока решение не будет правильным. Чем больше случайных чисел может попробовать майнер за выделенное время, тем больше вероятность правильного решения математической задачи.
Майнеры решают математические задачи и отправляют решения обратно на пул. Если они решают задачу верно, они получают награду за блок.
Что такое принятые шары?
Как говорит название, принятые шары — это шары, которые были решены верно и вовремя. На NiceHash вы получаете оплату за каждую успешно принятую шару, которая была отправлена на наш stratum-сервер.
Stale shares в майнинге: описание
Stale shares дословно переводится с английского как «запоздалая шара». Собственно, само определение уже очень хорошо описывает данное явление. Stale shares – это шары для блока XXX, которые присланы пулу уже после того, как блок XXX был найден. То есть, они являются запоздалыми решениями.
Чтобы лучше понять само явление приведем максимально простой и понятный пример. Допустим, что есть группа людей (майнеры), которым ведущий задает вопрос (поиск ответа – майнинг). Участники этой игры поочередно перебирают варианты, озвучивая ведущему, пока не будет найден верный ответ. Ответ уже был назван, но по какой-то причине кто-то из участников продолжает перебирать варианты — это и есть запоздалые шары или stale shares в майнинге.
Что такое отклоненные шары?
Отклоненные шары — это термин для всех шар, которые отклоняются по любой из причин ниже:
- Устаревшая шара (Stale share): Шара была прислана слишком поздно (возможно, из-за или высокого пинга или проблем с соединением). Это единственный тип шар, который допускается в небольших количествах и считается нормальным.
- Шара выше цели (Share above target): Проблема находится в вашем программном обеспечении для майнинга. Проверьте его и убедитесь, что оно настроено правильно. Возможно также, что программное обеспечение не совместимо с NiceHash.
- Дублирующаяся шара (Duplicated share): Шара была прислана более одного раза и указывает на ошибку в вашем программном обеспечении для майнинга или на несовместимость с NiceHash.
- Другое (Other): Любой другой тип отклонений обычно означает, что в вашем программном обеспечении ошибка.
Наиболее часто встречающиеся отклоненные шары — это ‘шары выше цели’ и ‘устаревшие шары’.
Что такое хорошее соотношение принято/отклонено?
Вы должны стремиться к 100% принятых шар и 0% отклоненных шар. В долгосрочной перспективе это практически невозможно, поскольку между майнером и stratum-сервером NiceHash всегда будет латентность.
Из всех типов отклонений допускаются только устаревшие шары (до 1%-2%, в зависимости от алгоритма). Любые другие отклоненные шары возникают в результате неправильной конфигурации системы и могут быть потенциально устранены.
Отличия шары от хеша
Система автоматически регулирует показатель сложности вычислений ключе подписи блоков, который затрудняет расчет хешей при увеличении общей мощности сети. Например, блоки биткоина должны закрываться каждые 10 минут. Если к сети присоединяется больше майнеров или они апгрейдят оборудование, скорость расчетов растет и время закрытия блока уменьшается. В ответ алгоритм повышает сложность расчетов и восстанавливает длительность закрытия блока.
Принимая хеши, алгоритм блокчейна оценивает трудоемкость вычислений и отсеивает ключи, сложность которых «хуже» заданной. Эти непринятые блокчейном хеши ресурс учитывает в качестве доказательства работы каждого майнера.
Блокчейн требует в качестве PoW валидный хеш, но для корректного учета производительности пулом этот показатель не подходит. Вероятность получения валидного ключа при соло-майнинге составляют примерно 1 хеш за полтора года непрерывных вычислений. Однако, участвуя в распределенных вычислениях, они вносят вклад в общее дело. Он зависит от и качества канала передачи данных (при нестабильном доступе к интернету ключи могут теряться, не достигая получателя). Пул ведет подсчет количества принятых шар от каждого майнера. Хорошие принимаются в качестве хешей, плохие служат мерилом работы.
Для этой цели ресурс устанавливает собственный критерий сложности, помогающий отобрать хорошие shares. Отличие хеша в том, что хеш соответствует требованиям блокчейна, а шара — требованиям пула.
Например, при сложности 1000 пул устанавливает собственную границу сложности для учета подходящих «частей». Например, 10. В таком случае все «претенденты в хеши», сложность которых ниже 1000 и выше 10, учитываются сайтом как shares. Если же участнику посчастливится «добыть» ключ со сложностью выше 1000, пул отправит его в блокчейн и получит за его публикацию вознаграждение.
Как устранить устаревшие шары?
Устаревшие шары в основном появляются из-за высокой латентности между вашим ригом и stratum-сервером NiceHash. Нормальная латентность между майнером и NiceHash должна быть в районе 10-100 мс (чем меньше, тем лучше).
Устаревшие шары могут возникнуть в результате использования VPN или медленного интернет-соединения. Попробуйте отключиться от VPN или использовать более быстрое интернет-соединение.
Обратите внимание, что некоторые алгоритмы с быстрым изменением работы склонны к высокой латентности больше других.
Шары и безопасность майнинга
Распространенный вопрос среди новичков — зачем майнеру отправлять валидную шару, подходящую для подписи блока данных, в пул. Ведь выгоднее отправить ее в блокчейн и получить вознаграждение самостоятельно.
Система работы пула организована так, что все шары несут в себе информацию о ресурсе, для которого они предназначены. Поэтому ресурс получит монеты независимо от того, будет ли направлен валидный ключ непосредственно от него или из другого источника. Шары без сведений о пуле попросту недействительны.
Самостоятельно «пересобрать» подпись майнеры не могут. Они не получают содержимого всего блока, к которому требуется рассчитать подпись. Для работы достаточно лишь заголовка с хешами фактического содержимого блока. То есть, воркер без пула не в состоянии собрать и отправить валидный хеш.
Единственный вред, который теоретически может нанести майнер — не отправлять найденный валидный ключ на ресурс. Такое действие наносит группе ущерб больший, чем одиночке. Теоретически, при наличии собственных вычислительных мощностей, такая атака может принести определенную выгоду. Она носит название «атака удерживания блока» и увеличивает шансы атакующего самостоятельно найти и представить хеш. Но такие систематические действия быстро вычисляются владельцами ресурса при анализе статистических данных. И пользу они могут принести лишь мощным противникам, а не мелким майнерам. Поэтому попытки применить такие атаки на практике крайне редки.
В результате шары лишь используются в качестве доказательства участия воркера в поиске ключей и служат для расчета итогового вознаграждения.
Проверка базы на валидность
Рассылка по ненадёжной базе — это бесполезная трата денег, риск оказаться в чёрных списках почтовиков, блокировка в ESP-платформах и просто испорченная репутация отправителя. Вам же всё это не нужно?
Чтобы проверить список контактов на валидность, используют валидаторы — специальные сервисы (например, mailvalidator.ru). Они проверяют почту в три этапа:
- синтаксис адреса и его формата;
- верификация домена и сервиса;
- подтверждение активности почтового ящика.
Вот так выглядит полная проверка адреса:
А так — экспресс-проверка базы:
Конечно, проверить базу можно и вручную, но это не самая эффективная история: так вы сможете поправить лишь очевидно плохие имейлы и удалить дубликаты. Поэтому лучше проверять базу автоматически в платформе рассылок или через специальные сервисы.
Превалидация и стандартизация базы
Чтобы в базу попадали только корректные адреса, можно подключить проверку данных на этапе заполнения формы. Превалидация позволяет снизить количество ошибок при заполнении формы или сразу исправить их.
По сути, это скрипт, который проверяет в режиме реального времени заполнение формы подписки. Он заранее отсеивает «неликвидную» информацию: подставлен ли знак @ (явно обязательная часть имейл-адреса) и правильно ли написан домен (gmail вместо gamil).
Есть ещё такое понятие, как стандартизация базы — отдельная проверка базы на соответствие стандартам и исправление возможных ошибок.
Пример: есть список правильного написания распространённых имён, и если человек ошибся при регистрации и написал «Алксей», скрипт проверит его имя, соотнесёт с базой, исправит на «Алексей» и занесёт его в базу платформы. Это позволит отправлять хорошие письма, даже если человек ошибся при вводе.
Нельзя ориентироваться на пинг при выборе пула
Майнер подключился к пулу и начинает отправлять на него шары. Видит, что шары принимаются за 50 мс (пинг 50 мс). Потом майнер подключился к другому пулу и видит, что шары принимаются за 150 мс. Пойду на первый — решил он. Там лучше.
Это в корне неверно, так поступать нельзя!. При выборе пула вместо пинга надо смотреть на статистику стейл-шар. Разумеется, надо смотреть и на другие факторы, такие как MEV-вознаграждение и как оно распределяется, комиссию пула, удобство использования и так далее.
Вернёмся к шарам. На пуле 2Miners есть подробная статистика для шар каждого майнера.
Благодаря существованию Uncle-блоков в сети Ethereum любая опоздавшая шара — пусть даже на 1000 мс или 2000 мс — может стать решением для блока. Да, за такой блок не дадут полное вознаграждение в 2 ETH или более. Зато могут дать 1.75 ETH как за Uncle.
Многие пулы неверно трактуют понятие stale-шар (опоздавших). Шара пришла через полсекунды после того, как пул начал рассылать новое задание — всё, для них она мусор. На 2Miners это не так. Мы бережно относимся к любым шарам и стараемся выжать максимум из них. Шара опоздала — не беда, возможно, получится сделать Uncle.
Когда вы начинаете майнить на пуле, смотрите статистику своих шар. Если у вас нет стейл-шар, значит пул вам отлично подходит. Нет никакой разницы, какой там у вас пинг.
Повторимся, разумеется, есть и другие факторы при выборе майнинг-пула: способ начисления вознаграждения, комиссия, MEV и так далее. В данном случае речь идёт только о пинге.
Много Uncle-блоков — плохо. Правда или миф?
Любой пул априори должен стараться поддерживать хорошую связь с другими узлами сети, для того чтобы быстро получать информацию о новых блоках, а также быстро передавать информацию о тех блоках, которые нашёл сам пул.
На пуле 2Miners мы очень тщательно следим за тем, чтобы пул был связан с максимальным количеством узлов по всему миру. Помимо этого, мы отдельно договариваемся с другими майнинг-пулами и связываем наши узлы сети напрямую. Это позволяет без задержек передавать и получать информацию о новых блоках.
Кстати, мы поддерживаем специальный сервис, который показывает статистику работы узлов сети разных майнинг-пулов — Ethereum Network Stats.
Когда вы слышите фразы типа “У этого пула много Uncle-блоков, потому что у него плохие серверы”, скорее всего это ложь. Мы убеждены, что хорошие майнинг-пулы из ТОП-10 наверняка в состоянии купить и настроить качественные серверы.
Однако количество Uncle-блоков может расти по независящем от пула причинам. Например, ранее, когда самый популярный пул в сети Ethereum — Sparkpool — находился в Китае, бывали ситуации, когда по причине Великого Китайского Файервола связь пулов Китая и европейских/американских пулов была нарушена. Задержки в передачи информации между пулами были большие, на пулах было много анклов.
Ниже приведен пример нормальной работы пула. Кстати, количество анклов и удачу пула всегда можно посмотреть на странице блоков.
Брать анклы или не брать?
Тут однозначный ответ “БРАТЬ!” И чем больше — тем лучше. Судите сами, один пул нашел 100 блоков и 5 анклов, а второй пул нашел 100 блоков и 10 анклов. Разница в вознаграждении составит более 3 процентов, представляете.
Вы меня окончательно запутали. Так анклы это хорошо или плохо?
Тут нельзя дать однозначный ответ — ДА или НЕТ.
Если анкл образовался из-за того, что нода пула плохо связана с другими узлами сети — плохо. Если анкл рассматривать как дополнительное вознаграждение, которого могло бы не быть — хорошо.