Besoin d'aide ?

Bases de la blockchain - Mining Job

Vous avez peut-être entendu dire que les jobs sont envoyés du pool au mineur. Ou vous avez peut-être vu que le travail de mineur a été accepté dans la console du mineur. Dans cet article, nous allons vous expliquer ce qu'est un travail de minage.

Qu'est-ce qu'un Mining Job ?

En bref, un travail de minage est un message qui est envoyé du pool au mineur. Ce message contient la difficulté de la cible du pool, extranonce1, extranonce2 information et d'autres spécificités de la blockchain qui sont incluses dans le bloc.

Si vous lisez cet article sur le minage en pool, vous apprendrez qu'un pool doit permettre aux mineurs de savoir quels nombres deviner afin de répartir le travail entre tous les travailleurs.

Le pool et les travailleurs communiqueront toujours entre eux. Le pool enverra les données de travail qui doivent être résolues pendant que le mineur ou le travailleur renverra les solutions. Un travail de minage est un message que le pool et le travailleur s'envoient l'un à l'autre.

Si le mineur trouve une solution aux données fournies par le pool, et puis le mineur renvoie une solution de travail miner également connue sous le nom de partage accepté.

Quelles données sont incluses dans le job de minage ?

Cela dépend de la blockchain. Différentes pièces et algorithmes utilisent différents messages. Vous trouverez ci-dessous les données incluses dans le mining job:

  • Job ID: ID du travail. Mineurs (travailleurs) utilisez ceci lors de la soumission d'un partage (solution) généré à partir de cet ID de travail.
  • Previous Block Hash: Output  de hachage du bloc précédent.
  • Coinbase1: The miner inserts ExtraNonce1 and ExtraNonce2 after this section of the transaction dataLe mineur insère ExtraNonce1 et ExtraNonce2 après cette section des données de transaction.
  • Coinbase2: Le mineur ajoute ceci après la première partie des données de transaction et les deux valeurs ExtraNonce.
  • Merkle_Branch: La transaction coinbase est hachée contre les branches Merkle pour construire le markle root final.
  • Version: Version de bloc Bitcoin
  • nBits: Difficulté du réseau codé
  • nTime: Heure actuelle
  • Clean_Job: Quand c'est vrai, le mineur s'arrêtera de travailler sur les travaux précédents et commencer à travailler sur le nouveau job reçu du pool.

Exemple d'un travail de minage envoyé du pool au travailleur

Les charges utiles entre le mineur et le pool sont encodées sous forme de messages JSON-RPC.

"id":null,"method":"mining.notify","params":["0000000053c411aa","b87d45785c4cc00150867971b7233c4446dfb4bd0003cb690000000000000000","01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff5103539f0b082f5669614254432f2cfabe6d6d138e19afd289f4e1bcc69389a865ede0bd9d642189026485bd4bde3e062686b3100000000000000012734e8daaaa0f6280bf91","ffffffff03e44e2826000000001976a914536ffa992491508dca0354e52f32a3a7a679a53a88ac00000000000000002b6a2952534b424c4f434b3a51115f17d525a3952237430d78f5f4b2f4bc63148fd82f364f77c5260048d97e0000000000000000266a24aa21a9edfcfe2c5bd8a7df958c20d29cd5457ef6565a30ae10bf137602d4b838288908a500000000",["93cbc2abc1128cc9569a4ecbba4188b25ce7c9c8b5e5c9a2810cf0973d82f717","322139a87a09d3037d340f393a1d89ad34b163a07a9a7012fd58d92ca5e038c5","34cfc928a8bb978ab345d66c4940f566b5a36a1b6f7f5c2a617f68acc4f0a1e8","e4cc101b5df77d48d7abeb9a52d1a4bd8768a5cab4b568f804849d793eb8c432","ef14da7b3a470fdd3074633f711a0dcf003c91f4b6b02074d64e51878aafbd37","5ddd66513381c05cb479bfd062daa043295ee608f7bb22082f7c9c2d7f0aac40","bfc4e8f1e80ae3697bccfea631520e2907c7ad9ae5f5e3385aa4c8472ad39624","e6edd6c37b6924f4d5ab9350b33d5c7912d6df8a77be4d2d432d91134c0e83da","7aac970301559306792b9d017e54012ac3b1711c10d2c147fb9cbc32d1f1c63a","40329f69e3152d4537fa6e84e62e2f0830a18e3089455a78d58a54efd9479005","9a9f5af30e3bbc67e282fda897531337ab7d87e1da95d79f4831e8867b888c92","415bb76a0d8183657e0a5ac2bab8676e6ffa27ee3b2565ba1769af7503e9efad"],"20000000","1707a429","6364e9cf",false]}

Le message ci-dessus semble maladroit pour les yeux humains, donc voici un format un peu plus simple pour comprendre le message:

"id":null,"method":"mining.notify","params":["JobID","PreviousBlockHash","Coinbase1","Coinbase2",[MerkleBranch],"Version","nBits","nTime",false]}

Exemple d'une solution de travail de minage envoyée du worker au pool

{"id":15866,"method":"mining.submit","params":["3HJ4xQWjAsKuTwL1QBg4b5875hNcYRrtAr.workerName","0000000053c411aa","0446000000","6364e9cf","75a22825"]}

And explanation of the mining.submit:

{"id":15866,"method":"mining.submit","params":["username","JobID","Extranonce2","nTime","nonce"]}

Comme vous pouvez le voir, les ID de travail sur les deux travaux sont les mêmes.

ÉCRIT PAR
Marko Tarman
Marko est le spécialiste du matériel de minage et le créateur de contenu de NiceHash. Il a commencé à miner en 2012 avant la sortie des premiers ASIC. Il est passé de GPU mining BTC, LTC à VTC, et même DOGE. Sa slogan de minage: "J'ai 99 problèmes, un mauvais riser est tout"
Traduit de l'anglais par Yasser