- Orphan, Stale и Uncle-блоки в майнинге Биткоина и Эфириума. Что такое, чем отличаются и сколько приносят
- Блокчейн — цепочка блоков
- Какие бывают виды блоков в блокчейне Биткоина
- Какие бывают виды блоков в блокчейне Эфириума
- Вознаграждение за Uncle-блоки в сети Ethereum
- Что такое Stale Shares для майнеров
- Признаки появления запоздалых шар
- Как можно решить проблему
- Скорость майнинга, принятая, отклоненная скорость и шары
- Майнинг криптовалют на NiceHash (очень упрощенная версия)
- Принятые шары
- Отклоненные шары — шара выше цели — share above target
- Отклоненные шары — задание не найдено (устаревшие) — job not found (stale)
Orphan, Stale и Uncle-блоки в майнинге Биткоина и Эфириума. Что такое, чем отличаются и сколько приносят
Случается так, что ваше вознаграждение за найденный криптовалютный блок либо меньше обычного, либо же отсутствует совсем. Интересно разобраться в майнинге и понять, почему так происходит? Отлично, данная статья именно об этом, только сначала обязательно прочитайте эту публикацию.
PS: а если вы просто хотите настроить свою ферму и получать доход без лишних подробностей, идите на майнинг-пул 2Miners. Там всё понятно и просто.
Блокчейн — цепочка блоков
Кто-то скажет “это всем ясно” и будет прав, однако давайте подробнее посмотрим на суть цепочки. В среднем каждые 10 минут в сети Биткоина появляется новый блок, а у Эфириума на это уходит 14 секунд. В каждом блоке есть информация о том, какой блок был перед ним. Благодаря этому и выстраивается цепочка блоков — индекс. Можно сравнить его с нумерованным списком или Excel-таблицей. Пропусков не бывает. За номером 1 всегда идёт номер 2, а за 3 будет 4.
Каждая нода=узел=компьютер в сети криптовалюты связан с другими и постоянно обменивается с ними информацией. Подробнее про работу криптовалютных нод и возможные проблемы читайте здесь. Допустим, последний блок в сети криптовалюты имеет номер 100. Все майнеры мира решают одну и ту же задачу и ищут решение блока 101. Как только его найдут, майнер (или майнинг-пул) отправляет через свою ноду решение в сеть. В течение нескольких секунд, а обычно даже миллисекунд, все узлы сети получают информацию о новом блоке 101. Проверяют, что блок честный, в нём нет никакого обмана, после чего дальше ждут блока 102.
Вопрос следующий: что произойдёт, если 2 майнера нашли решение блока 101 в одно и то же время? Например, в сети 100 узлов. Майнер А нашел решение блока чуть раньше и успел передать информацию о блоке на 60 узлов. Майнер Б сделал работу позже и успел сказать о найденном решении блока только на 40 узлов. Значит ли это, что А — молодец, а Б — нет? Не факт. Рассмотрим эти тонкости подробнее на примере монет BTC и ETH.
Важный момент. Взять и присвоить себе чужое решение блока не получится. Сети криптовалют защищены от такого рода воровства. Решение блока от майнера А не подойдёт майнеру Б, он не сможет выдать его за своё.
Какие бывают виды блоков в блокчейне Биткоина
Если что, 10 минут на блок — это среднее время, по факту может быть как несколько секунд, так даже и несколько часов. Допустим, блоки идут быстро, или же ноды общаются между собой не очень быстро.
Майнеры А и Б нашли решение блока 101 примерно в одно и то же время. 60 процентов нод получили новый блок от майнера А, 40 процентов — от майнера Б. На данный момент оба этих блока абсолютно честные, легальные, валидные, как угодно. Сразу после этого майнеры, которые послушали А, нашли еще 2 блока, а майнеры, которые послушали Б, нашли ещё 3 блока.
Как же решить, чья цепь окажется правильной? Решение простое. У последователей майнера Б цепочка длиннее, поэтому она верная. Последователи майнера А, к сожалению, работали напрасно. За свои блоки они ничего не получат.
Помните, что у нас есть индекс, нумерованный список? Так вот, в итоге в него попадает блок 101, который нашёл майнер Б, а дальше — следующие 3 блока, найденные его последователями под номерами 102, 103 и 104. Блок, который нашел майнер А, в индекс не попал. Он остался без отца, его “отрезали”, поэтому такой блок называют сиротой — Orphan. Хорошая новость: у него осталось 2 ребенка, блоки которые были найдены за ним. Плохая новость: смысла в этих блоках нет, они называются Stale, в переводе на русский “протухшие”. Такие вот дочки-матери.
По факту, конечно, вряд ли ноды будут ждать так долго. Уже при наличии следующего блока 102 после спорного блока 101 вся криптовалютная сеть переключится на эту ветку и отбросит другую.
Orphan и Stale-блоки часто путают. С точки зрения майнера Биткоина смысла нет ни в том, ни в другом, за них майнер ничего не получает. Ещё эти блоки называют отклонёнными или Reject/Rejected.
Подытожим, у Биткоина бывают следующие блоки:
- нормальный (валидный) — блок, который включён в цепочку блоков Биткоина. Нашедший его майнер получает вознаграждение.
- Orphan (сирота) — блок, у которого в цепочке блоков Биткоина нет предшественника (родителя). За Orphan-блок майнер ничего не получает.
- Stale (потомок сироты) — блок, который не включён в цепочку блоков Биткоина, потому что предшественником является Orphan-блок. Иными словами, цепочка начинается с блока сироты. За Stale-блок майнер ничего не получает.
Какие бывают виды блоков в блокчейне Эфириума
Среднее время блока в сети Ethereum намного меньше, чем у Bitcoin: 14 секунд против 10 минут. Очевидно, что проблема Orphan и Stale-блоков должна встречаться намного чаще, а значит холостая работа майнеров в теории должна быть велика. К счастью, на практике всё иначе. Разработчики этой криптовалюты внедрили так называемый GHOST-протокол (Greedy Heaviest Observed Subtree).
Смысл GHOST простой — майнеры, которые находят Orphan и Stale-блоки тоже получают вознаграждение, хотя их размер и меньше суммы за нормальные блоки. Такие блоки в сети Ethereum и всех других Dagger-Hashimoto криптовалютах стали называть Uncle. По-русски это звучит как “дядя”.
Uncle-блоки также решают проблему централизации сети. Если бы их не было, ситуация была бы странной. При таком маленьком времени блока крупный пул работал бы намного эффективнее и просто убивал маленьких конкурентов, до которых бы долго доходила информация о новых блоках. В свою очередь, они бы штамповали бесполезные Orphan/Stale-блоки без конца.
У Эфириума бывают следующие блоки:
- нормальный (валидный) — блок, который включён в цепочку блоков Биткоина. Нашедший его майнер получает вознаграждение.
- Uncle — блок, который бы в сети Биткона назывался Orphan или Stale. Данный блок не включается в основную ветку. При этом майнер получает за него более скромное вознаграждение в сравнении с обычным блоком.
Вознаграждение за Uncle-блоки в сети Ethereum
Всего у Эфира может быть 7 “вложенностей” анклов, если так можно сказать. В Биткоине это был бы 1 Orphan и 6 Stale блоков за ним. В Эфириуме вознаграждение за Uncle рассчитывается по следующей формуле:
([Номер Uncle блока] + 8 — [Номер нормального блока]) * [Вознаграждение в сети эфира] / 8
Простыми словами, если вознаграждение за обычный блок — 3 ETH, Uncle будет получать на 1/8 меньше.
Самый первый Uncle получит 2,625 ETH, следующий 2,25 ETH, затем 1,87 ETH и так далее до 0,375 ETH. Однако как правило, Uncle-ветка редко идёт далеко. Уже к первому-второму Uncle блоку нода майнера понимает, что ушла не туда, и переключается на майнинг основной цепочки.
Увидеть мельчайшие детали майнинга Эфириума поможет шикарная инфографика в реальном времени под названием Ethviewer. Она показывает основную цепь и цепочки анклов. Завораживает.
Источник
Что такое Stale Shares для майнеров
«Тише едешь, дальше будешь», или: «Что такое Stale Shares?».
Дословный перевод звучит как «запоздалая шара», который является рабочим сленгом как для опытных, так и не для опытных майнеров.
Чтобы понять суть, укажем, что Stale Shares — это такая шара, которая пришла слишком поздно от участника системы, когда соответствующий блок был кем-то подписан.
Содержание:
Признаки появления запоздалых шар
В системе пула может быть такое, система не отправляет команду «отбой» или рабочая клиент-программа, по каким-то причинам, не понимает действие возникновения причины, то есть, не понимает команду «отбой» и тогда примерно 0,5-1,5% шар будут признаны устаревшими.
Сам принцип отбоя реализован через программу long polling.
Иногда большое количество устаревших шар в сети, например ethermine stale shares, если параметры мощности пула очень высокие, а ваш пинг ниже средних показателей.
В ряде случаев проблема может заключаться в других причинах, например, ваша ферма фризит.
Читайте также:
Как можно решить проблему
Наибольший процент возникновения устаревших шар среди майнеров, занимает ненадлежащее обеспечение соединения контактов оборудования для майнинг-фермы.
В большинстве случаев, Stale Shares не воспринимается системой как ошибка, просто компьютер не успевает вовремя передать шару в пул.
Естественно, появление устаревших шар в конечном итоге оказывает влияние на «фонд оплаты майнеров».
Наш совет таков, чтобы не возникало появления устаревших шар, добейтесь долгой и максимально безупречной работы ваших конструкционных частей ферм без зависаний, а также нужно снизить появления возможных перегрузок.
Если требуется, то уменьшайте показатели разгона, в частности цифры для MH/S. Пусть показатели будут меньше для разгона, зато вы добьётесь бесперебойной работы вашей аппаратуры, и тогда не будете знать проблем с появлением запоздалых шар.
Самое худшее для опытного майнера, это погоня за хорошими показателями MH/S, в результате чего страдает техническая база фермы, а, следовательно, вы теряете свои заработанные деньги.
Источник
Скорость майнинга, принятая, отклоненная скорость и шары
Здесь мы объясним, как работает майнинг, как работает 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. Трудность работы определяется Ta, который вычисляется из (1 * algo_const)/Da . Da — это сложность. Чем выше сложность, тем ниже число Ta, и майнеру труднее (занимает больше времени) угадать подходящий Xa, который был бы меньше чем Ta. По факту, если мы увеличим сложность в 2 раза, число Ta уменьшится в 2 раза и ваш майнер как следствие найдет только половину тех шар, которые он нашел бы раньше. У каждого задания есть определенный Da (определяемый сервером NiceHash). Когда ваш майнер находит шару для задания, у которого удвоен Da, у этой шары удвоен также фактор трудности, а шара будет оцениваться в два раза выше, чем шара, найденная для задания с Da x1.
NiceHash регулирует Da (сложность) динамически, в соответствии со скоростью вашего майнера:
- Если ваш майнер более быстрый и отправляет шары чаще ожидаемого, NiceHash увеличивает сложность.
- Если ваш майнер более медленный и редко отправляет шары, тогда Nicehash уменьшает сложность.
Поэтому имеет значение не то, сколько шар находит ваш майнер, а то, насколько ценными являются найденные шары. Это значение может быть представлено с помощью двухмерного графика принятой скорости.
У нас есть 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 миллисекунды при использовании современных процессоров.
Наш процент отклоненных шар — 0.97%. Это значит, что мы теряем около 1% от возможного дохода. В случае с общей скоростью приблизительно 1800 MH/s это означает, что мы теряем около 18 MH/s .
Но почему задания все же устаревают? Ваш майнер выполняет работу для блокчейна — новый блок появляется каждые несколько минут или секунд. Когда это происходит, предыдущее задание устаревает и больше не может быть использовано. В Excavator, когда у задания есть суффикс (clean), все предыдущие задания устаревают.
И в чем смысл шар? Шара с экстремально высокой сложностью, которая выше, чем сложность сети блокчейна, — это решение, создающее новый блок на блокчейне.
Источник