Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 12893|Atsakyti: 1

Kasybos mašinų ir kasybos baseinų ryšio sluoksnio protokolo principas

[Kopijuoti nuorodą]
Paskelbta 2018-01-22 10:23:14 | | | |
Stratum protokolas šiuo metu yra dažniausiai naudojamas TCP ryšio protokolas tarp kalnakasių ir kasybos baseinų. Trumpai paaiškinkime kasybos tinklo architektūrą.


1. Kasybos tinklo architektūra


Bitcoin yra decentralizuota tinklo architektūra, kuri perduoda naujas operacijas ir blokus, įdiegdama mazgus su Bitcoin demonais. Kasybos mašinos ir kasybos baseinai taip pat sudaro kitą tinklą, kurį vadiname kalnakasių tinklu.

Kalnakasių tinklas yra padalintas į kelias pagrindines dalis, tokias kaip kasybos mašinos, kasybos baseinai, piniginės ir kt., o kartais kasybos baseino programinė įranga įdiegiama kartu su pinigine, kurią bendrai galima vadinti kasybos baseinu.

Ryšio protokolas tarp kasybos mašinos ir kasybos baseino programinės įrangos yra sluoksnis, o ryšys tarp kasybos baseino programinės įrangos ir piniginės yra bitcoinrpc sąsaja.

sluoksnis yra JSON duomenų formatas, o konkretus protokolas yra toks:



2. Sluoksnio susitarimas


1. Užduočių prenumerata

Kai kasybos mašina paleidžiama, ji pirmiausia prisijungia prie kasybos baseino naudodama mining.subscribe metodą, kad užsiprenumeruotų darbą.

Telkinys grąžina prenumeratos numerį ExtraNonce1 ir ExtraNonce2_size mining.notify.

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

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

Tarp jų:

ae6812eb4cd7735a302a8a9dd95cf71f yra prenumeratos numeris;

08000002 yra ExtraNonce1, kuris naudojamas coibase operacijoms kurti;

ExtraNonce2_size yra 4, kalnakasio ExtraNonce2 skaitiklio baitų skaičius.

2. Užduočių paskirstymas

Šią komandą kasybos baseinas periodiškai siunčia kalnakasiui, o kai kasybos mašina užsiregistruoja mining.subscribe metodu, kasybos baseinas turėtų nedelsdamas grąžinti užduotį kaip mining.notify.

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

Tarp jų:

Užduoties numeris: "bf";

Ankstesnis blokas HASH:

"4d16b6f85af6e2198f44ae2a6de67f78487ae5611b77c6c0440b921e00000000";

Coinbase I dalis:
"010000000100000000000000000000000000000000000000000000000 00000000000000000ffffffff20020862062f503253482f04b8864e5008";

Coinbase 2 dalis:

"072f736c7573682f00000000100f2052a010000001976a914d23fcdf86f7 e756a64a7a9688ef9903327048ed988ac0000000";

Operacijų ID sąrašas:

["c5bd77249e27c2d3a3602dd35c3364a7983900b64a34644d03b930bfdb19c0e5", "049b4e78e2d0b24f7c6a2856aa7b41811ed961ee52ae75527df9e80043fd2f12"];

Bloko versijos numeris: "00000002";

nBit:”1c2ac4af”;

Dabartinis laikas: "504e86b9";

Valymo užduotys: Jei tiesa, kalnakasys nutrauks visas užduotis ir nedelsdamas pradės naują užduotį. Jei klaidinga, prieš pradėdami naują užduotį palaukite, kol baigsis dabartinė užduotis.

3. Kasybos mašinos prisijungimas

Kalnakasys naudoja mining.authorize metodą, kad prisijungtų prie kasybos baseino su tam tikra paskyra ir slaptažodžiu, slaptažodis gali būti tuščias, o kasybos baseinas grįžta teisingai, kad sėkmingai prisijungtų. Šis metodas turi būti atliekamas iškart po ryšio inicijavimo, kitaip kalnakasys negaus baseino užduoties.

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

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

4. Pateikite rezultatus

Kai kalnakasys randa teisėtą akciją, jis pateikia užduotį baseinui naudodamas "mining.submit" metodą. Jei telkinys grąžina teisingą, patvirtinimas sėkmingas, o jei nepavyksta, yra konkreti klaidos priežastis.

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

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

Tarp jų:

Vartotojo vardas: "miner1";

Užduoties numeris: "bf";

ExtraNonce2:"00000001";

Dabartinis laikas: "504e86ed";

nonce:”b2957c02″;

5. Sunkumų reguliavimas

Kasybos baseinas išduoda sunkumo reguliavimą kasybos mašinai, kad mining.set_difficulty būdu sureguliuotų sunkumą, o sunkumo vertė yra parametruose.

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

Kalnakasys pritaikys naują sunkumą kitai užduočiai, o telkinys kartais iš karto pateiks naują užduotį ir nustatys valymo užduotį į teisingą, kad kalnakasys galėtų iš karto dirbti su nauju sunkumu.



3. Bendras bendravimo procesas


Bendras kasybos mašinos ir kasybos baseino ryšio procesas yra toks:

Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com