Was ist die extraNonce?

Diese Frage hilft bei der Identifizierung der verschiedenen Komponenten des Getwork-Datenfelds, aber ich bin neugierig, woher die extraNonce kommt. Meine Vermutung ist, dass es die ersten vier Bytes der zweiten Hälfte der Daten sind, weil ich glaube, dass dies immer noch Teil der Merkle-Wurzel ist (und doch in der zweiten Hälfte der Daten nicht Teil des Mittelzustands sein wird). . Ist das richtig? Und wenn ja, wie erhöht man die extraNonce und was bedeutet das?

Beispiel getwork-Daten:00000001a10bacc7e639d1c69a01014bc5db6f2604b3477a3f273a4e019a232700000000a5942372cc60477c8a276e59c8f1a3f58654ea2f6c4402bf1b18e48455b5b8f64f10868b1c07475200000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000

Ist die extraNonce (in Little-Endian, ich weiß) 55b5b8f6?

Antworten (2)

extraNonce wird in die Eingabe der Generierungstransaktion eingefügt. getwork-Kunden können keine Transaktionen sehen, also können sie extraNonce nicht aktualisieren. Einige Miner ändern stattdessen nTime leicht, um ihnen mehr Nonce-Speicherplatz zu geben.

extraNonce wird von Bitcoin verwendet, ist aber nicht Teil des Protokolls. Es gibt kein extraNonce-Feld in Blöcken oder Transaktionen.

Aha, interessant. Und nTime ist der gleiche wie der hier beschriebene Zeitstempel , richtig?
Ja, nTime ist ein Feld innerhalb des Blockheaders.

Das hat mir wirklich geholfen, es zu verstehen:

Ein Solo-Miner erhöht Nonce, bis es überläuft. Dann erhöht es extraNonce und setzt Nonce zurück. extraNonce befindet sich in der Coinbase-Transaktion, daher ändert eine Änderung die Merkle-Root. extraNonce wird zeitabhängig zurückgesetzt.