223 / 736SHARE

Mining Share

Jak těžař dokládá svou práci poolu

Petr zapojil svůj těžební stroj do poolu, služby, která sdružuje práci těžařů. Na obrazovce přibývají přijaté shares, ale v peněžence zatím nic nového není. Není to rozpor. Share nejdřív dokládá práci; výpočet odměny a její odeslání jsou další kroky. Bez těchto průběžných důkazů by pool těžko poznal, jak kdo přispívá, když nalezení skutečného bloku může trvat dlouho.

Mining Share je výsledek těžebního výpočtu, který pro konkrétní úlohu splní podmínku poolu. Pool z takových ověřitelných vzorků odhaduje odvedenou práci. Běžně jde o snazší podmínku než pro platný blok sítě Bitcoin, takže většina shares není novým blokem.

Petrův stroj provádí obrovské množství pokusů. Pool nepotřebuje zprávu o každém z nich; dostává vybrané výsledky, které splnily předem určenou podmínku. Může je ověřit a z jejich četnosti a obtížnosti statisticky odhadovat práci. Mining Share proto není kus rozestavěného bloku ani převoditelný podíl na bitcoinu. Není to ani transakce zapisovaná do blockchainu, veřejné historie bitcoinových transakcí uspořádané do navazujících bloků. Je to způsob, jak mezi těžařem a poolem doložit příspěvek k výpočtům. [1]

Těžba hledá hash, tedy výsledek výpočtu chápaný jako číslo, který není vyšší než stanovený cíl. Pool běžně nastaví číselně vyšší cíl než síť: takovým sítem projde více výsledků, a proto je snazší. Výsledek, který stačí poolu, většinou na blok nestačí. Některý ale náhodou splní i přísnější síťový cíl. Pak může vést k novému bloku, pokud celý blok splní i ostatní pravidla. Pool tím neuvolňuje pravidla Bitcoinu; jen si nastavuje vlastní měřítko pro průběžné dokládání práce. [1]

Petr nemusí tyto zprávy ručně sestavovat, dělá to těžební software. Stratum V2 je protokol, tedy soubor pravidel komunikace mezi zařízeními a poolem. Jeho zpráva SubmitSharesStandard obsahuje job_id pro určení úlohy, nonce jako měněnou hodnotu při hledání, ntime pro čas uvedený v hlavičce bloku a version pro verzi hlavičky, stručné datové části bloku. Obsahuje také označení komunikačního kanálu. Pool potřebuje tento kontext, aby výpočet ověřil; samotné nonce bez přiřazení ke správné úloze není samostatný důkaz práce. [2]

Představ si, že Petr porovnává stroje s různě obtížnými úlohami. Obtížnost tu funguje jako váha: výsledek splňující přísnější podmínku se počítá za větší množství práce. Při stejném způsobu přepočtu mají dva přijaté výsledky s obtížností 1024 stejnou souhrnnou váhu jako jeden s obtížností 2048. Počet zpráv je jiný, ale započítaný příspěvek k práci je stejný. Ani tento součet ale není přesný záznam všech skutečně provedených výpočtů: jednotlivé úspěchy jsou náhodné. Proto je potřeba zjistit, zda čítač označený shares ukazuje přijaté výsledky, nebo jejich přepočtenou váhu. [3]

Někdy pool potvrdí více odeslaných výsledků najednou. Ve Stratum V2 se k tomu používá odpověď SubmitShares.Success. Pole new_submits_accepted_count uvádí počet nově potvrzených výsledků, zatímco new_shares_sum sčítá obtížnosti úloh, k nimž patří. První údaj tedy počítá výsledky a druhý jejich váhu. Oba se vztahují k právě potvrzené dávce; nejsou automaticky celoživotními součty těžaře. Při čtení protokolu proto není důvod čekat samostatné potvrzení za každý odeslaný výsledek. [2]

Petrův stroj může hlásit, že výsledek odeslal, zatímco pool ho teprve ověřuje. Stratum V2 používá pro chybný odeslaný výsledek SubmitShares.Error; jeho sequence_number určuje, ke kterému odeslání chyba patří. Pokud nelze ověřit výsledek hned, může chybová odpověď dorazit později. Je proto důležité odlišovat odeslané výsledky od potvrzeně přijatých a sledovat i odmítnutí. Pouhý růst lokálního čítače odeslání neprokazuje, že pool vše započítal. [2]

Potvrzená práce vstupuje do pravidel odměňování konkrétního poolu. Například model FPPS, Full Pay Per Share, u Braiins počítá odměnu z odevzdané práce a síťových údajů, včetně obtížnosti a odměn za bloky; zahrnuje také složku transakčních poplatků. Pool odečítá svůj poplatek a odeslání peněz se řídí nastavením výplat. Potvrzení share samo o sobě neposílá BTC (bitcoiny) do peněženky. Petr tedy sleduje zvlášť přijatou práci, vypočtenou odměnu a skutečnou výplatu. [4]

Čítač shares může připomínat postup stahování, ale tak těžba nefunguje. Shares i bloky vznikají hledáním dostatečně nízkých hashů a mají náhodný průběh. Více doložené práce poskytne lepší statistický podklad pro odhad výkonu, ne jistotu dalšího úspěchu. Dlouhá řada přijatých shares nezaručí blok při příštím pokusu. Petrovi tak čítač říká něco o průběžné práci a jejím přijetí, nikoli o tom, že zbývá dokončit poslední kousek bloku. [3]

Pro nejúplnější obraz čtěte toto heslo společně s Mining Pool, Share Difficulty, Proof of Work, Mining Target, Bitcoin. Opačným směrem na něj odkazují také ASIC Miner, Mining Pool, Braiins Pool, Stratum V1.

DOC · 001Bitcoin Developer Guide — Pool miningDokumentace DOC · 002Stratum V2 — Mining ProtocolSpecifikace DOC · 003Braiins Academy — Pool FAQDokumentace DOC · 004Braiins Academy — Rewards and payoutsDokumentace
Revidováno: Primární zdroje · Nejde o investiční doporučení