Finden Sie den Mittelzustand eines bereits abgebauten Blocks

Ich spiele mit einem Bitcoin-Miner herum und wollte einige Tests durchführen. Daher wollte ich die Nonce eines bereits abgebauten Blocks finden. Nehmen wir als Beispiel http://blockchain.info/block-index/353394/0000000000000083ee9371ddff055eed7f02348e4eda36c741a2fc62c85bc5cf . Ich kann die Nonce finden. Ich kann den Blockkopf berechnen. Aber wie finde ich heraus, was das Ziel war und was das midstate and datawar, als getworkfür diesen bestimmten Block zum Zeitpunkt des Minings aufgerufen wurde?

Antworten (1)

Ein nützlicher Link zum Thema.

  1. Das Ziel wird aus einem Wert namens "Bits" berechnet. Ein Bits-Wert von 0x1b0404cb entspricht dem Ziel von 0x0404cb * 2^(8*(0x1b - 3)) = 0x00000000000404CB00000000000000000000000000000000000000000000000 . Ein Pool gibt das Ziel normalerweise so an, dass es knapp vor dem Ziel mit Schwierigkeit 1 liegt (ein typisches Ziel für eine Freigabe), was gleich 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ist.

  2. Das Berechnen eines Mittelzustands ist ein großer Schmerz . Grundsätzlich müssen Sie einen internen Status der SHA-256-Funktion abrufen, die zur Berechnung des Block-Hash verwendet wird. Außerdem müssen Sie bedenken, dass die Endianness von Bitcoin allgegenwärtig ist und Sie hin und wieder ohne ersichtlichen Grund Bytes austauschen müssen.

  3. Daten sind nur ein aufgefüllter Blockheader.

Hoffentlich können Sie mit dieser allgemeinen Erklärung und den Links zu Berechnungsbeispielen alle erforderlichen Daten nach Bedarf berechnen.