See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 12893|Vastuse: 1

Stratumi protokolli põhimõte kaevandusmasinate ja kaevandusbasseinide vaheliseks suhtluseks

[Kopeeri link]
Postitatud 22.01.2018 10:23:14 | | | |
Stratumi protokoll on praegu kõige sagedamini kasutatav TCP suhtlusprotokoll kaevandajate ja kaevandusbasseinide vahel. Selgitame lühidalt kaevandamise võrguarhitektuuri.


1. Kaevandamise võrguarhitektuur


Bitcoin on detsentraliseeritud võrguarhitektuur, mis edastab uusi tehinguid ja plokke, paigaldades Bitcoini deemonitega sõlmi. Kaevandusmasinad ja kaevandusbasseinid moodustavad samuti teise võrgu, mida nimetame kaevandajate võrguks.

Kaevandajate võrk on jagatud mitmeks peamiseks osaks, nagu kaevandusmasinad, kaevandusbasseinid, rahakotid jne, ning mõnikord paigaldatakse kaevandusbasseini tarkvara koos rahakotiga, mida võib ühiselt nimetada kaevandusbasseiniks.

Kaevandusmasina ja kaevandusbasseini tarkvara vaheline suhtlusprotokoll on stratum, samas kui kaevandusbasseini tarkvara ja rahakoti vaheline suhtlus on bitcoinrpc liides.

stratum on JSON-andmeformaat ning konkreetne protokoll on järgmine:



2. Stratumi kokkulepe


1. Ülesannete tellimus

Kui kaevandusmasin käivitub, ühendub see esmalt kaevandusbasseiniga, kasutades mining.subscribe meetodit, et tellimust teha.

Bassein tagastab tellimusnumbri ExtraNonce1 ja ExtraNonce2_size mining.notify lehel.

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

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

Nende hulgas:

ae6812eb4cd7735a302a8a9dd95cf71f on tellimuse number;

08000002 on ExtraNonce1, mida kasutatakse coibase tehingute loomiseks;

ExtraNonce2_size on 4, mis on kaevandaja ExtraNonce2 loenduri baitide arv.

2. Ülesannete jaotus

See käsk saadab kaevandajale perioodiliselt kaevandaja poolt, ja kui kaevandusmasin registreerub mining.subscribe meetodiga, peaks kaevandamisbassein kohe tagastama ülesande kui mining.notify.

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

Nende hulgas:

Ülesande number: "bf";

Eelmine ploki HASH:

"4d16b6f85af6e2198f44ae2a6de67f78487ae5611b77c6c0440b921e00000000";

Coinbase I osa:
"010000000100000000000000000000000000000000000000000000000 00000000000000000ffffffff20020862062f503253482f04b8864e5008";

Coinbase 2. osa:

"072f736c7573682f000000000100f2052a010000001976a914d23fcdf86f7 e756a64a7a9688ef9903327048ed98ac00000000";

Tehingu ID nimekiri:

["c5bd77249e27c2d3a3602dd35c3364a7983900b64a34644d03b930bfdb19c0e5", "049b4e78e2d0b24f7c6a2856aa7b41811ed961ee52ae75527df9e80043fd2f12"];

Ploki versiooninumber: "00000002";

nBit:”1c2ac4af”;

Praegune aeg: "504e86b9";

Puhastusülesanded: Kui see on tõsi, katkestab kaevur kõik ülesanded ja alustab kohe uut ülesannet. Kui see on vale, oota, kuni praegune ülesanne lõpeb, enne kui alustad uut ülesannet.

3. Kaevandusmasina sisselogimine

Kaevandaja kasutab mining.authorize meetodit, et logida kaevandusbasseini sisse kindla konto ja parooliga, parool võib olla tühi ning kaevandamisbassein tagastab edukalt sisselogimiseks. See meetod tuleb teha kohe pärast ühenduse algatamist, vastasel juhul ei saa kaevandaja basseini ülesannet.

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

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

4. Esita tulemused

Kui kaevandaja leiab legitiimse osa, esitab ta ülesande basseinile meetodi "mining.submit" abil. Kui bassein tagastab tõe, on kinnitamine edukas, ja kui ebaõnnestub, on vea konkreetne põhjus.

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

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

Nende hulgas:

Kasutajanimi: "miner1";

Ülesande number: "bf";

ExtraNonce2:"00000001";

Praegune aeg: "504e86ed";

nonce:”b2957c02″;

5. Raskusastme reguleerimine

Raskusastme reguleerimise annab kaevandusmasin kaevandusmasinale, et raskusastet mining.set_difficulty viisil reguleerida, ning raskusaste on parameetrites.

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

Kaevandaja rakendab uue raskusastme järgmisele ülesandele ning bassein võib mõnikord kohe uue ülesande välja anda ja seada koristusülesande tõeliseks, et kaevandaja saaks kohe uue raskusastmega tegeleda.



3. Üldine suhtlusprotsess


Üldine suhtlusprotsess kaevandusmasina ja kaevandusbasseini vahel on järgmine:

Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com