Майнинг реджект что это

О базовых понятиях (hash, share, reject) в майнинге

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

В связи с этим стоит разобраться со значением ряда терминов, использующихся в ходе этой деятельности.

Почему в майнинге используются термины, взятые из криптографии?

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

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

Наиболее удачной попыткой создания защищенного и удобного для использования цифрового актива стал биткоин. Он был создан в 2009 году автором, скрывающимся под псевдонимом Сатоши Накамото (или коллективом авторов, возможно, спецслужбами) был создан биткоин.

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

Создание биткоина и других криптовалют имеет огромное значение, простирающееся не только на финансовую сферу.

Необходимость использования криптографии в криптовалютной сфере обусловлена тем, что именно эта наука занимается вопросами обеспечения конфиденциальности (защиты от посторонних), аутентификации (проверки подлинности), целостности и шифрованием информации. Обеспечение должного уровня этих составляющих является одним из главных требований к любому цифровому активу.

Майнерами, добывающими биткоины или другие криптовалюты, работающие на алгоритме консенсуса PoW, производится поиск решений, соответствующих криптографическому алгоритму, заложенному в основу функционирования блокчейна добываемой ими монеты.

Графическая иллюстрация работы, которую производят майнеры при проведении вычислений для криптовалюты биткоин:

Кроме алгоритма PoW, существуют и другие виды консенсуса, каждый из которых имеет свои преимущества и недостатки.

Преимущества и недостатки некоторых алгоритмов консенсуса (PoW, PoS, PoET. BFT, Federated BFT):

Блокчейн представляет собой глобальный реестр, содержащий информацию об отдельных блоках, из которых он состоит:

Каждый блок обязательно содержит следующую информацию: номер блока, хеш предыдущего блока и подпись, защищенную от подделки/взлома криптографическим способом (новый хеш):

Кроме того, в блоке может хранится и другая информация, например, отметки времени, одноразовый код (number used once или nonce) и т.д:

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

Пример 64-символьного хеша блока в сети биткоина:

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

Читайте также:  Биткоин обменник 24 часа locationbtc com

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

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

Что делают майнеры при проведении криптографических вычислений?

Использование криптографических функций обеспечивает уникальность и защищённость от взлома полученных в результате проведения вычислений результатов.

При проведении вычислений майнерами производится математическая обработка исходных данных (их майнер получает от пула или от других узлов сети) в соответствии с заданной криптографической хеш-функцией (она задана в коде программы-майнера) — хеширование:

Обычно при майнинге поиск решений состоит в переборе разных числовых значений с проверкой на соответствие заданному условию. В качестве исходных данных обычно берется заголовок предыдущего найденного блока, данные о транзакциях, которые будут включены в блок и другая информация. Полученные в результате вычислений решения называются хешами.

Хеши уже давно используются в компьютерной сфере. Например, для создания и проверки контрольной суммы файлов, программ, архивов используется хеширование по алгоритмам MD5, SHA256 или SHA512/ SHA1 (подробнее в статье «Как проверить контрольную сумму файла и почему это нужно делать»).

  1. Пример использования криптографической функции для шифрования текста:

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

Прохождение транзакции в сети PoW-криптовалюты требует участия майнеров и узлов сети-валидаторов:

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

Пулы распределяют между множеством майнеров работу по нахождению решений, соответствующих сложности майнинга нужной криптовалюты. Майнеры производят поиск нужных хешей и отправляют их на пул. Каждая выполненная и отправленная майнерами на пул работа называется шарой (от английского share). Шара теоретически может стать новым блоком. Для этого она должна отвечать ряду требований, включая соответствие выбранному алгоритму майнинга, текущей сложности и своевременности.

О связи заработка майнеров с найденными в ходе вычислений решениями

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

Так как после нахождения майнером верного решения и его получением на пуле проходит некоторое время, случается, что share приходит на пул уже после того, как найден блок. Такое решение называют запоздалым (stale share). Хотя это и верное решение, оно уже никому не нужно. После нахождения блока в сети начинается поиск решений с другими условиями, поэтому запоздалая шара в большинстве случаев не оплачивается.

Читайте также:  Рампа для газового оборудования автомобиля

Статистика, отображающая количество найденных решений на пуле ezil при дуал-майнинг ETC+ZIL:

Для уменьшения количества таких случаев нужно уменьшать время задержек канала связи, чаще уточнять условия выполнения вычислений для майнинга (подробнее в статье «Как уменьшить количество stale shares при майнинге»).

