Wie fließt der Mempool in die Berechnung des Blockhashs ein?

Also habe ich gelesen, wie die Nonce berechnet wird. Es gibt einen Teil, den ich nicht verstehe. Es gibt also einen Mempool, und jeder Knoten (oder Mining-Knoten) nimmt einen Teil (oder den gesamten Teil) dieses Mempools, berechnet eine Merkle-Wurzel und kombiniert sie mit einer Nonce, um einen Hash mit einem bestimmten Schwierigkeitsgrad zu erhalten.

Wird der Mempool (oder ein Teil davon) zuerst von der Mining-Software in einen Hash umgewandelt und geht dann in die Nonce-Berechnung ein?

Gibt es Anforderungen an die Reihenfolge der Transaktionen beim Mining eines Blocks?

Können Nodes die Reihenfolge der Transaktionen in einem Block wählen? Kann ein Node eine beliebige Reihenfolge der Transaktionen wählen, die er möchte, oder muss sie chronologisch gewählt werden?

(Sie können die Frage gerne bearbeiten, ich habe versucht, sie so gut wie möglich zu erklären.)

Antworten (1)

Jeder Knoten im Netzwerk hat eine mempool. Die mempoolenthält unbestätigte Transaktionen. Jede mempoolkann etwas anders sein, da sie eine Teilmenge aller unbestätigten Transaktionen im Netzwerk darstellt: Einige wurden möglicherweise nicht an einen Knoten weitergeleitet, sodass er nichts davon weiß, der Knotenbesitzer hat einen höheren Wert festgelegt minTxRelayFeeund einige Transaktionen herausgefiltert niedrige Gebühr, oder der Node-Eigentümer hat ein kleineres Datenlimit für seine festgelegt mempool.

Wie auch immer, all dies gilt auch für jeden Miner-Knoten. Wenn Miner versuchen, einen Block zu finden, wählen sie eine Reihe von Transaktionen zur Bestätigung aus ihrer mempool. Aus diesen Transaktionen bauen sie einen Merkle-Baum auf. Der Merkle-Baum ermöglicht es, dass die gesamten Transaktionsdaten nur durch die Merkle-Wurzel dargestellt werden . Diese Merkle-Wurzel ist Teil des Block-Headers.
Miner können frei wählen, welche Transaktionen sie einschließen möchten, und sie können sie auch in beliebiger Reihenfolge anordnen, solange die Transaktionen gültig sind. Da mittlerweile oft mehr Transaktionen zur Bestätigung verfügbar sind als Blockraum, wählen Miner in der Regel Transaktionen aus, die die Gebühren maximieren, die der Miner verdienen kann.

Miner haben also einige Transaktionen ausgewählt und einen Merkle-Baum erstellt, um sie aufzunehmen. Sie kombinieren dies mit den anderen Teilen des Blockheaders: Zeitstempel, Verweis auf vorherigen Block, Schwierigkeitsangabe und der nonce. Das nonceist eine beliebige Zahl, sodass Bergleute einen Blockkandidaten mit allen anderen Daten erstellen und diesen Kandidaten dann viele Male ausprobieren können, indem sie alle möglichen Werte für die Nonce durchlaufen.
Bei jedem Versuch fügen sie den Block-Header in den Hash-Algorithmus ein und erhalten einen Digest oder Hash der Daten. Wenn dieser Hash die Schwierigkeitsaussage erfüllt, hat der Miner einen neuen Block gefunden und wird ihn an das Netzwerk weiterleiten.