¿Todos los mineros en el grupo de minería aumentan la variable nonce uno por uno a partir de cero?

Consideremos que tenemos n mineros en nuestro pool de minería. Ahora, el administrador del grupo verificó las transacciones y las empaquetó en un bloque para ser extraído. Luego pasó el bloque a todos los n mineros en el grupo.

Supongamos que el bloque de salida es el siguiente:

    to_mine_block = {
    Block No: 1000
    Prev Block:999 
    timestamp: "1000-01-01 00:00:00"
    Data : "XYZ"
    nonce : ?
}

Ahora, to_mine_block se envía a todos los n mineros. Will n mineros ejecuta el siguiente código para

String target = new String(new char[difficulty]).replace('\0', '0'); 

while(!hash.substring( 0, difficulty).equals(target)) {
    nonce ++;
    hash = calculateHash();
}

¿Todos los n mineros ejecutarán este código individualmente en el grupo? De ser así, esta carrera siempre la ganarán los mineros con mayor poder minero. Porque el que tiene el poder de minería más alto avanzará en el ciclo que los que tienen un poder de hash bajo.

Respuestas (1)

No es así como suele funcionar la minería en un grupo. El software de minería generalmente asigna una diferente extranoncea cada minero, que es parte de la transacción de la base de monedas, y dará como resultado una raíz merkle diferente (y un encabezado de bloque diferente. Luego, todos pueden comenzar en el nonce 0 como sugiere, pero no estarán compitiendo entre sí para el mismo bloque porque son diferentes. Consulte https://bitcointalk.org/index.php?topic=9438.msg136344#msg136344 .

Además, solo como aclaración, los datos que se procesan durante la minería son el encabezado del bloque, que consta de:

  • Versión
  • hashAnteriorBloquear
  • hashMerkleRoot
  • Tiempo
  • bits
  • Mientras tanto

Ver https://en.bitcoin.it/wiki/Block_hashing_algorithm