Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 12893|Vastaus: 1

Stratum-protokollan periaate kaivoskoneiden ja kaivospoolien väliseen viestintään

[Kopioi linkki]
Julkaistu 22.1.2018 10.23.14 | | | |
Stratum-protokolla on tällä hetkellä yleisimmin käytetty TCP-viestintäprotokolla louhijoiden ja louhintapoolien välillä. Selitetäänpä lyhyesti kaivostoiminnan verkkoarkkitehtuuri.


1. Kaivostoiminnan verkkoarkkitehtuuri


Bitcoin on hajautettu verkkoarkkitehtuuri, joka välittää uusia tapahtumia ja lohkoja asentamalla solmuja Bitcoin-daemonien kanssa. Louhintakoneet ja louhintaaltaat muodostavat myös toisen verkon, jota kutsumme louhijaverkoksi.

Louhijaverkko on jaettu useisiin pääosiin, kuten kaivoskoneisiin, louhintapooleihin, lompakoihin jne., ja joskus kaivosallasohjelmisto asennetaan yhdessä lompakon kanssa, jota voidaan yhteisesti kutsua louhintapooliksi.

Kaivoskoneen ja louhintapoolin ohjelmiston välinen viestintäprotokolla on stratum, kun taas louhintapooliohjelmiston ja lompakon välinen viestintä on bitcoinrpc-rajapinta.

stratum on JSON-tietomuoto, ja protokolla on seuraava:



2. Stratum-sopimus


1. Tehtävien tilaus

Kun louhintakone käynnistyy, se yhdistyy ensin louhintapooliin mining.subscribe-menetelmällä tilatakseen työn.

Pooli palauttaa tilausnumeron ExtraNonce1 ja ExtraNonce2_size mining.notify-sivustolla.

Client:{"id":1,"method":"mining.subscribe","params":[]}

Server:{"id":1,"result":[["mining.notify","ae6812eb4cd7735a302a8a9dd95cf71f"],"08000002",4],"error":null}

Niiden joukossa:

ae6812eb4cd7735a302a8a9dd95cf71f on tilausnumero;

08000002 on ExtraNonce1, jota käytetään coibase-tapahtumien rakentamiseen;

ExtraNonce2_size on 4, louhijan ExtraNonce2-laskurin tavujen määrä.

2. Tehtävien jakaminen

Tämä komento lähetetään louhijalle säännöllisesti louhintapoolin toimesta, ja kun louhintakone rekisteröityy mining.subscribe-menetelmään, louhintapoolin tulee välittömästi palauttaa tehtävä muodossa mining.notify.

Server:{"params":["bf","4d16b6f85af6e2198f44ae2a6de67f78487ae5611b77c6c0440b921e00000000", "010000000100000000000000000000000000000000000000000000000000000000000000 00ffffffff20020862062f503253482f04b8864e5008", "072f736c7573682f000000000100f2052a010000001976a914d23fcdf86f7e756a64a7a9688ef9903327048ed988ac00000000",["c5bd77249e27c2d3a3602dd35c3364a7983900b64a34644d03b930bfdb19c0e5", "049b4e78e2d0b24f7c6a2856aa7b41811ed961ee52ae75527df9e80043fd2f12"], "00000002","1c2ac4af","504e86b9",false],"id":null,"method":"mining.notify"}

Niiden joukossa:

Tehtävänumero: "bf";

Edellinen lohkon HASH:

"4d16b6f85af6e2198f44ae2a6de67f78487ae5611b77c6c0440b921e00000000";

Coinbase Osa I:
"010000000100000000000000000000000000000000000000000000000 00000000000000000ffffffff20020862062f503253482f04b8864e5008";

Coinbase Osa 2:

"072f736c7573682f000000000100f2052a010000001976a914d23fcdf86f7 e756a64a7a9688ef9903327048ed98ac00000000";

Transaktio-ID-lista:

["c5bd77249e27c2d3a3602dd35c3364a7983900b64a34644d03b930bfdb19c0e5", "049b4e78e2d0b24f7c6a2856aa7b41811ed961ee52ae75527df9e80043fd2f12"];

Lohkoversionumero: "00000002";

nBit:”1c2ac4af”;

Nykyinen aika: "504e86b9";

Siivoustehtävät: Jos se pitää paikkansa, louhija keskeyttää kaikki tehtävät ja aloittaa uuden tehtävän välittömästi. Jos se on väärin, odota nykyisen tehtävän loppuun asti ennen uuden tehtävän aloittamista.

3. Kaivoskoneen kirjautuminen

Louhija käyttää mining.authorize -menetelmää kirjautuakseen louhintapooliin tietyllä tilillä ja salasanalla, salasana voi olla tyhjä, ja louhintapooli palauttaa true kirjautuakseen onnistuneesti. Tämä menetelmä on tehtävä heti yhteyden alustuksen jälkeen, muuten louhija ei saa pool-tehtävää.

Client:{"params":["miner1","password"],"id":2,"method":"mining.authorize"}

Server:{"error":null,"id":2,"result":true}

4. Toimita tulokset

Kun louhija löytää laillisen osuuden, se lähettää tehtävän poolille "mining.submit"-menetelmällä. Jos pooli palauttaa tosiarvon, commit onnistuu, ja jos epäonnistuu, virheelle on erityinen syy.

Client:{"params":["miner1","bf","00000001","504e86ed","b2957c02"],"id":4,"method":"mining.submit"}

Server:{"error":null,"id":4,"result":true}

Niiden joukossa:

Käyttäjänimi: "miner1";

Tehtävänumero: "bf";

ExtraNonce2:"00000001";

Nykyinen aika: "504e86ed";

nonce:”b2957c02″;

5. Vaikeustason säätö

Vaikeustason säätö annetaan louhintapoolin toimesta kaivoskoneelle vaikeustason säätämiseksi mining.set_difficulty tavalla, ja vaikeustasoarvo on parametreissa.

Server:{"id":null,"method":"mining.set_difficulty","params":[2]}

Louhija soveltaa uutta vaikeustasoa seuraavaan tehtävään, ja pooli voi joskus antaa uuden tehtävän heti ja asettaa siivoustehtävän true-arvoon, jotta louhija voi työstää uutta vaikeustasoa heti.



3. Yleinen viestintäprosessi


Yleinen viestintäprosessi kaivoskoneen ja kaivospoolin välillä on seuraava:

Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com