Mehr Über Den Block-Header
Bevor wir uns eingehender mit dem Block-Header beschäftigen, sollten wir zunächst den Unterschied zwischen den Formaten Big Endian und Little Endian verstehen.
Little Endian und Big Endian
Zunächst müssen wir verstehen, was Endianness eigentlich bedeutet.
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, wird eine gerade Anzahl von Ziffern benötigt. Die Hexadezimaldarstellung unserer Zahl, 0xDFB38D2, enthält 7 Ziffern, daher muss links eine Null 0 ergänzt werden. Die resultierende Zahl, 0x0DFB38D2, hat nun 8 Hex-Ziffern (entspricht genau 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, indem 4 Nullen 0 links ergänzt werden. Die resultierende Zahl, 0b00001101111110110011100011010010, hat nun 32 Bits (entspricht genau 4 Bytes) und denselben Wert.
Mit Python erhalten wir das Big-Endian-Format, das wir auch bei manueller Umrechnung erhalten würden, und unsere Zahl sieht wie folgt aus:
0x0DFB38D2in Hexadezimal;0b00001101111110110011100011010010in Binär.
Die folgende Tabelle veranschaulicht das Big-Endian-Format:
Im Gegensatz dazu speichert das Little-Endian-Format das niederwertigste Byte zuerst und kehrt somit die intuitive Reihenfolge um:
Wie zu sehen ist, sieht unsere Zahl im Little-Endian-Format wie folgt aus:
-
0xD238FB0Din Hexadezimal; -
0b11010010001110001111101100001101in Binär.
Zurück zum Block-Header
Zusammenfassend besteht der Header genau aus 80 Bytes, die sechs Datenfelder enthalten, wobei jedes Feld im Little-Endian-Format vorliegt. Im Folgenden betrachten wir den Header von Block 645536:
Da der Block-Header genau 80 Bytes umfasst, gibt es genau 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. Untersuchen wir zum Beispiel das Bits-Feld und vergleichen es mit seiner Darstellung im Block-Header. Seine 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 dies genau das, was wir im Block-Header hatten.
1. Worauf bezieht sich „Endianness“ im Kontext von Blockchain und Computersystemen?
2. Ordnen Sie die Blockkomponenten 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
Awesome!
Completion rate improved to 6.25
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 den Formaten Big Endian und Little Endian verstehen.
Little Endian und Big Endian
Zunächst müssen wir verstehen, was Endianness eigentlich bedeutet.
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, wird eine gerade Anzahl von Ziffern benötigt. Die Hexadezimaldarstellung unserer Zahl, 0xDFB38D2, enthält 7 Ziffern, daher muss links eine Null 0 ergänzt werden. Die resultierende Zahl, 0x0DFB38D2, hat nun 8 Hex-Ziffern (entspricht genau 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, indem 4 Nullen 0 links ergänzt werden. Die resultierende Zahl, 0b00001101111110110011100011010010, hat nun 32 Bits (entspricht genau 4 Bytes) und denselben Wert.
Mit Python erhalten wir das Big-Endian-Format, das wir auch bei manueller Umrechnung erhalten würden, und unsere Zahl sieht wie folgt aus:
0x0DFB38D2in Hexadezimal;0b00001101111110110011100011010010in Binär.
Die folgende Tabelle veranschaulicht das Big-Endian-Format:
Im Gegensatz dazu speichert das Little-Endian-Format das niederwertigste Byte zuerst und kehrt somit die intuitive Reihenfolge um:
Wie zu sehen ist, sieht unsere Zahl im Little-Endian-Format wie folgt aus:
-
0xD238FB0Din Hexadezimal; -
0b11010010001110001111101100001101in Binär.
Zurück zum Block-Header
Zusammenfassend besteht der Header genau aus 80 Bytes, die sechs Datenfelder enthalten, wobei jedes Feld im Little-Endian-Format vorliegt. Im Folgenden betrachten wir den Header von Block 645536:
Da der Block-Header genau 80 Bytes umfasst, gibt es genau 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. Untersuchen wir zum Beispiel das Bits-Feld und vergleichen es mit seiner Darstellung im Block-Header. Seine 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 dies genau das, was wir im Block-Header hatten.
1. Worauf bezieht sich „Endianness“ im Kontext von Blockchain und Computersystemen?
2. Ordnen Sie die Blockkomponenten ihren Definitionen zu.
Danke für Ihr Feedback!