Chicos, tengo algunos puntos que no me quedan claros. 1) En el enlace de abajo dice que hay algunos campos que tenemos que combinar y hash. Sin embargo, cuando obtengo un trabajo digo getwork from a pool. Lo que obtengo está en el siguiente cualquiera. El problema es que no puedo encontrar los campos enumerados en el primer enlace, Versión, hashPrevBlock, etc.
https://en.bitcoin.it/wiki/Block_hashing_algorithm
Resultado del trabajo.
{ 'data':'0000000271112b7a1cf8e97b8367102f7e155499bf5c7303cbcdd4360000000000000000427719b35a84bc7732edd34ff3a6278dc4ac0ec2a9544e6088bc0bd719e17a8e52db3b211902666600000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000',
'hash1':'00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000',
'target':'0000000000000000000000000000000000000000000000000000ffff00000000',
'midstate':'45aebb01c0fdb704ee7d2bbf02665943f50f299ff8bb252e614100065bc5c20c'
}
2) Dice en el primer enlace "Cada vez que se desborda Nonce (lo que ocurre con frecuencia), se incrementa la parte extraNonce de la transacción de generación, lo que cambia la raíz de Merkle". ¿Debo poner 32 bits extra para extranonce?
3) ¿Cuál es la razón por la que se invierte el encabezado?
el enlace que publicaste se refiere al proceso completo de minería, ya que lo necesitarías si estuvieras usando un ASIC o alguna otra solución de hardware capaz de generar 4 gigahashes o más por segundo. si está usando getwork
, la mayor parte de esa información es irrelevante y confusa.
ver (1) arriba. no te preocupes por extraNonce cuando usas getwork; puede solicitar getwork
nuevamente y obtener una nueva data
cadena del servidor.
la razón para invertir el encabezado (en realidad, invertir cada palabra de 32 bits en el encabezado) es que ya se ha invertido (convertido a little-endian) antes de enviárselo y necesita deshacer esa inversión, poniéndolo de nuevo en grande -forma endiana.
todo lo que necesita hacer cuando usa getwork es:
data
a big-endiangetwork
llamada RPC apropiada con datos
Eray Tuncer
jcomeau_ictx
jcomeau_ictx
Eray Tuncer
jcomeau_ictx