Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 12893|Atbildi: 1

Slāņa protokola princips saziņai starp kalnrūpniecības mašīnām un kalnrūpniecības baseiniem

[Kopēt saiti]
Publicēts 22.01.2018 10:23:14 | | | |
Stratum protokols pašlaik ir visbiežāk izmantotais TCP sakaru protokols starp kalnračiem un kalnrūpniecības baseiniem. Īsumā izskaidrosim kalnrūpniecības tīkla arhitektūru.


1. Ieguves tīkla arhitektūra


Bitcoin ir decentralizēta tīkla arhitektūra, kas pārsūta jaunus darījumus un blokus, instalējot mezglus ar Bitcoin dēmoniem. Kalnrūpniecības mašīnas un kalnrūpniecības baseini veido arī citu tīklu, ko mēs saucam par kalnraču tīklu.

Kalnraču tīkls ir sadalīts vairākās galvenajās daļās, piemēram, kalnrūpniecības mašīnās, kalnrūpniecības baseinos, makos utt., Un dažreiz kalnrūpniecības baseina programmatūra tiek instalēta kopā ar maku, ko kopā var saukt par ieguves baseinu.

Komunikācijas protokols starp kalnrūpniecības mašīnu un ieguves baseina programmatūru ir slānis, savukārt komunikācija starp kalnrūpniecības baseina programmatūru un maku ir bitcoinrpc saskarne.

stratum ir JSON datu formāts, un konkrētais protokols ir šāds:



2. Slāņa vienošanās


1. Uzdevumu abonēšana

Kad kalnrūpniecības mašīna sāk darboties, tā vispirms savienojas ar ieguves baseinu, izmantojot mining.subscribe metodi, lai abonētu darbu.

Baseins atgriež abonementa numuru ExtraNonce1 un ExtraNonce2_size mining.notify.

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

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

Starp tiem ir:

ae6812eb4cd7735a302a8a9dd95cf71f ir abonementa numurs;

08000002 ir ExtraNonce1, kas tiek izmantots, lai veidotu coibase darījumus;

ExtraNonce2_size ir 4, kalnraču ExtraNonce2 skaitītāja baitu skaits.

2. Uzdevumu piešķiršana

Šo komandu kalnračam periodiski nosūta kalnrūpniecības baseins, un, kad kalnrūpniecības mašīna reģistrējas ar mining.subscribe metodi, ieguves baseinam nekavējoties jāatgriež uzdevums kā mining.notify.

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

Starp tiem ir:

Uzdevuma numurs: "bf";

Iepriekšējais bloks HASH:

"4d16b6f85af6e2198f44ae2a6de67f78487ae5611b77c6c0440b921e00000000";

Coinbase I daļa:
"010000000100000000000000000000000000000000000000000000000 00000000000000000ffffffff20020862062f503253482f04b8864e5008";

Coinbase 2. daļa:

"072f736c7573682f00000000100f2052a010000001976a914d23fcdf86f7 e756a64a7a9688ef9903327048ed988ac0000000";

Darījumu ID saraksts:

["c5bd77249e27c2d3a3602dd35c3364a7983900b64a34644d03b930bfdb19c0e5", "049b4e78e2d0b24f7c6a2856aa7b41811ed961ee52ae75527df9e80043fd2f12"];

Bloka versijas numurs: "00000002";

nBit:”1c2ac4af”;

Pašreizējais laiks: "504e86b9";

Tīrīšanas uzdevumi: Ja taisnība, kalnračs pārtrauks visus uzdevumus un nekavējoties sāks jaunu uzdevumu. Ja tas ir nepatiess, pirms sākat jaunu uzdevumu, pagaidiet, līdz beidzas pašreizējais uzdevums.

3. Kalnrūpniecības mašīnas pieteikšanās

Kalnračs izmanto mining.authorize metodi, lai pieteiktos kalnrūpniecības baseinā ar noteiktu kontu un paroli, parole var būt tukša, un ieguves baseins atgriežas patiess, lai veiksmīgi pieteiktos. Šī metode jāveic tūlīt pēc savienojuma inicializēšanas, pretējā gadījumā kalnračs nesaņems baseina uzdevumu.

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

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

4. Iesniedziet rezultātus

Kad kalnračs atrod likumīgu akciju, tas iesniedz uzdevumu baseinam, izmantojot metodi "mining.submit". Ja pūls atgriež patiesu, izpilde ir veiksmīga, un, ja tā neizdodas, ir konkrēts kļūdas iemesls.

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

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

Starp tiem ir:

Lietotājvārds: "kalnračs1";

Uzdevuma numurs: "bf";

Ekstranonce2:"00000001";

Pašreizējais laiks: "504e86ed";

nonce:”b2957c02″;

5. Grūtību regulēšana

Grūtības korekciju kalnrūpniecības baseins izsniedz kalnrūpniecības mašīnai, lai mining.set_difficulty veidā pielāgotu grūtības, un grūtības vērtība ir parametros.

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

Kalnračs pielietos jauno grūtību nākamajam uzdevumam, un baseins dažreiz nekavējoties izdos jaunu uzdevumu un iestatīs tīrīšanas uzdevumu uz true, lai kalnračs varētu nekavējoties strādāt pie jaunās grūtības.



3. Vispārējais komunikācijas process


Vispārējais saziņas process starp kalnrūpniecības mašīnu un ieguves baseinu ir šāds:

Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com