Leute, ich habe ein paar Punkte, die mir nicht klar sind. 1) In dem Link unten heißt es, dass es einige Felder gibt, die wir kombinieren und hashen müssen. Wenn ich jedoch eine Arbeit bekomme, indem ich Getwork aus einem Pool sage. Was ich bekomme, steht auch unten. Das Problem ist, dass ich die im ersten Link aufgeführten Felder, Version, hashPrevBlock usw., nicht finden kann.
https://en.bitcoin.it/wiki/Block_hashing_algorithm
Holen Sie sich das Ergebnis.
{ 'data':'0000000271112b7a1cf8e97b8367102f7e155499bf5c7303cbcdd4360000000000000000427719b35a84bc7732edd34ff3a6278dc4ac0ec2a9544e6088bc0bd719e17a8e52db3b211902666600000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000',
'hash1':'00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000',
'target':'0000000000000000000000000000000000000000000000000000ffff00000000',
'midstate':'45aebb01c0fdb704ee7d2bbf02665943f50f299ff8bb252e614100065bc5c20c'
}
2) Im ersten Link heißt es: "Immer wenn Nonce überläuft (was häufig der Fall ist), wird der extraNonce-Teil der Generierungstransaktion erhöht, wodurch die Merkle-Wurzel geändert wird." Sollte ich zusätzliche 32 Bits für Extranonce setzen?
3) Was ist der Grund für die Umkehrung des Headers?
Der Link, den Sie gepostet haben, bezieht sich auf den vollständigen Mining-Prozess, den Sie benötigen würden, wenn Sie einen ASIC oder eine andere Hardwarelösung verwenden, die 4 Gigahashes oder mehr pro Sekunde erzeugen kann. Wenn Sie verwenden getwork
, sind die meisten dieser Informationen irrelevant und verwirrend.
siehe (1) oben. Sie müssen sich keine Gedanken über extraNonce machen, wenn Sie getwork verwenden; Sie können einfach getwork
erneut anfordern und eine neue data
Zeichenfolge vom Server erhalten.
Der Grund für die Umkehrung des Headers (das eigentliche Umkehren jedes 32-Bit-Wortes im Header) ist, dass er bereits umgekehrt (in Little-Endian konvertiert) wurde , bevor Sie ihn an Sie senden, und Sie müssen diese Umkehrung rückgängig machen und ihn wieder groß schreiben -endian-Form.
Alles, was Sie tun müssen, wenn Sie getwork verwenden, ist:
data
in Big-Endiangetwork
RPC-Aufruf mit Daten verwenden
Eray Tunzer
jcomeau_ictx
jcomeau_ictx
Eray Tunzer
jcomeau_ictx