Mining Share — результат майнінгового обчислення, що відповідає вимозі пулу для конкретного завдання. За такими перевірюваними зразками пул оцінює виконану роботу. Вимога зазвичай легша, ніж для дійсного блока мережі Bitcoin, тож більшість shares не є новими блоками.
Пристрій Петра робить величезну кількість спроб. Пулу не потрібне повідомлення про кожну: він отримує відібрані результати, які виконали заздалегідь визначену умову. Він перевіряє їх і статистично оцінює роботу за частотою та складністю. Тому Mining Share — не частина незавершеного блока й не частка біткоїна, яку можна передати. Це також не транзакція, записана в блокчейні — публічній історії транзакцій Bitcoin, упорядкованій у пов’язані блоки. Так майнер підтверджує пулу свій внесок в обчислення. [1]
Майнінг шукає хеш — результат обчислення, прочитаний як число, не більше за встановлену ціль. Пул зазвичай задає чисельно вищу ціль, ніж мережа: під неї потрапляє більше результатів, тому вимога легша. Результату, достатнього для пулу, переважно недостатньо для блока. Деякі випадково задовольняють і суворішу ціль мережі. Вони можуть дати новий блок, якщо він відповідає й решті правил. Пул не послаблює правила Bitcoin, а встановлює власний поріг для поточного підтвердження роботи. [1]
Петро не складає ці повідомлення вручну — це робить програмне забезпечення. Stratum V2 є протоколом, набором правил спілкування обладнання з пулом. Повідомлення SubmitSharesStandard містить job_id для визначення завдання, nonce як змінюване під час пошуку значення, ntime для часової позначки в заголовку блока та version для версії заголовка — стислої частини даних блока. Воно також визначає канал зв’язку. Пулу потрібен цей контекст для перевірки: nonce без правильного завдання не є самостійним доказом роботи. [2]
Уявімо, що Петро порівнює пристрої із завданнями різної складності. Складність тут є вагою: результат, що відповідає суворішій вимозі, зараховується як більший обсяг роботи. За перерахунку за однаковою шкалою два прийняті подання зі складністю 1024 мають таку саму сукупну вагу, як одне зі складністю 2048. Повідомлень різна кількість, але врахована вага роботи однакова. Навіть ця сума не є точним записом усіх виконаних обчислень: окремі успіхи випадкові. Тому варто з’ясувати, чи лічильник shares показує прийняті результати, чи їхню перераховану вагу. [3]
Іноді пул підтверджує кілька подань разом. У Stratum V2 для цього є відповідь SubmitShares.Success. Поле new_submits_accepted_count рахує щойно підтверджені подання, а new_shares_sum підсумовує складності відповідних завдань. Перше рахує результати, друге — їхню вагу. Обидва стосуються підтверджуваної групи, а не автоматично всіх результатів за історію майнера. Тож під час читання протоколу не варто очікувати окремого підтвердження кожного надісланого результату. [2]
Майнер Петра може повідомити, що надіслав результат, тоді як пул ще перевіряє його. Stratum V2 використовує SubmitShares.Error для хибного подання; sequence_number указує, якого подання стосується помилка. Якщо перевірка неможлива відразу, повідомлення про помилку може прийти пізніше. Тому розділяй надіслані та підтверджено прийняті результати й стеж за відхиленнями. Зростання локального лічильника відправлень саме по собі не доводить, що пул усе зарахував. [2]
Підтверджена робота враховується за правилами винагороди конкретного пулу. Наприклад, FPPS, Full Pay Per Share, у Braiins обчислює винагороду з поданої роботи й даних мережі, зокрема складності та блокових винагород; включає й складову комісій за транзакції. Пул віднімає свою комісію, а переказ грошей залежить від налаштувань виплат. Підтвердження share саме не надсилає BTC (біткоїнів) у гаманець. Петро окремо відстежує прийняту роботу, нараховану винагороду та фактичну виплату. [4]
Лічильник shares може нагадувати перебіг завантаження, але майнінг працює інакше. Shares і блоки виникають під час пошуку достатньо низьких хешів із випадковими результатами. Більше доведеної роботи дає кращу статистичну основу для оцінювання потужності, а не певність наступного успіху. Довга низка прийнятих shares не гарантує блока в наступній спробі. Лічильник розповідає Петру про поточну роботу та її прийняття, а не про останній шматочок блока, який залишилося завершити. [3]
Для повної картини прочитайте також Mining Pool, Share Difficulty, Proof of Work, Mining Target, Bitcoin. На цю статтю також посилаються ASIC Miner, Mining Pool, Braiins Pool, Stratum V1.