Stratum protocol voor bitcoin Mining gemakkelijk uitgelegd

Volgen en delen nu!

Het stratum-Protocol is een sinds 2012 gebruikt protocol om te communiceren tussen mijnwerker en mijnbouw pool voor versleutelde valuta. Het werd oorspronkelijk ontwikkeld door Slush pool, een van de oudste en grootste Bitcoin Mining zwembaden. Het werd geïmplementeerd door pool-en mining software, maar niet gedefinieerd in een Bitcoin verbeteringsvoorstel (BIP), een document dat lijkt op een verzoek om opmerkingen (RFC), vandaar dat het geen deel uitmaakt van de Bitcoin-standaard. De ontwikkeling van een dergelijk protocol was noodzakelijk, aangezien de oude getwork methode gedelegeerd alle werk om een blok te bouwen of. Dit werd zeer snel een knelpunt, terwijl mijnbouw pool bevoegdheden verhoogd.

Hoe het stratum-protocol werkt:

Stratum beschrijven zowel de verschillende functies en de overdrachtsmethode via het netwerk. Het is ontworpen om te werken zoals Externe procedure aanroepen (RPC) door het definiëren van zogenaamde methoden met een naam en optionele argumenten en een geretourneerde waarde. Elk van deze methoden bestaat ofwel op de mijnbouw pool of de mijnbouw software en wordt aangeroepen van elkaar.

Methoden van het stratum-Protocol:

 

NaamArgumentenGeretourneerde waardeOproep richtingKorte beschrijving
client. get_versionTekst (tekenreeks)Zwembad → MinerVraag de mijnbouw software om een tekstlijn te identificeren.
client.reconnectHost (tekenreeks), poort (getal), wachttijd (getal)Zwembad → MinerVraag de software om de verbinding te verbreken, wacht even de wachttijd in seconden en maak verbinding met host: Port.
Klanten moeten zeer streng zijn om dit verzoek om veiligheidsredenen te eren!
mijnbouw. set_difficultyTekst (tekenreeks)Zwembad → MinerDe mijnbouw cliënt moet de tekst op enigerlei wijze aan zijn gebruiker tonen.
mining.authorizeGebruikersnaam (tekenreeks), wachtwoord (tekenreeks)True als dit is gelukt, anders false (Boolean)Miner → ZwembadVerifieer de mijnwerker in het zwembad. Het is gebruikelijk mogelijk om de mijne zonder te verifiëren, maar je moet verifiëren om het werk aan uw account te koppelen. Veel Pools negeren het wachtwoordargument.
mining.extranonce.subscribeMiner → ZwembadNarrate de pool over de steun van de mijnbouw. set_extranonce
mining.get_transactionsTaak-ID (tekenreeks)Bytes als HEXSTRINGMiner → ZwembadVraag de pool voor dumps van alle transacties in het blok van de taak met deze id.
mining.configureNiet-gesorteerde lijst van config Extensions, kaart met config waarden.Kaart met gegevens over extensie ondersteuning en gebruikte waardenMiner → ZwembadVraag om ondersteuning van config-extensies en stel waarden voor in één stap.
mining.notifyTaak-ID (integer als HEXSTRING),
Vorige blok-hash (bytes als HEXSTRING),
Coinbase transaction part 1 (Bytes as Hexstring) + ExtraNonce1 (Number as Hexstring) + ExtraNonce2 (Number as Hexstring),
Coinbase transaction part 2 (Bytes as Hexstring),
List of elements to build the merkel root,
Bitcoin block version (Number),
Bits (Bytes as Hexstring),
Time (Number as Hexstring),
Clean Jobs (Boolean)
Zwembad → MinerTransmits the Miner a new job
mijnbouw. set_difficultyDifficulty (Number)Zwembad → MinerInform the client about the pool difficulty for the next job.
mining.set_extranonceDifficulty (Number)Zwembad → MinerReplace the on subscription transmitted extranonce starting with the next job.
mining.submitUsername (String), Job ID (String), ExtraNonce2 (Number as Hexstring), Time (Number as Hexstring), Nonce (Number as Hexstring)true if accepted, false otherwise (Boolean)Miner → ZwembadSend the pool data to construct a matching block.
mijnbouw. abonnerenIdentifier (String, optional), Extranonce (Hexstring, optional)List(List(List("mining.set_difficulty", initial difficulty), List("mining.notify", Subscription ID)), Extranonce1 (Hexstring), Extranonce2_size (Num))Miner → ZwembadSubscript the mining pool for job broadcasts. Usual the first method called on connect.
mining.suggest_difficultyDifficulty (Number)Miner → ZwembadPrefer the pool a Difficulty to use.

(Last valid 2019-11-17)

How is a stratum protocol remote procedure call transferred:

The connection is build up from the miner to the pool over TCP. All characters are UTF-8-encoded, after each command follows a line feed (byte 10/0x0A). The commands are JSON Maps with a fixed structure:

The request:

{
"id": <request id>,
"method": <methodname>,
"params": [ <arguments> ]
}
(\n)
  • All calls are sent with the key id. It is usual a unique number for methods with return value or the key object null, which means the same asnothingfor methods without response, but it could be virtually anything. Responses contain the same key with an equal object to refer to the belonging request.
  • The key method contains just the name of the method to call as string.
  • In the key params is a list of arguments. A request without argument transfer empty brackets.

Stratum protocol example:

So a real method call looks like this:

{
"id": 1,
"method": "mining.authorize",
"params": [ "Myuser", "" ]
}
(\n)

Hint:

Byte arrays become transferred as Hexadecimal-encoded strings in little endian byte ordering.

The response:

{
"id": <request id>,
"result": <return value>,
"error": <error description>
}
(\n)
  • Het veld id contains the same, that the request did.
  • result contains the return value for the request.
  • In error is a string, containing an error description in human readable form, if any occurred.
{
"id": 1,
"result": true,
"error": ""
}
(\n)

Warning:

Much software has a very strict implement of JSON. The last column of a map or list must not end with a comma (,), that will cause in compatibility issues!

Plaats uw reactie hier

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *

Gratis Demo!

Toetreden tot het Calloway Crypto systeem nu,
om een gratis demo-account:

Join the Calloway Crypto Soft now!

Lees nu de hele beoordeling!

Hebt u aanvullende vragen of struikelen, stuur een email naar direct naar earnmoneytodayblog@gmail.com of gebruik de simpele Contact Formulier.

 

verdienen-money.today succesvolle uitdaging: 1041/2000 succesvolle handelaar. Test nu Calloway Crypto systeem of andere geverifieerde handelssystemen kostenloos en stuur ons hoe succesvol je bent en hoeveel winst je gemaakt, en kan wat wij voor u kunnen doen.

52%

Laatste succesvolle handelaar:
Antje B.
Worden de volgende!