Что такое accept в майнинге
Что из себя представляют принятые и отклоненные шары?
В этом посте мы поговорим о шарах в майнинге. Чтобы быть точными, мы объясним что из себя представляют принятые и отклоненные шары и какое соотношение между ними хорошее.
Что такое шары?
Шара — это результат процесса майнинга. Этот результат отправляется от майнера на пул и способствует поиску нового блока на блокчейне (в процессе подтверждая транзакции).
Вы можете представить шару как математическую задачу, решаемую с помощью случайного числа. Майнер пробует много разных случайных чисел, пока решение не будет правильным. Чем больше случайных чисел может попробовать майнер за выделенное время, тем больше вероятность правильного решения математической задачи.
Майнеры решают математические задачи и отправляют решения обратно на пул. Если они решают задачу верно, они получают награду за блок.
Что такое принятые шары?
Как говорит название, принятые шары — это шары, которые были решены верно и вовремя. На NiceHash вы получаете оплату за каждую успешно принятую шару, которая была отправлена на наш stratum-сервер.
Что такое отклоненные шары?
Отклоненные шары — это термин для всех шар, которые отклоняются по любой из причин ниже:
Наиболее часто встречающиеся отклоненные шары — это ‘шары выше цели’ и ‘устаревшие шары’.
Что такое хорошее соотношение принято/отклонено?
Вы должны стремиться к 100% принятых шар и 0% отклоненных шар. В долгосрочной перспективе это практически невозможно, поскольку между майнером и stratum-сервером NiceHash всегда будет латентность.
Из всех типов отклонений допускаются только устаревшие шары (до 1%-2%, в зависимости от алгоритма). Любые другие отклоненные шары возникают в результате неправильной конфигурации системы и могут быть потенциально устранены.
Как устранить шары выше цели (неверные шары)?
Шары выше цели в основном появляются из-за нестабильного разгона. Чтобы решить эту проблему, снизьте настройки разгона в предназначенной для этого программе. Чтобы узнать больше об оверклокинге и андерклокинге, прочитайте эту статью.
Как устранить устаревшие шары?
Устаревшие шары в основном появляются из-за высокой латентности между вашим ригом и stratum-сервером NiceHash. Нормальная латентность между майнером и NiceHash должна быть в районе 10-100 мс (чем меньше, тем лучше).
Устаревшие шары могут возникнуть в результате использования VPN или медленного интернет-соединения. Попробуйте отключиться от VPN или использовать более быстрое интернет-соединение.
Обратите внимание, что некоторые алгоритмы с быстрым изменением работы склонны к высокой латентности больше других.
Что такое Stale Shares для майнеров
«Тише едешь, дальше будешь», или: «Что такое Stale Shares?».
Дословный перевод звучит как «запоздалая шара», который является рабочим сленгом как для опытных, так и не для опытных майнеров.
Чтобы понять суть, укажем, что Stale Shares — это такая шара, которая пришла слишком поздно от участника системы, когда соответствующий блок был кем-то подписан.
Содержание:
Признаки появления запоздалых шар
В системе пула может быть такое, система не отправляет команду «отбой» или рабочая клиент-программа, по каким-то причинам, не понимает действие возникновения причины, то есть, не понимает команду «отбой» и тогда примерно 0,5-1,5% шар будут признаны устаревшими.
Сам принцип отбоя реализован через программу long polling.
Иногда большое количество устаревших шар в сети, например ethermine stale shares, если параметры мощности пула очень высокие, а ваш пинг ниже средних показателей.
В ряде случаев проблема может заключаться в других причинах, например, ваша ферма фризит.
Читайте также:
Как можно решить проблему
Наибольший процент возникновения устаревших шар среди майнеров, занимает ненадлежащее обеспечение соединения контактов оборудования для майнинг-фермы.
В большинстве случаев, Stale Shares не воспринимается системой как ошибка, просто компьютер не успевает вовремя передать шару в пул.
Естественно, появление устаревших шар в конечном итоге оказывает влияние на «фонд оплаты майнеров».
Наш совет таков, чтобы не возникало появления устаревших шар, добейтесь долгой и максимально безупречной работы ваших конструкционных частей ферм без зависаний, а также нужно снизить появления возможных перегрузок.
Если требуется, то уменьшайте показатели разгона, в частности цифры для MH/S. Пусть показатели будут меньше для разгона, зато вы добьётесь бесперебойной работы вашей аппаратуры, и тогда не будете знать проблем с появлением запоздалых шар.
Самое худшее для опытного майнера, это погоня за хорошими показателями MH/S, в результате чего страдает техническая база фермы, а, следовательно, вы теряете свои заработанные деньги.
О базовых понятиях (hash, share, reject) в майнинге
При майнинге криптовалют используются технологии, связанные с криптографией, функционированием компьютерного оборудования и каналов связи. Человеку, не занимавшемуся ранее изучением криптографии, техники связи и компьютерных технологий, сложно понять значение некоторых терминов, широко использующихся в сленге «криптовалютчиков» и майнеров.
В связи с этим стоит разобраться со значением ряда терминов, использующихся в ходе этой деятельности.
Почему в майнинге используются термины, взятые из криптографии?
Основным предназначением криптовалют является использование в качестве удобного, безопасного платежного средства, работающего в недоверенной среде без посредников.
Важность платежей такого рода неуклонно растет параллельно с цифровизацией всех сфер деятельности человеческого общества, распространением во всех уголках земного шара скоростного интернета и широкой доступностью смартфонов.
Наиболее удачной попыткой создания защищенного и удобного для использования цифрового актива стал биткоин. Он был создан в 2009 году автором, скрывающимся под псевдонимом Сатоши Накамото (или коллективом авторов, возможно, спецслужбами) был создан биткоин.
При его создании использовались существующие наработки в области криптографических вычислений, компьютерных сетей и телекоммуникации, а также были разработаны новые уникальные технологии, например, блокчейн.
Создание биткоина и других криптовалют имеет огромное значение, простирающееся не только на финансовую сферу.
Необходимость использования криптографии в криптовалютной сфере обусловлена тем, что именно эта наука занимается вопросами обеспечения конфиденциальности (защиты от посторонних), аутентификации (проверки подлинности), целостности и шифрованием информации. Обеспечение должного уровня этих составляющих является одним из главных требований к любому цифровому активу.
Майнерами, добывающими биткоины или другие криптовалюты, работающие на алгоритме консенсуса PoW, производится поиск решений, соответствующих криптографическому алгоритму, заложенному в основу функционирования блокчейна добываемой ими монеты.
Графическая иллюстрация работы, которую производят майнеры при проведении вычислений для криптовалюты биткоин:
Кроме алгоритма PoW, существуют и другие виды консенсуса, каждый из которых имеет свои преимущества и недостатки.
Преимущества и недостатки некоторых алгоритмов консенсуса (PoW, PoS, PoET. BFT, Federated BFT):
Блокчейн представляет собой глобальный реестр, содержащий информацию об отдельных блоках, из которых он состоит:
Каждый блок обязательно содержит следующую информацию: номер блока, хеш предыдущего блока и подпись, защищенную от подделки/взлома криптографическим способом (новый хеш):
Кроме того, в блоке может хранится и другая информация, например, отметки времени, одноразовый код (number used once или nonce) и т.д:
В показанном в качестве примера случае хеш выполняет функцию уникального идентификатора блока, содержащего информацию о трех транзакциях.
Пример 64-символьного хеша блока в сети биткоина:
Совокупность блоков представляет собой реестр, который хранится на большом количестве компьютеров, находящихся во множестве уголков земного шара (образуется глобально распределенный реестр, в котором хранятся одинаковые данные). Каждый блок связан с соседним криптографической подписью (хешем), поэтому изменить (подменить, исказить) информацию, хранящуюся в таком реестре невозможно без переписывания всех блоков, следующих за измененным:
Реестр данных (блокчейн) большинства криптовалют открыт, поэтому любой желающий может найти информацию о любой транзакции за все время его существования. Это обеспечивает прозрачность и необратимость проведенных транзакций.
Выполнение сложных криптографических вычислений продиктовано необходимостью обеспечить максимальный уровень безопасности в недоверенной среде, каковой является интернет.
Что делают майнеры при проведении криптографических вычислений?
Использование криптографических функций обеспечивает уникальность и защищённость от взлома полученных в результате проведения вычислений результатов.
При проведении вычислений майнерами производится математическая обработка исходных данных (их майнер получает от пула или от других узлов сети) в соответствии с заданной криптографической хеш-функцией (она задана в коде программы-майнера) — хеширование:
Обычно при майнинге поиск решений состоит в переборе разных числовых значений с проверкой на соответствие заданному условию. В качестве исходных данных обычно берется заголовок предыдущего найденного блока, данные о транзакциях, которые будут включены в блок и другая информация. Полученные в результате вычислений решения называются хешами.
Хеши уже давно используются в компьютерной сфере. Например, для создания и проверки контрольной суммы файлов, программ, архивов используется хеширование по алгоритмам MD5, SHA256 или SHA512/ SHA1 (подробнее в статье «Как проверить контрольную сумму файла и почему это нужно делать»).
Найденные майнером хеши (решения) приводятся к виду, определенному стандартами конкретной криптовалюты, например, преобразуются в строки определенной длины. Полученный результат отправляется в сеть, где проверяется узлами на предмет соответствия заданным условиям, в том числе необходимому уровню сложности. Когда определенное число узлов подтвердит правильность блока, подписанного найденным майнером хешем, он записывается в реестр (включается в блокчейн). За это майнер получает вознаграждение, которое выплачивается за счет сгенерированных при создании блока монет.
Прохождение транзакции в сети PoW-криптовалюты требует участия майнеров и узлов сети-валидаторов:
Так как сложность проведения вычислений и связанная с этим вероятность нахождения правильного блока очень мала, при майнинге используется объединение мощностей с помощью пулов.
Пулы распределяют между множеством майнеров работу по нахождению решений, соответствующих сложности майнинга нужной криптовалюты. Майнеры производят поиск нужных хешей и отправляют их на пул. Каждая выполненная и отправленная майнерами на пул работа называется шарой (от английского share). Шара теоретически может стать новым блоком. Для этого она должна отвечать ряду требований, включая соответствие выбранному алгоритму майнинга, текущей сложности и своевременности.
О связи заработка майнеров с найденными в ходе вычислений решениями
Чем больше правильных шар находит майнер, тем больше доля его участия в работе пула, соответственно больше получаемая им часть награды от найденного блока.
Так как после нахождения майнером верного решения и его получением на пуле проходит некоторое время, случается, что share приходит на пул уже после того, как найден блок. Такое решение называют запоздалым (stale share). Хотя это и верное решение, оно уже никому не нужно. После нахождения блока в сети начинается поиск решений с другими условиями, поэтому запоздалая шара в большинстве случаев не оплачивается.
Статистика, отображающая количество найденных решений на пуле ezil при дуал-майнинг ETC+ZIL:
Для уменьшения количества таких случаев нужно уменьшать время задержек канала связи, чаще уточнять условия выполнения вычислений для майнинга (подробнее в статье «Как уменьшить количество stale shares при майнинге»).
Если по каким-либо причинам (сбои в работе компьютера, битая память, переразгон, недостатки в исходном коде майнера, неверно выбранный алгоритм и т.д.) майнер находит хеш, который не проходит проверку узлами сети (пулом), то решение отклоняется, его называют реджектом (от английского слова reject). Пулы совместного майнинга при наличии большого числа неверных решений (invalides) со стороны майнера обычно отключают с ним связь.
Отключение связи со стороны пула (zergpool) при майнинге монеты Luxcore (LUX) из-за наличия ошибок:
Наличие режектов является серьезной проблемой, которую нужно решать в самые короткие сроки, так как оборудование майнера работает, потребляет энергию, а результат даже не нулевой, а отрицательный из-за необходимости оплачивать электроэнергию, услуги связи и амортизационные расходы.
Ping влияет на доходность майнинга Ethereum — правда ли это?
Поговорим о пинге (по-английски ping или latency), и о том, как он влияет на доход майнеров Эфириума. Также разберём важный вопрос про Uncle-блоки, и как их количество на пуле влияет на доход майнеров. Всё это — на примере пула 2Miners.
Многие майнеры начинают сравнивать майнинг-пулы по величине пинга. Они смотрят в свою программу-майнер и видят там информацию о скорости отправки шар на пул. Допустим, это 50ms (миллисекунд) на одном пуле и 150ms на другом. Затем делают вывод, что первый пул явно лучше второго. Правильно ли они поступают? Разбираемся.
Что такое шара на пуле?
Ша́ра — это единица работы майнера на пуле.
Процесс взаимодействия майнера и пула очень прост. Пул отправляет майнеру работу, то есть говорит ему, какую задачу решать и что делать. Майнер отправляет на пул ша́ры, то есть решения (от английского слова «share» — доля).
На скриншоте ниже показано окно программы-майнера, в котором отмечены моменты отправки шар на пул.
Что такое пинг на пуле?
Пинг на майнинг-пуле — время, за которое шара, отправленная майнером, дойдёт до пула, и будет обработана пулом.
Что значит «обработана»? Все просто — принята или отклонена. Пул проверяет все шары, которые к нему приходят, являются ли они правильными решениями или нет. То есть пул не может верить майнеру на слово.
Надо понимать, что команда PING (в windows или linux) — это то, как быстро вам ответил сервер. PING в окне майнера — это как быстро сервер майнинг-пула получил вашу шару, обработал её и сообщил вам, что всё хорошо. Поэтому в окне майнера пишут не PING, а время обработки шары (Share accepted time).
Интерфейс Stratum Ping Master
Нельзя ориентироваться на пинг при выборе пула
Майнер подключился к пулу и начинает отправлять на него шары. Видит, что шары принимаются за 50 мс (пинг 50 мс). Потом майнер подключился к другому пулу и видит, что шары принимаются за 150 мс. Пойду на первый — решил он. Там лучше.
Это в корне неверно, так поступать нельзя!. При выборе пула вместо пинга надо смотреть на статистику стейл-шар. Разумеется, надо смотреть и на другие факторы, такие как MEV-вознаграждение и как оно распределяется, комиссию пула, удобство использования и так далее.
Вернёмся к шарам. На пуле 2Miners есть подробная статистика для шар каждого майнера.
Благодаря существованию Uncle-блоков в сети Ethereum любая опоздавшая шара — пусть даже на 1000 мс или 2000 мс — может стать решением для блока. Да, за такой блок не дадут полное вознаграждение в 2 ETH или более. Зато могут дать 1.75 ETH как за Uncle.
Многие пулы неверно трактуют понятие stale-шар (опоздавших). Шара пришла через полсекунды после того, как пул начал рассылать новое задание — всё, для них она мусор. На 2Miners это не так. Мы бережно относимся к любым шарам и стараемся выжать максимум из них. Шара опоздала — не беда, возможно, получится сделать Uncle.
Когда вы начинаете майнить на пуле, смотрите статистику своих шар. Если у вас нет стейл-шар, значит пул вам отлично подходит. Нет никакой разницы, какой там у вас пинг.
Повторимся, разумеется, есть и другие факторы при выборе майнинг-пула: способ начисления вознаграждения, комиссия, MEV и так далее. В данном случае речь идёт только о пинге.
В доказательство нашей теории приведём вам простой пример.
Есть два одинаковых майнера по 500 MH/s каждый. У одного пинг до пула 50мс, а у другого — 500 мс.
Первый майнер отправил за час на пул 200 шар, все были приняты, ни одной стейл-шары.
Второй майнер отправил за час на пул 200 шар, все были приняты, ни одной стейл-шары.
Оба они получат одинаковое вознаграждение. Первый майнер не получил больше за то, что у него маленький пинг, а второй майнер не получит меньше из-за большого пинга.
Отличие Ethereum от других криптовалют. Uncle-блоки
Важным отличием Ethereum и других монет на алгоритме Ethash от всех других криптовалют является наличие так называемых Uncle-блоков. В сети Ethereum очень маленькое время блока: в среднем новые блоки появляются раз в 13 секунд. У большинства криптовалют оно выше, например, в сети Bitcoin новые блоки находят каждые 10 минут.
Как только кто-то нашёл новый блок, он должен быстро-быстро передать информацию о нем другим узлам — майнерам сети. В сети Ethereum часто примерно в одно и то же время разные майнинг-пулы находят новые блоки и конкурируют между собой.
Концепция uncle-блоков позволяет поощрять майнинг-пул, который нашёл решение блока чуть позже, чем другой пул. Может быть и такая ситуация, что два пула нашли новые блоки одновременно, но один пул связан с бóльшим количеством больших майнинг-пулов в сети, чем другой. В таком случае первый пул получит полное вознаграждение за блок, а второй пул вознаграждение за Uncle-блок.
На текущий момент вознаграждение за блок в сети ETH составляет чуть более 2 ETH в среднем, в то время как Uncle-блок стоит 1.75 ETH. Разница минимальна.
Награда за Uncle-блок в сети Эфириума
Много Uncle-блоков — плохо. Правда или миф?
Любой пул априори должен стараться поддерживать хорошую связь с другими узлами сети, для того чтобы быстро получать информацию о новых блоках, а также быстро передавать информацию о тех блоках, которые нашёл сам пул.
На пуле 2Miners мы очень тщательно следим за тем, чтобы пул был связан с максимальным количеством узлов по всему миру. Помимо этого, мы отдельно договариваемся с другими майнинг-пулами и связываем наши узлы сети напрямую. Это позволяет без задержек передавать и получать информацию о новых блоках.
Кстати, мы поддерживаем специальный сервис, который показывает статистику работы узлов сети разных майнинг-пулов — Ethereum Network Stats.
Когда вы слышите фразы типа “У этого пула много Uncle-блоков, потому что у него плохие серверы”, скорее всего это ложь. Мы убеждены, что хорошие майнинг-пулы из ТОП-10 наверняка в состоянии купить и настроить качественные серверы.
Однако количество Uncle-блоков может расти по независящем от пула причинам. Например, ранее, когда самый популярный пул в сети Ethereum — Sparkpool — находился в Китае, бывали ситуации, когда по причине Великого Китайского Файервола связь пулов Китая и европейских/американских пулов была нарушена. Задержки в передачи информации между пулами были большие, на пулах было много анклов.
Ниже приведен пример нормальной работы пула. Кстати, количество анклов и удачу пула всегда можно посмотреть на странице блоков.
Брать анклы или не брать?
Тут однозначный ответ “БРАТЬ!” И чем больше — тем лучше. Судите сами, один пул нашел 100 блоков и 5 анклов, а второй пул нашел 100 блоков и 10 анклов. Разница в вознаграждении составит более 3 процентов, представляете.
Вы меня окончательно запутали. Так анклы это хорошо или плохо?
Тут нельзя дать однозначный ответ — ДА или НЕТ.
Если анкл образовался из-за того, что нода пула плохо связана с другими узлами сети — плохо. Если анкл рассматривать как дополнительное вознаграждение, которого могло бы не быть — хорошо.
Бонус-раздел. Пустые блоки по 2 ETH без транзакций — это плохо, верно?
Мы с вами разобрались с тем, что большое количество Uncle-блоков совершенно не говорит о том, что пул плохой. Возможно, даже наоборот.
Давайте теперь рассмотрим ещё одно заблуждение, которое гласит что “пулы, которые майнят блоки по 2 ETH — г*вно”.
Расшифруем. Блоки по 2 ETH, это пустые блоки, в которых нет ни одной транзакции.
Пустой блок Эфириума без транзакций
Обратите внимание, что обычно блоки по 2 ETH образуются почти сразу после того, как был найден предыдущий блок. Для примера смотрите блок 11 789 558 на 2 ETH, а за секунду до него был блок 11 789 557. Смекаете, к чему мы ведём?
Из-за особенностей работы ноды Ethereum в первые 200-300 мс работы над новым блоком, она «создаёт пустые блоки». И никуда от этого не уйти. Иными словами, если пул только что нашёл новый блок или только что получил информацию о новом блоке из сети, в первые доли секунды блок «голый», пул не успевает «забить» блок транзакциями.
Опять же, если учесть, что ТОП-пулы в состоянии купить и правильно настроить серверы, блок на 2 ETH — нормальное явление. Ничего страшного в этом нет. Вот если пул получил информацию о новом блоке 10 секунд назад, а потом в блок не включил ни одной транзакции — это беда. Можно сказать, действительно, что пул плохой. Но, поверьте, такие случаи единичны.
Можно ли как-то решить эту проблему с нодой ETH на стороне пула? Можно. Можно поставить некий тайм-аут, задержку. Допустим, первые 500 мс после получения информации о новом блоке, держать майнеров в неведении и продолжать давать старую задачу. Результат будет такой — вместо пустого блока на 2 ETH пул может найти анкл на 1.75 ETH. Что лучше — 2 или 1.75? Конечно 2! Поэтому делать такую “заплатку” нет никакого смысла.
Ещё больше интересного ищите в нашем крипточате миллионеров. Там поговорим и на другие темы, связанные с блокчейном и децентрализацией. А если вы хотите лучше разбираться в майнинге, тогда вам в чат пула 2Miners.