Если по каким-либо причинам (сбои в работе компьютера, битая память, переразгон, недостатки в исходном коде майнера, неверно выбранный алгоритм и т.д.) майнер находит хеш, который не проходит проверку узлами сети (пулом), то решение отклоняется, его называют реджектом (от английского слова reject). Пулы совместного майнинга при наличии большого числа неверных решений (invalides) со стороны майнера обычно отключают с ним связь.

Отключение связи со стороны пула (zergpool) при майнинге монеты Luxcore (LUX) из-за наличия ошибок:

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

Источник

Как уменьшить количество stale shares при майнинге

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

Такая ситуация довольно часто возникает при майнинге Ethereum и других монет, у которых малое время нахождения блоков. Найденные решения являются верными, но запоздалыми – на английском их называют stale shares.

Проверить количество stale shares можно на странице статистки пула и в майнере. Например, в Клейморе и Фениксе это можно сделать, нажав в консоли майнера на букву S.

Пример статистического отображения количества запоздалых решений в программе Phoenix Miner:

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

Не стоит путать stale shares с режектами, которые обычно вызваны некорректной работой майнеров, неправильным выбором алгоритма, переразгоном памяти и т.д. Стейлы связаны с задержками при обмене данными о вычислениях между программой майнером и пулом.

Что можно сделать для уменьшения количества stale shares?

Для уменьшения процента stale shares при майнинге нужно обеспечить выполнение следующих условий:

  • использовать интернет-соединение с наименьшим возможным временем отклика (минимальными задержками);
  • подключать риги к пулам с наименьшим пингом (обычно это самые ближние в географическом смысле пулы);
  • сократить в майнере время периодического получения заданий на проведение вычислений от пула;
  • выбирать пулы для майнинга с надежно работающими серверами, стабильным и надежным подключением к интернету;
  • обеспечить уменьшение задержек по всему каналу связи между майнером и пулом. Иногда такие задержки могут возникать из-за подвисающего роутера, плохого сетевого коммутатора, слабого процессора, не способного обеспечить достаточное быстродействие операционной системы (она тормозит/фризит), нарушенных контактов в разъемах/проводах/сетевой карте и т.д.

Настройка интернет соединения

Для уменьшения задержек при прохождении сигнала нужно по возможности использовать оптические/проводные соединения ригов с роутером.

wi-fi соединения ригов с роутером работают с большими задержками, что увеличивает количество «стальных шар».

Читайте также:  Тренинг по инвестициям от тинькофф

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

Беспроводные соединения не могут обеспечить приемлемое время прохождения сигнала и ухудшают параметр «miner-to-pool latency», который приводит к появлению запоздалых решений.

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

Кроме того, стоит, по возможности, отказаться от использования различных прокси, VPN-сервисов, антивирусов, которые могут привносить дополнительные задержки в прохождение сигнала/данных.

Подробнее о настройке интернета для майнинга можно прочитать в статье «Решение проблем с подключением ригов к интернету».

В случае, когда не удается обеспечить соединение с интернетом с малым пингом к серверам пула, стоит задуматься о смене монеты для майнинга, перейти на криптовалюты с большим временем между соседними блоками. Например, в сети Ethereum время между блоками составляет 14-15 секунд, в сети Ravencoin – 60 секунд, Monero — 120 секунд, Bitcoin -600 секунд . Соответственно уменьшается и количество потерянных шар, которых практически не бывает при майнинге XMR и BTC.

Проверка пинга к пулу для майнинга

Для проверки пинга к пулам в косоли Windows можно использовать команду:

ping pool address, например, для пингования европейского сервера eu1 пула ethermine используют команду:

Пример выполнения команды ping к пулу eu1.ethermine.org:

В данном случае пинг к пулу равен 1 мсек, что является очень хорошим значением, при котором практически нет stale shares из-за неверного подбора сервера пула. Тем не менее, они все равно есть (1%):

Если бы майнинг производился на пул f2pool, который находится в Азии, то задержка составляла бы 275 мс, что в разы увеличило бы количество «стальных решений» и, соответственно, уменьшило бы доход майнера:

Настройка времени получения заданий на проведение вычислений от пула

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

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

По умолчанию майнеры отсылают запрос на пул для майнинга с определенным интервалом (обычно это 200 миллисекунд). Изменить время запроса заданий от пула в майнерах можно специальными командами, которые добавляются в батник/скрипт:

  • Phoenix miner — gwtime;
  • Claymore miner — etht;
  • Nanominer, ethminer – farmRecheck.

Синтаксис батника Phoenix Miner для управления значением Recheck period:

Синтаксис батника Claymore Miner для управления временем requests for new job:

Источник

Оцените статью