¿Necesita ayuda?

Fundamentos de la cadena de bloques - Trabajo de minería

Puede que hayas oído que los trabajos se envían desde el pool al minero. O puede que hayas visto que el trabajo del minero fue aceptado dentro de la consola del minero. En este artículo vamos a explicar qué es un trabajo de minería.

¿Qué es un trabajo de minería?

En resumen, un trabajo de minería es un mensaje que se envía desde el pool al minero. Este mensaje contiene la dificultad objetivo del pool, la información de extranonce1, extranonce2 y otros detalles de la cadena de bloques que se incluyen en el bloque.

Si lees este artículo sobre la minería de pool, aprenderás que un pool debe hacer saber a los mineros qué números deben adivinar para repartir el trabajo entre todos los trabajadores.

El pool y los trabajadores siempre se comunicarán entre sí. El pool enviará los datos del trabajo que debe ser resuelto, mientras que el minero o trabajador devolverá las soluciones. Un trabajo de minería es un mensaje que el pool y el trabajador se envían mutuamente.

Si el minero encuentra una solución a los datos proporcionados por el pool, entonces el minero envía de vuelta una solución de trabajo minero también conocida como un aporte aceptado.

¿Qué datos se incluyen en el trabajo de minería?

Esto depende de la cadena de bloques. Diferentes monedas y algoritmos utilizan diferentes mensajes. A continuación encontrarás los datos que se incluyen en el trabajo de minería:

  • Job ID: ID del trabajo. Los mineros (trabajadores) lo utilizan cuando envían una acción (solución) generada a partir de este ID de trabajo.
  • Previous Block Hash: Salida del hash del bloque anterior.
  • Coinbase1: El minero inserta ExtraNonce1 y ExtraNonce2 después de esta sección de los datos de la transacción.
  • Coinbase2: El minero añade esto después de la primera parte de los datos de la transacción y los dos valores ExtraNonce.
  • Merkle_Branch: La transacción de coinbase se cruza con las ramas Merkle para construir la raíz final de markle.
  • Version: Versión del bloque de Bitcoin
  • nBits: Encoded network difficulty
  • nTime: Hora actual
  • Clean_Job: Cuando esto es cierto, el minero dejará de trabajar en los trabajos anteriores y comenzará a trabajar en el nuevo trabajo recibido del pool.

Ejemplo de un trabajo de minería enviado desde el pool al trabajador

Las cargas útiles entre el minero y el pool se codifican como mensajes 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]}

El mensaje anterior parece torpe para los ojos humanos, así que aquí hay un formato un poco más fácil para entender el mensaje:

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

Ejemplo de solución de un trabajo de minería enviado desde el trabajador al pool

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

Y la explicación del mining.submit:

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

Como puede ver, los ID de trabajo de ambos trabajos son los mismos.

ESCRITO POR
Marko Tarman
Marko es el Gerente de Minería y Creador de Contenido de NiceHash. Empezó a minar en 2012, antes de que salieran los primeros ASIC. Pasó de minar BTC y LTC con GPU a VTC e incluso DOGE. Su lema minero: "Tengo 99 problemas, un mal riser es todos ellos".
Traducido del inglés por Francisco Molina