что такое reject в майнинге
О базовых понятиях (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) из-за наличия ошибок:
Наличие режектов является серьезной проблемой, которую нужно решать в самые короткие сроки, так как оборудование майнера работает, потребляет энергию, а результат даже не нулевой, а отрицательный из-за необходимости оплачивать электроэнергию, услуги связи и амортизационные расходы.
Скорость майнинга, принятая, отклоненная скорость и шары
Здесь мы объясним, как работает майнинг, как работает NiceHash, как вы получаете оплату и как вы можете проверить, полностью ли оптимизирована ваша система для майнинга и работает ли она максимально надежно, и самое важное — как читать графики NiceHash. Это также быстро научит вас, как оценивать другие майнеры и сравнивать их с NiceHash QuickMiner.
Майнинг криптовалют на NiceHash (очень упрощенная версия)
Майнинг криптовалют — это ничто иное, как выполнение вычислений значений хэшей — это односторонняя математическая функция, вычисляющая выход Xa из входа Ia. К каждому входу Ia также добавлено особое число, состоящее из двух частей: Ns (nonce-сервер) и Nm (nonce-майнер). Ваш майнер получает job (задание) с сервера NiceHash, содержащее Ia и Ns. Ваш майнер выбирает (обычно просто выполняя итерацию ++1) Nm для каждого вычисления, а затем вычисляет выход в соответствии со следующей формулой:
Xa = HASH(Ia + Ns + Nm)
Xa — это очень большое число. Если это число ниже чем Ta (target (цель) — также предоставлено в задании), ваш майнер находит шару, а соответствующий Nm отправляется на NiceHash, как proof-of-work (доказательство о выполнении работы). Это доказывает, что ваш майнер на самом деле выполнил работу для нахождения подходящего nonce. Поскольку ХЭШ — это односторонняя функция, для майнеров нет другого варианта, кроме многочисленных проб nonce. Майнинг со скоростью 60 MH/s означает, что ваш майнер пробует 60 миллионов nonce в секунду и выполняет 60 миллионов вычислений ХЭШ в секунду.
Когда вашему майнеру повезет найти подходящий nonce Nm, он запаковывает его вместе с идентификатором задания и отправляет их на сервер NiceHash в виде шары. Затем NiceHash может:
Принятые шары
Найденный вами nonce — правильный (без ошибок в вычислениях), и шара поступила на сервер вовремя (не слишком поздно). Обычно вы можете заметить принятые шары, когда консольное окно майнера сообщает вам об этом, например:
net | daggerhashimoto | Share #114 accepted (31 ms)
Вы получаете определенное фиксированное количество BTC за эту шару. Количество BTC, которым оценивается шара, зависит от двух факторов:
NiceHash регулирует Da (сложность) динамически, в соответствии со скоростью вашего майнера:
Поэтому имеет значение не то, сколько шар находит ваш майнер, а то, насколько ценными являются найденные шары. Это значение может быть представлено с помощью двухмерного графика принятой скорости.
У нас есть 6 ригов со следующими скоростями майнеров: 587 MH/s, 409 MH/s, 261 MH/s, 215 MH/s, 214 MH/s and 121 MH/s. Общая скорость всех ригов — 1807 MH/s.
Когда мы проверяем среднюю скорость за длительный период времени (как минимум несколько часов для нескольких/крупных ригов и несколько дней для небольших/одиночных ригов), скорость должна совпадать с общей скорость рига, как видно на графике ниже. Общая принятая скорость на графике ниже, потому что нам нужно учитывать 1.14 % отклонений. В случае со скоростью
1800 MH/s это 20 MH/s. Когда мы вычтем 20 MH/s из нашей общей скорости рига 1807 MH/s, мы получим 1787 MH/s. Наш график показывает 1791 MH/s, что на 4 MH/s выше — это можно отнести к удаче на протяжении этого периода времени. Это также говорит нам, что выбранный майнер сообщает о скорости майнинга честно и верно.
ВАЖНО! Принятая скорость на NiceHash — самый важный график. Он говорит вам о том, какая фактическая производительность вашего майнера. Если ваш график показывает намного меньшие значения по сравнению с тем, что ваш майнер показывает в консоли, вас обманывают! Хорошо известно, что некоторые майнеры с комиссией разработчику искусственно раздувают значения скорости в консоли, чтобы привлечь больше пользователей, и в большинстве случаев они не вычитают скорость, которая уходит разработчику. Таким образом у вас может сложиться впечатление, что производительность вашего майнера отличная, скорость высокая, но на NiceHash график принятой скорости будет говорить о другом. Значение имеет не то, какую скорость сообщает ваш майнер, а то, что вы видите на графике принятой скорости на NiceHash — вы получаете оплату непосредственно в соответствии с этим!
Менеджер ригов NiceHash отображает:
Локальная прибыльность — это скорость, сообщаемая вашими майнерами, умноженная на текущую прибыльность. Она более стабильна, но может быть ошибочной, если майнер искусственно раздувает значения скорости.
Фактическая прибыльность рассчитывается путем умножения принятой скорости на текущую прибыльность. Вот почему она называется фактической — такую оплату вы фактически получаете.
Отклоненные шары — шара выше цели — share above target
Когда вы получаете этот тип отклоненных шар, это означает, что ваш майнер предоставил неверные вычисления и, как следствие, неверный результат. Обычно это происходит, если вы слишком сильно разгоняете VRAM — память больше не стабильна и происходят ошибки. Конечно, вы не получаете оплату за отклонения любого типа. У вас не должно быть много отклонений этого типа (возможно, периодически одна-две шары). В менеджере ригов вы можете отключить отображение всех других шар и проверить только средний процент отклоненных шар типа target.
В нашем примере у нас было всего несколько отклоненных шар типа target, поэтому на графике только два выступа, а средний процент так низок, что при округлении до двух десятичных знаков он показывает 0.00%. Это говорит о том, что наши риги настроены правильно.
Отклоненные шары — задание не найдено (устаревшие) — job not found (stale)
Этот тип отклонений неизбежен. Он зависит от многих факторов, включая латентность вашей сети к выбранному серверу NiceHash. Вот почему важно выбирать сервер с низшей латентностью, как описано здесь. Он также зависит от выбранного вами программного обеспечения для майнинга. Программное обеспечение, отправляющее старые шары для неверных заданий, будет генерировать устаревшие шары. Майнерам важно быстро переключаться и начинать работать над новым заданием, когда старые задания устарели. Excavator выполняет это задание за приблизительно 1-2 миллисекунды при использовании современных процессоров.
Но почему задания все же устаревают? Ваш майнер выполняет работу для блокчейна — новый блок появляется каждые несколько минут или секунд. Когда это происходит, предыдущее задание устаревает и больше не может быть использовано. В Excavator, когда у задания есть суффикс (clean), все предыдущие задания устаревают.
И в чем смысл шар? Шара с экстремально высокой сложностью, которая выше, чем сложность сети блокчейна, — это решение, создающее новый блок на блокчейне.
Тише едешь, дальше будешь: почему не стоит гнаться за максимальным хешрейтом в майнинг-пуле
Когда речь заходит о покупке новой видеокарты или целой «фермы», многие майнеры в первую очередь ориентируются на производительность в MH/S (миллион хеш-сумм в секунду). Например, GTX 1070 с разгоном выдает 31-33 MH/S, и все обладатели видеокарт стараются выжать из них максимальные мегахеши.
О том, почему этот показатель — далеко не единственный, на который следует обращать внимание, о распределении пулами наград, а также о максимизации прибыли расскажет CEO 2Miners.com Михаил Королев.
Что такое PPLNS, PROP и PPS? Системы распределения наград на пуле
Для начала, давайте поймем, как майнеры получают свою награду, ведь есть несколько вариантов выплаты вознаграждения пулом. Все варианты основаны не на мощности ваших видеокарт в MH/S (любых решений, которые генерирует ваши видеокарты), а на количестве шар, которые вы послали (правильных решений, удовлетворяющих условиям пула).
PPS (Pay per Share): самый простой способ распределения награды, оплата за каждую посланную шару. Пул решает, что ему интересно покупать у вас одну шару за 1 цент, и дальше просто выплачивает вам по одному центу за каждую посланную шару.
PROP (Proportional): оплата пропорционально вложенным шарам. Предположим, пять ферм трудятся на пуле и посылают шары: фермы № 1, 2 и 3 послали 10 шар, ферма № 4 — 20, а ферма № 5 — 100. После нахождения блока вознаграждение будет разделено между участниками согласно количеству шар, которые они послали на пул.
PPLNS (Pay Per Last N Shares): аналогично PROP-майнеры участвуют в распределении награды на основе вложенных усилий (шар). Отличие PPLNS от PROP в том, что в PPLNS есть защита от так называемых «пул-хопперов» — это такие недобросовестные майнеры, которые бегают по пулам с оплатой PROP, отправляют шары и уходят, ведь им при нахождении блока что-то точно достанется. Так вот, PPLNS считает не все шары, которые были посланы майнерами, пока пул искал блок, а последние N шар. Например, на 2Miners.ru в пуле Ethereum для расчета награды берутся только последние 3000 шар, посланных майнерами. Получается, что если один из пользователей прислал 1500 из 3000 последних шар, то он получит 50% прибыли от найденного блока.
В пуле монеты Zcash для расчета вознаграждений по системе PPLNS берутся последние 20 тысяч шар. В мире майнинг-пулов принято считать, что 1-3 тысячи шар для PPLNS-пулов с алгоритмом Dagger-Hashimoto и 10-30 тысяч шар для PPLNS-пулов с алгоритмом Equihash являются «золотым стандартом» настроек.
Производительность видеокарт в MH/S
Наверное, вы заметили, что все методы распределения вознаграждения майнерам — PPLNS, PROP и PPS — не зависят напрямую от MH/S. Это ключевой момент. Настраивая оборудование для майнинга, вам стоит позаботится о его стабильности. Если ферма будет выдавать «плохие» (reject) или «опоздавшие» шары (stale), вы не получите свой кусок «пирога» при распределении наград на пуле. Еще хуже, если в погоне за красивыми показателями MH/S ваша ферма будет зависать или перезагружаться от чрезмерного разгона видеокарт.
Как показывает практика, лучше дать картам возможность работать на скорости 31MH/S с аптаймом фермы 10-20 дней, чем разгонять до 33MH/S и иметь проблемы со стабильностью.
Ведь стабильная работа — залог большей прибыли. Кстати, на пулах с расширенной статистикой всегда можно посмотреть текущую долю решений и вознаграждение, которое вы получите, если блок будет найден в данный момент. Помните, что если вы отключитесь от пула на системе выплат PPLNS, то вашу долю быстро отберут другие майнеры.
Как настроить видеокарты для получения максимальной прибыли?
Пул понятия не имеет, сколько MH/S у ваших видеокарт. Вместо этого он анализирует количество присланных вами шар (верных решений) и на основе этих данных рисует красивые графики хешрейта.
Кстати, есть пулы, которые получают и заносят в график так называемый Reported Hashrate вашей программы, то есть значение хешрейта, которое пулу передает майнер. Запомните: вам платят не за эти графики, а исключительно за реальный хешрейт.
Очень хорошо это видно на примере ethermine.org — данный пул показывает как Reported Hashrate, так и реальный хешрейт майнера, вычисленный на основе отправленных ими шар.
Наш совет прост: добейтесь максимально долгой работы ваших ферм без зависаний и перезагрузок. Если нужно, постепенно уменьшайте разгон — цифры MH/S будут меньше, зато эффект от безотказной работы вы ощутите своим карманом.
Подписывайтесь на новости ForkLog в Telegram: ForkLog Live — вся лента новостей, ForkLog — самые важные новости и опросы.
Что из себя представляют принятые и отклоненные шары?
В этом посте мы поговорим о шарах в майнинге. Чтобы быть точными, мы объясним что из себя представляют принятые и отклоненные шары и какое соотношение между ними хорошее.
Что такое шары?
Шара — это результат процесса майнинга. Этот результат отправляется от майнера на пул и способствует поиску нового блока на блокчейне (в процессе подтверждая транзакции).
Вы можете представить шару как математическую задачу, решаемую с помощью случайного числа. Майнер пробует много разных случайных чисел, пока решение не будет правильным. Чем больше случайных чисел может попробовать майнер за выделенное время, тем больше вероятность правильного решения математической задачи.
Майнеры решают математические задачи и отправляют решения обратно на пул. Если они решают задачу верно, они получают награду за блок.
Что такое принятые шары?
Как говорит название, принятые шары — это шары, которые были решены верно и вовремя. На NiceHash вы получаете оплату за каждую успешно принятую шару, которая была отправлена на наш stratum-сервер.
Что такое отклоненные шары?
Отклоненные шары — это термин для всех шар, которые отклоняются по любой из причин ниже:
Наиболее часто встречающиеся отклоненные шары — это ‘шары выше цели’ и ‘устаревшие шары’.
Что такое хорошее соотношение принято/отклонено?
Вы должны стремиться к 100% принятых шар и 0% отклоненных шар. В долгосрочной перспективе это практически невозможно, поскольку между майнером и stratum-сервером NiceHash всегда будет латентность.
Из всех типов отклонений допускаются только устаревшие шары (до 1%-2%, в зависимости от алгоритма). Любые другие отклоненные шары возникают в результате неправильной конфигурации системы и могут быть потенциально устранены.
Как устранить шары выше цели (неверные шары)?
Шары выше цели в основном появляются из-за нестабильного разгона. Чтобы решить эту проблему, снизьте настройки разгона в предназначенной для этого программе. Чтобы узнать больше об оверклокинге и андерклокинге, прочитайте эту статью.
Как устранить устаревшие шары?
Устаревшие шары в основном появляются из-за высокой латентности между вашим ригом и stratum-сервером NiceHash. Нормальная латентность между майнером и NiceHash должна быть в районе 10-100 мс (чем меньше, тем лучше).
Устаревшие шары могут возникнуть в результате использования VPN или медленного интернет-соединения. Попробуйте отключиться от VPN или использовать более быстрое интернет-соединение.
Обратите внимание, что некоторые алгоритмы с быстрым изменением работы склонны к высокой латентности больше других.