Protokół stratum dla wydobycia bitcoina łatwy do wyjaśnienia

Śledź i Podziel się teraz!

Protokół warstwy jest od 2012 używany protokół do komunikowania się między górnikiem i puli górniczej dla zaszyfrowanej waluty. Został on początkowo opracowany przez Basen błoto pośniegowe, jeden z najstarszych i największych basenów wydobywania Bitcoin. Został on wdrożony przez oprogramowanie pool- i mining, ale nie zdefiniowano w Propozycja poprawy bitcoina (BIP), dokument podobny do żądania komentarza (RFC), dlatego nie jest częścią standardu Bitcoin. Opracowanie takiego protokołu było konieczne, ponieważ stare getwork (praca getwork) metody delegowanej wszystkich prac w celu zbudowania bloku bitcoind. Stało się to bardzo szybko wąskim gardłem, podczas gdy moce puli górniczej podniesione.

Jak działa protokół warstwy:

Warstwa opisuje zarówno różne funkcje, jak i metodę transferu za pośrednictwem sieci. Jest przeznaczony do pracy Zdalne wywołania procedur (RPC) przez zdefiniowanie tak zwanych metod z nazwą i opcjonalnymi argumentami oraz wartością zwracaną. Każda z tych metod istnieje w puli górnictwa lub oprogramowania górnictwa i pobiera wywoływane od siebie nawzajem.

Metody protokołu warstwowego:

 

NazwaArgumentyWartość zwracanaKierunek połączeniaKrótki opis
Client. get_versionTekst (ciąg)Basen → MinerZapytaj oprogramowanie Górnictwo o wiersz tekstu do zidentyfikowania.
client.reconnectHost (ciąg), Port (numer), Czas oczekiwania (numer)Basen → MinerPoproś oprogramowanie o rozłączenie, odczekaj czas oczekiwania w kilka sekund i połącz się z host:port.
Klienci muszą być bardzo surowi w przestrzeganiu tego żądania ze względów bezpieczeństwa!
górnictwa. set_difficultyTekst (ciąg)Basen → MinerKlient wyszukiwania powinien pokazać tekst do swojego użytkownika w jakikolwiek sposób.
mining.authorizeNazwa użytkownika (ciąg), hasło (ciąg)true if successful, false inaczej (logiczne)Miner → BasenUwierzytelnij górnika w basenie. Zwykle można wydobywać bez uwierzytelnienia, ale musisz uwierzytelnić się, aby połączyć pracę z kontem. Wiele pul ignoruje argument hasła.
mining.extranonce.subscribeMiner → BasenOpowiadać o puli o wsparciu mining.set_extranonce
mining.get_transactionsIdentyfikator zadania (ciąg)Bajty jako HexstringMiner → BasenZapytaj pulę o zrzuty wszystkich transakcji w bloku zadania z tym identyfikatorem.
mining.configureNiesortowana lista rozszerzeń konfiguracji, Mapa z wartościami konfiguracyjnych.Mapa z danymi dotyczącymi obsługi rozszerzeń i używanymi wartościamiMiner → BasenPoproś o wsparcie dla rozszerzeń konfiguracji i zaproponuj wartości w jednym kroku.
mining.notifyIdentyfikator zadania (liczba całkowita jako hexstring),
Poprzedni skrót bloku (bajty jako hexstring),
Coinbase transaction part 1 (Bytes as Hexstring) + ExtraNonce1 (Number as Hexstring) + ExtraNonce2 (Number as Hexstring),
Coinbase transaction part 2 (Bytes as Hexstring),
List of elements to build the merkel root,
Bitcoin block version (Number),
Bits (Bytes as Hexstring),
Time (Number as Hexstring),
Clean Jobs (Boolean)
Basen → MinerTransmits the Miner a new job
górnictwa. set_difficultyDifficulty (Number)Basen → MinerInform the client about the pool difficulty for the next job.
mining.set_extranonceDifficulty (Number)Basen → MinerReplace the on subscription transmitted extranonce starting with the next job.
mining.submitUsername (String), Job ID (String), ExtraNonce2 (Number as Hexstring), Time (Number as Hexstring), Nonce (Number as Hexstring)true if accepted, false otherwise (Boolean)Miner → BasenSend the pool data to construct a matching block.
Mining. SubskrybujIdentifier (String, optional), Extranonce (Hexstring, optional)List(List(List("mining.set_difficulty", initial difficulty), List("mining.notify", Subscription ID)), Extranonce1 (Hexstring), Extranonce2_size (Num))Miner → BasenSubscript the mining pool for job broadcasts. Usual the first method called on connect.
mining.suggest_difficultyDifficulty (Number)Miner → BasenPrefer the pool a Difficulty to use.

(Last valid 2019-11-17)

How is a stratum protocol remote procedure call transferred:

The connection is build up from the miner to the pool over TCP. All characters are UTF-8-encoded, after each command follows a line feed (byte 10/0x0A). The commands are JSON Maps with a fixed structure:

The request:

{
"id": <request id>,
"method": <methodname>,
"params": [ <arguments> ]
}
(\n)
  • All calls are sent with the key Identyfikator. It is usual a unique number for methods with return value or the key object null, which means the same asnothingfor methods without response, but it could be virtually anything. Responses contain the same key with an equal object to refer to the belonging request.
  • The key method contains just the name of the method to call as string.
  • In the key params is a list of arguments. A request without argument transfer empty brackets.

Stratum protocol example:

So a real method call looks like this:

{
"id": 1,
"method": "mining.authorize",
"params": [ "Myuser", "" ]
}
(\n)

Wskazówka:

Byte arrays become transferred as Hexadecimal-encoded strings in little endian byte ordering.

The response:

{
"id": <request id>,
"result": <return value>,
"error": <error description>
}
(\n)
  • The field Identyfikator contains the same, that the request did.
  • result contains the return value for the request.
  • In error is a string, containing an error description in human readable form, if any occurred.
{
"id": 1,
"result": true,
"error": ""
}
(\n)

Ostrzeżenie:

Much software has a very strict implement of JSON. The last column of a map or list must not end with a comma (,), that will cause in compatibility issues!

Zamieść swój komentarz

Twój adres e-mail nie zostaną opublikowane. Pola wymagane są oznaczone *

Darmowe Demo!

Teraz, przyłączyć Calloway Crypto System
Aby dostać darmowe konto demo:

Join the Calloway Crypto Soft now!

Teraz Przeczytaj całość przegląd!

Jeśli masz dodatkowe pytania lub potknięcie, prosimy o e-mail do natychmiastowego earnmoneytodayblog@gmail.com lub użyć prosty formularz kontaktowy.

 

Zarabiaj money.today udanych wyzwanie: 1041/2000 sukces jako przedsiębiorca. Przetestuj teraz Calloway Crypto System lub innych sprawdzonych systemów handlu za darmo i wysłać do nas ile zysku i jak skuteczne są wykonane, a może, co jeszcze możemy dla Ciebie zrobić.

52%

Ostatni sukces jako przedsiębiorca:
Antje B.
Być następny!