To otwarty zestaw protokołów, czyli reguł wymiany komunikatów. Podstawowy Mining Protocol przekazuje zadania i wyniki; opcjonalne Template Distribution i Job Declaration umożliwiają używanie własnego szablonu bloku. Samo połączenie V2 tego nie gwarantuje.
Ewa ma ASIC, urządzenie wyspecjalizowane w wydobywaniu Bitcoina. Podłączyła je do puli, która koordynuje wielu górników i dzieli nagrody. Urządzenia szukają wyniku obliczeń, który pozwoli dodać do historii Bitcoina nowy blok, czyli pakiet transakcji. Potrzebuje właściwych zadań dla maszyny oraz pewności, że wyniki dotrą do rzeczywiście wybranej puli. Później chce też decydować, jakie transakcje spróbuje umieścić w bloku. Stratum V2 organizuje komunikację tych uczestników. Mining Protocol jest podstawą; Template Distribution i Job Declaration to opcjonalne części służące przekazywaniu danych bloku i uzgadnianiu własnej pracy. Dwie pule oferujące V2 mogą więc udostępniać różne możliwości. [1] [3]
Stratum V1 ułatwił współpracę górników, lecz w zwykłym nieszyfrowanym połączeniu wiadomości pozostawały czytelne po drodze. Zazwyczaj to pula wybierała też transakcje. W 2019 roku Jan Čapek i Pavel Moravec z Braiins przedstawili Stratum V2. Nad projektem pracowali również Matt Corallo i inni programiści. Chodziło o chronioną, sprawniejszą komunikację i większą samodzielność górników. Specyfikacja jest publiczna, a prace trwają w otwartym projekcie. Nie oznacza to nowych reguł poprawności bloków Bitcoina ani automatycznej obietnicy wyższych zarobków. [8] [6]
Osoba znajdująca się na internetowej drodze między Ewą a pulą nie powinna móc potajemnie czytać ani zmieniać komunikatów wydobywczych. V2 stosuje więc szyfrowanie z kontrolą integralności wiadomości, nazywaną AEAD. Początkowe uzgodnienie kryptograficzne Noise jest według specyfikacji obowiązkowe dla połączeń zdalnych; jego użycie w sieci lokalnej może być opcjonalne. Klient weryfikuje serwer za pomocą klucza publicznego używanego przez pulę do potwierdzania tożsamości jej serwerów otrzymanego z zaufanego źródła. Ten klucz służy do sprawdzania podpisu cyfrowego potwierdzającego tożsamość serwera. Chroni to przesyłanie danych, nie całe otoczenie: pula nadal widzi otrzymane informacje. Szyfrowanie nie dowodzi bezpieczeństwa firmware, poprawności rozliczeń ani wypłacalności puli. [2] [10]
Ewa nie zawsze musi wymieniać sprzęt. Translation Proxy to pośrednik, który może odbierać Stratum V1 od starszej maszyny, a w stronę puli używać V2. Ochrona drugiego odcinka nie zmienia połączenia ASIC–proxy: pozostaje ono V1 i wymaga osobnego zabezpieczenia. Proxy może też wspólnie obsługiwać wiele urządzeń i ograniczać powtarzane wysyłanie tych samych danych. Samo tłumaczenie protokołów nie oznacza jeszcze, że Ewa wybiera transakcje. Potrzebuje do tego dodatkowych funkcji i współpracującej puli. [7] [8]
Aby wybierać transakcje, Ewa musi wiedzieć, które są poprawne i na którym bloku budować następny. Może otrzymać te dane ze swojego pełnego węzła, samodzielnie sprawdzającego reguły Bitcoina. Template Provider to program dostarczający szablon bloku: projekt przyszłego bloku, a nie blok gotowy. Może korzystać z Bitcoin Core lub innego węzła z odpowiednią obsługą. Template Distribution przesyła aktualizacje bez ciągłego odpytywania getblocktemplate. NewTemplate i SetNewPrevHash ogłaszają szablon i powiązanie z poprzednim blokiem; RequestTransactionData żąda danych transakcji, a SubmitSolution odsyła znalezione rozwiązanie. [5]
Ewie pomaga Job Declarator Client, program przyjmujący jej szablony i uzgadniający ich wykorzystanie z pulą obsługującą Job Declaration. W trybie Full-Template pobiera identyfikator pracy przez AllocateMiningJobToken, podaje transakcje w DeclareMiningJob i w razie potrzeby odpowiada na ProvideMissingTransactions. Następnie wysyła SetCustomMiningJob do serwera wydobywczego. Tryb Coinbase-only nie ujawnia wcześniej listy transakcji i nie używa DeclareMiningJob; korzysta z przydzielonego identyfikatora oraz danych coinbase, szczególnej transakcji z nagrodą za blok. Pula może odrzucić propozycję, dlatego ważne są też połączenia zapasowe. Własny wybór transakcji może rozłożyć decyzje na więcej górników, lecz nie znosi obowiązku wypłacania nagród przez pulę. [4]
Dotychczasowy przykład można zrozumieć bez nazw komunikatów. Przy konfiguracji lub programowaniu ważny jest jednak dokładny format. V2 przesyła dane binarnie, w uzgodnionej postaci odczytywanej przez maszyny. Nagłówek wiadomości ma 6 bajtów; extension_type, msg_type i msg_length wskazują rozszerzenie, rodzaj komunikatu oraz długość jego treści. Po nawiązaniu komunikacji kryptograficznej pierwszym komunikatem protokołu jest SetupConnection, uzgadniający protokół, wersję i wymagane funkcje. Sukces potwierdza SetupConnection.Success. Etykieta V2 nie zastępuje rzeczywistego uzgodnienia między konkretnymi programami. [1]
Kanał to oddzielna sesja wydobywcza w ramach połączenia, nie kolejny blockchain ani kanał płatniczy. Standard Channel przydziela pracę nad nagłówkiem bloku, krótkim podsumowaniem jego danych. Extended Channel pozwala pośrednikowi dzielić większy zakres prób za pomocą extranonce, zmiennej części transakcji coinbase. Group Channel ułatwia wspólne rozsyłanie zadań do wielu kanałów. OpenStandardMiningChannel i OpenExtendedMiningChannel otwierają odpowiednie sesje. Powód jest prosty: gdyby dwa urządzenia sprawdzały identyczne możliwości, zużywałyby prąd na tę samą pracę. [3]
Pula musi na bieżąco mierzyć wkład Ewy. Mining share to wynik spełniający przydzielony próg trudności; większość shares nie osiąga bardziej wymagającego progu sieci dla bloku, ale niektóre mogą go osiągnąć. NewMiningJob lub NewExtendedMiningJob przekazuje zadanie, SetNewPrevHash aktywuje powiązanie z poprzednim blokiem, a SetTarget ustala próg kanału. SubmitSharesStandard albo SubmitSharesExtended wysyła wyniki z identyfikatorem zadania, numerem sekwencyjnym i zmiennymi danymi nagłówka. Przyjęty wynik nie jest jeszcze wypłatą do portfela. Rozliczenia puli i poprawność bloku według reguł Bitcoina pozostają osobnymi sprawami. [3]
Najpierw sprawdza obsługę w swoim urządzeniu, programie i wybranej puli. Następnie ustala, który odcinek jest chroniony, skąd pochodzi klucz weryfikacyjny oraz czy chce tylko bezpieczniejszego przesyłu, czy także możliwości samodzielnego wyboru transakcji do bloku. Drugi cel wymaga działających Template Provider, Job Declarator Client i odpowiedniej obsługi po stronie puli. Ewa obserwuje opóźnienia, odrzucone i nieaktualne shares, dzienniki błędów oraz zachowanie podczas awarii. Instrukcja musi pasować do używanej wersji. Stratum V2 może usprawnić organizację wydobycia; nie zastępuje bezpiecznego zarządzania urządzeniami ani nie zmienia reguł, według których pełne węzły sprawdzają Bitcoin. [6] [7]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Bitcoin, Wydobywanie, Mining Pool, Braiins, Braiins Pool, ASIC Miner. Do tego hasła prowadzą również odsyłacze z ASIC Miner, Mining Pool, Nonce, Marek „Slush” Palatinus.