Was ist der Prozess zum Erstellen eines Blocks auf der Blockchain

haben auf Pools geschürft und blindlings eine lange Fahrt hinter sich gebracht

> einen Block erzeugen

Kann jemand den Prozess in einfachen Worten durch die Schritte gehen, die zum Erstellen eines Blocks in der Blockchain erforderlich sind?

Was bestimmt, welche Transaktionen in den Block aufgenommen werden, den wir abbauen?

Antworten (1)

Wenn Miner versuchen, einen Block zu berechnen, wählen sie alle Transaktionen aus, die sie dem Block hinzufügen möchten, plus eine Coinbase-Transaktion (Generation) zu ihrer Adresse. Sie können jede Transaktion enthalten, die sie möchten, um einen Transaktionsbaum zu bilden, der später in die Merkle-Root gehasht und in den Header des Blocks referenziert wird.

Es ist zu beachten, dass ein Block, der vom Netzwerk akzeptiert werden soll, nur gültige Transaktionen enthalten muss: Eingaben, die noch nicht ausgegeben wurden, Eingaben mit gültigem Betrag, Signatur, die bestätigt, dass sie in Ordnung ist, usw.

Nachdem sie eine gültige Merkle-Root haben, erstellen sie den Header des Blocks:

  • Version (4 Byte)
  • Hash des vorherigen Blocks, wodurch eine Blockkette entsteht (32 Bytes)
  • Merkle-Wurzel, die Referenz des Transaktionsbaums (32 Byte)
  • Zeitstempel, Anzahl Sekunden seit 1970-01-01 00:00 (4 Byte)
  • Bits, eine Darstellung der aktuellen Schwierigkeit des Netzwerks (4 Bytes)
  • Nonce, inkrementiert beim Mining (4 Bytes)

Weitere Informationen zum Erstellen des Headers finden Sie hier .

Dann kommt Ihr Miner hier ins Spiel. Es beginnt mit der Nonce bei 0, hash (sha-256 2x) den Header des Blocks und prüft dann, ob der Hash unter dem aktuellen Ziel liegt (wenn Sie sich in einem Pool befinden, teilen Sie das Ziel). Wenn nicht, werden Nonce und Hash erneut erhöht. Wenn sich der Hash unter dem aktuellen Ziel SIE HABEN EINEN BLOCK GEFUNDEN befindet, übertragen Sie den Header Ihres Blocks und den zugehörigen Transaktionsbaum und das Netzwerk akzeptiert ihn. Da Sie eine Coinbase-Transaktion in Ihrem Block hatten, die an Ihre Bitcoin-Adresse gezahlt hat, gehören diese Bitcoins dann Ihnen.

Es heißt, dass es selten ist, einen Block zu finden, sodass Ihrem Miner irgendwann die Nonce ausgeht, um ihn zu verwenden. Sie können dann Parameter in Ihrem Block-Header ändern (eher der Zeitstempel) oder ein zusätzliches Nonce-Feld in Ihrem Transaktionsbaum hinzufügen, wodurch der Merkle geändert wird Wurzel.

Welche Transaktionen als Teil eines Blocks ausgewählt werden, ist meistens die Entscheidung des Miners, die eine oder andere Transaktion einzubeziehen. Aber normalerweise würden sie eine Transaktion mit einer Miner-Gebühr einschließen, um mehr Bitcoin zu gewinnen, ein Miner könnte sich auch dafür entscheiden, keine Transaktion einzubeziehen und nur die Coinbase zu erhalten. Die Verbreitung der eigenen Transaktion durch das Netzwerk beeinflusst auch, welche Transaktionen ein Miner einbezieht.

Wie wählen sie welche Transaktionen aus? Gibt es ein Tool wie einen Blockchain-Viewer?
Ja, es gibt einen blockexplorer.com , aber eigentlich sind alle Knoten im Netzwerk dazu da, Transaktionen weiterzuleiten, der Miner wird (normalerweise) alle empfangenen Transaktionen einschließen. Alle Knoten (Bitcoin-Standard-Client) haben auch die vollständige Blockchain.