170 / 736SOLO

Solo Mining

Соло-майнінг: власний блок, власна винагорода

Майнер може працювати правильно й довго нічого не заробляти. Solo Mining означає чекати на блок, знайдений власним обладнанням, замість ділити винагороди інших. Тому важливо розуміти випадковість, витрати й те, що показує статистика.

У Solo Mining майнер отримує винагороду за блоки, знайдені його власною обчислювальною потужністю та прийняті до ланцюга. Блок — група транзакцій, додана до блокчейну, публічної історії Bitcoin. «Знайти блок» означає знайти результат обчислення, який дає змогу запропонувати цю групу решті мережі. Інші учасники ще мають перевірити дотримання всіх правил. Знахідки інших не дають йому регулярного доходу. Можна використовувати власну інфраструктуру або зовнішній соло-сервер із платою за послуги. «Соло» насамперед описує розподіл винагород.

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

Ян купує ASIC — пристрій для спеціалізованих обчислень під час майнінгу. Панель показує роботу, але в гаманець нічого не надходить. Для Solo Mining це саме собою не ознака несправності. Потужність дає шанс знайти блок, а не погодинну оплату. Звичайний Mining Pool розподіляє винагороди за своїми правилами; у соло-режимі Ян чекає на власну знахідку. Підключення до сервера через Stratum, протокол зв’язку для майнерів, також не означає автоматичної участі у спільних виплатах. [1] [6]

Для простоти уявімо сталу частку 1% потужності мережі. Це велика частка для ілюстрації, а не припущення для домашнього пристрою. Серед наступних 100 блоків мережі очікувана кількість власних знахідок дорівнює одиниці. Але ймовірність знайти хоча б один — лише 1 − 0,99^100, приблизно 63,4%. Формула спочатку обчислює ймовірність того, що всі ці блоки знайдуть інші майнери, а потім віднімає її від повної ймовірності. Залишається шанс, що хоча б один знайде Ян. Може бути кілька або жодного. Тривале очікування не поліпшує наступну спробу: майнінг не пам’ятає попередніх невдач. Зміни складності, відносної потужності та перерви в роботі також змінюють умови моделі. [1]

Ян платить за електрику незалежно від результату, а також за обладнання, охолодження й обслуговування. Середній очікуваний дохід — не гроші, на які можна розраховувати щомісяця. Розподіл доходів у пулі зменшує їхні коливання, але не додає тому самому пристрою Hashrate, тобто обчислень за секунду. Комісії та правила виплат теж різняться. Для домашнього експерименту Ян може визначити витрати, які витримає навіть без жодної знахідки. Новина про чужий успіх не є прогнозом його заробітку. [1]

Solo CKPool — приклад сервісу, що надає завдання, з’єднання з мережею та статистику. Винагорода за блок Яна не ділиться між іншими учасниками, як у звичайному пулі, хоча сервіс може утримати свою плату. Треба знати адресу виплати, умови та порядок дій під час збою. Водночас Full Node, вузол перевірки правил Bitcoin, сам не замінює потужність ASIC. Вибір інфраструктури й спосіб розподілу винагород — різні рішення. Список знайдених блоків показує переможців, а не шанси кожного підключеного пристрою. [6]

Пристрій багаторазово обчислює хеш — числовий відбиток заголовка запропонованого блоку. Заголовок — короткий набір даних про блок, який пов’язує запропонований блок із попереднім та з транзакціями всередині. Bitcoin Core перевіряє, чи він менший або дорівнює цілі мережі target, закодованій у полі nBits. Сервер може приймати й результати, що відповідають легшій цілі: їх називають shares. У соло-сервісі share допомагає стежити за роботою пристрою, але сам не є знайденим блоком чи правом на невелику виплату. Нижча складність shares дає більше повідомлень, а не кращий шанс кожного обчислення досягти цілі мережі. Навіть найкращий share не доводить наявність дійсного блоку. [2] [6]

Перед пошуком програма готує проєкт блоку — шаблон. BIP 22 описує інтерфейс getblocktemplate: він надає, зокрема, previousblockhash, посилання на попередній блок, транзакції та coinbasevalue, максимальну суму для винагороди. Програма складає coinbase, особливу першу транзакцію виплати винагороди, і заголовок; ASIC випробовує варіанти обчислень. Коли мережа рухається далі, йому потрібне актуальне завдання. Швидкий пристрій із неправильним одержувачем або застарілим шаблоном не є правильно налаштованим майнінгом. [3]

Самого хешу, який відповідає цілі мережі, ще не вистачає. Інші вузли перевіряють транзакції, coinbase і зв’язок блоку з ланцюгом. Двоє майнерів можуть знайти конкурентні блоки, а мережа продовжити іншу гілку. Блок поза активним ланцюгом називають stale; його винагороду в цьому ланцюзі витратити не можна. Тому швидке поширення та актуальна робота мають значення. Ян перевіряє прийняття всього блоку й наступні підтвердження, а не лише зелене повідомлення про прийнятий share. [3] [4]

Винагорода може містити новостворений bitcoin, блокову субсидію, та комісії транзакцій у блоці. Висота блоку позначає його місце в послідовності блоків. В основній мережі від висоти 840000 до блоку перед 1050000 субсидія становить 3,125 BTC. Комісії змінюються, а сервіс може відняти свою частку. Coinbase не має виплачувати більше за суму субсидії й цих комісій. Діє також COINBASE_MATURITY: витратити винагороду можна лише в блоці, висота якого щонайменше на 100 більша за висоту блоку, що її створив. Це блоки, а не 100 хвилин. Знахідка, підтверджена винагорода й одразу доступні гроші — не те саме. [4] [5] [7]

Для повної картини прочитайте також Майнінг, Mining Pool, getblocktemplate, Hashrate, Pay Per Share, Pay Per Last N Shares. На цю статтю також посилаються Mining Pool, Pay Per Share.

DOC · 001Rosenfeld — Solo mining varianceПервинне джерело DOC · 002Bitcoin Core — Proof-of-work verificationДокументація DOC · 003BIP 22 — Block templatesСпецифікація DOC · 004Bitcoin Core — Block subsidy and validationДокументація DOC · 005Bitcoin Core — Coinbase maturityДокументація DOC · 006Solo CKPool — Service and sharesПервинне джерело DOC · 007Bitcoin Core — Mainnet parametersДокументація
Переглянуто: Спочатку джерела · Не інвестиційна порада