Ich werde hier eine Menge der Terminologie vermasseln. Ich versuche, den Bitcoin-Algorithmus zu verstehen und wollte diesen JS-Miner verwenden – https://github.com/howardchung/jsminer . Insbesondere versuche ich zu verstehen, wie man die Daten erstellt, die jemand zu hashen versucht. Sie versuchen dies im JS-Miner wie folgt zu tun
var header = version + prevhash + merkle_root + ntime + nbits + '00000000' + '000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000';
curr_block.data = header;
Ich verfolge das meiste davon und verwende das Bitcoin-Wiki als Referenz, aber was ich überhaupt nicht herausfinden kann, ist, was diese letzten beiden numerischen Konstanten sind – „00000000“ und die größere, die mit „0000008“ beginnt. Ich habe gesehen, dass diese in anderen Beispielen auftauchen, aber ich kann nicht herausfinden, warum diese benötigt werden oder ob es sich um hartcodierte Werte im JS-Miner handelt, die im wirklichen Leben nicht vorhanden sein sollten. Jede Hilfe ist willkommen.
Die erste 00000000
ist für die Nonce. Die Nonce wird geändert, um einen anderen Blockheader zu erhalten, ohne Transaktionen erneut auszuwählen. Es wird hauptsächlich verwendet, um einen gültigen Block-Hash zu finden.
Die lange Zeichenfolge, die mit beginnt, 0000008
ist SHA-256-Padding. Es ist nicht wirklich Teil des Blockheaders und was auch immer das SHA-256-Hashing tut, sollte dieses Padding für Sie herausfinden und anhängen. Es ist Teil des Vorverarbeitungsschritts für SHA-256.
David
Andreas Chow
David
Andreas Chow