Mehr Über Den Block-Header
Swipe um das Menü anzuzeigen
Bevor wir uns eingehender mit dem Block-Header beschäftigen, sollten wir zunächst den Unterschied zwischen Big Endian- und Little Endian-Formaten verstehen.
Little Endian und Big Endian
Zunächst muss das Konzept der Endianness verstanden werden.
Endianness bezeichnet die Reihenfolge, in der Bytes (jedes Byte entspricht 8 Bits) innerhalb größerer Datentypen im Computerspeicher angeordnet werden.
Das Big Endian-Format speichert das höchstwertige Byte zuerst, was der üblichen menschlichen Lesart von Zahlen entspricht. Verwenden wir die Dezimalzahl 234567890 als Beispiel und wandeln sie mit Python in Hexadezimal- und Binärdarstellung um und geben die Ergebnisse aus:
123decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
Da Computer Ganzzahlen mit einer ganzen Anzahl von Bytes speichern und jeweils 2 Hex-Ziffern einem Byte entsprechen, benötigen wir eine gerade Anzahl von Ziffern. Die Hexadezimaldarstellung unserer Zahl, 0xDFB38D2, enthält 7 Ziffern, daher müssen wir eine Null 0 links hinzufügen. Die resultierende Zahl, 0x0DFB38D2, hat nun 8 Hex-Ziffern (passt genau in 4 Bytes) und denselben Wert.
Ebenso hat unsere Binärzahl 28 Bits, und jeweils 8 Bits entsprechen 1 Byte, daher muss die Bitanzahl durch 8 teilbar sein. Wir fügen 4 Nullen 0 links hinzu. Die resultierende Zahl, 0b00001101111110110011100011010010, hat nun 32 Bits (passt genau in 4 Bytes) und denselben Wert.
Mit Python haben wir das Big Endian-Format erhalten, das wir auch bei manueller Umrechnung erhalten würden, und unsere Zahl sieht wie folgt aus:
0x0DFB38D2in Hexadezimal;0b00001101111110110011100011010010in Binär.
Die folgende Tabelle hilft, das Big Endian-Format besser zu verstehen:
Im Gegensatz dazu speichert das Little-Endian-Format das niederwertigste Byte zuerst und kehrt damit die intuitive Reihenfolge um:
Wie Sie sehen können, sieht unsere Zahl im Little-Endian-Format wie folgt aus:
-
0xD238FB0Din Hexadezimal; -
0b11010010001110001111101100001101in Binär.
Zurück zum Block-Header
Zur Wiederholung: Der Header besteht genau aus 80 Bytes und enthält sechs Datenfelder, die jeweils im Little-Endian-Format vorliegen. Werfen wir nun einen Blick auf den Header von Block 645536:
Da der Block-Header genau 80 Bytes umfasst, gibt es exakt 160 Hexadezimalstellen (jedes Byte entspricht 2 Hexadezimalstellen). Das Version-Feld beispielsweise belegt 4 Bytes, also 8 Hexadezimalstellen.
Hier sind die detaillierten Informationen zu diesem Block im Explorer:
Die Felder werden hier im Big-Endian-Format angezeigt. Das Bits-Feld zum Beispiel kann betrachtet und mit seiner Darstellung im Block-Header verglichen werden. Die hexadezimale Darstellung ist 0x171007ea im Big-Endian-Format:
Wenn wir es in das Little-Endian-Format umwandeln, sieht es wie folgt aus:
Wie Sie sehen können, ist das genau das, was wir im Block-Header hatten.
1. Worauf bezieht sich „Endianness“ im Kontext von Blockchain und Computersystemen?
2. Ordnen Sie die Block-Komponenten ihren Definitionen zu.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen