Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 12893|Odpoveď: 1

Princíp protokolu stratum pre komunikáciu medzi ťažobnými strojmi a ťažobnými bazénmi

[Kopírovať odkaz]
Zverejnené 22. 1. 2018 10:23:14 | | | |
Protokol stratum je v súčasnosti najčastejšie používaným TCP komunikačným protokolom medzi ťažiarmi a ťažobnými poolmi. Poďme stručne vysvetliť sieťovú architektúru ťažby.


1. Sieťová architektúra ťažby


Bitcoin je decentralizovaná sieťová architektúra, ktorá preposiela nové transakcie a blokuje inštaláciou uzlov s bitcoinovými démonmi. Ťažobné stroje a ťažobné bazény tiež tvoria ďalšiu sieť, ktorú nazývame ťažobná sieť.

Ťažobná sieť je rozdelená na niekoľko hlavných častí, ako sú ťažobné stroje, ťažobné pooly, peňaženky a pod., a niekedy je softvér ťažobného poolu nainštalovaný spolu s peňaženkou, ktorú možno spoločne nazvať ťažobným poolom.

Komunikačný protokol medzi ťažobným strojom a softvérom ťažobného poolu je stratum, zatiaľ čo komunikácia medzi softvérom ťažobného poolu a peňaženkou je rozhranie bitcoinrpc.

stratum je dátový formát JSON a konkrétny protokol je nasledovný:



2. Stratum dohoda


1. Predplatné úlohy

Keď sa ťažobný stroj spustí, najprv sa pripojí k ťažobnému poolu pomocou metódy mining.subscribe, aby sa prihlásil na odber diela.

Pool vráti predplatné číslo ExtraNonce1 a ExtraNonce2_size v mining.notify.

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

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

Medzi nimi:

ae6812eb4cd7735a302a8a9dd95cf71f je predplatné číslo;

08000002 je ExtraNonce1, ktorý sa používa na tvorbu coibase transakcií;

ExtraNonce2_size je 4, čo je počet bajtov čítača ťažiarstva ExtraNonce2.

2. Prideľovanie úloh

Tento príkaz je periodicky odosielaný ťažobníkovi ťažobným poolom a keď sa ťažobný stroj zaregistruje metódou mining.subscribe, ťažobný pool by mal okamžite vrátiť úlohu ako mining.notify.

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

Medzi nimi:

Číslo úlohy: "bf";

Predchádzajúci blokový HASH:

"4d16b6f85af6e2198f44ae2a6de67f78487ae5611b77c6c0440b921e00000000";

Coinbase časť I:
"010000000100000000000000000000000000000000000000000000000 00000000000000000ffffffff20020862062f503253482f04b8864e5008";

Coinbase Časť 2:

"072f736c7573682f0000000000100f2052a0100000001976a914d23fcdf86f7 e756a64a7a9688ef9903327048ed988ac000000000";

Zoznam identifikátorov transakcií:

["c5bd77249e27c2d3a3602dd35c3364a7983900b64a34644d03b930bfdb19c0e5", "049b4e78e2d0b24f7c6a2856aa7b4181ed961ee52ae75527df9e80043fd2f12"];

Číslo blokovej verzie: "00000002";

nBit:”1c2ac4af”;

Aktuálny čas: "504e86b9";

Čistiace úlohy: Ak je to pravda, ťažiar všetky úlohy preruší a okamžite začne s novou. Ak nie je pravda, počkajte, kým aktuálna úloha skončí, než začnete novú úlohu.

3. Prihlásenie do ťažobného stroja

Ťažiar používa metódu mining.authorize na prihlásenie do ťažobného poolu s určitým účtom a heslom, heslo môže byť prázdne a ťažobný pool sa vráti true, aby sa prihlásil úspešne. Táto metóda musí byť vykonaná okamžite po inicializácii spojenia, inak ťažiar nedostane úlohu poolu.

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

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

4. Predložiť výsledky

Keď ťažiar nájde legitímny podiel, odošle úlohu do poolu pomocou metódy "mining.submit". Ak pool vráti true, commit je úspešný, a ak zlyhá, existuje špecifický dôvod chyby.

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

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

Medzi nimi:

Používateľské meno: "miner1";

Číslo úlohy: "bf";

ExtraNonce2:"00000001";

Aktuálny čas: "504e86ed";

nonce:”b2957c02″;

5. Úprava obtiažnosti

Úprava obtiažnosti je vydaná ťažobným poolom do ťažobného stroja, aby mining.set_difficulty upravila obtiažnosť, a hodnota obtiažnosti je v parametroch.

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

Ťažiar aplikuje novú obtiažnosť na ďalšiu úlohu a pool niekedy okamžite vydá novú úlohu a nastaví čistiacu úlohu na true, aby mohol ťažiar okamžite pracovať na novej obtiažnosti.



3. Všeobecný komunikačný proces


Všeobecný komunikačný proces medzi ťažobným strojom a ťažobným bazénom je nasledovný:

Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com