Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Mehr Über den Blockheader | Blöcke und Transaktionen
Einführung in die Blockchain
course content

Kursinhalt

Einführung in die Blockchain

Einführung in die Blockchain

1. Erste Schritte
2. Blöcke und Transaktionen
3. Fortgeschrittene Blockchain-Konzepte

book
Mehr Über den Blockheader

Bevor wir uns mit dem Blockheader im Detail befassen können, sollten wir zunächst den Unterschied zwischen Big Endian und Little Endian Formaten verstehen.

Little Endian und Big Endian

Zuerst müssen wir verstehen, was Endianness eigentlich bedeutet.

Big Endian-Format speichert das höchstwertige Byte zuerst, was mit der Art und Weise übereinstimmt, wie Menschen typischerweise Zahlen lesen. Lassen Sie uns die Dezimalzahl 234567890 als Beispiel verwenden und sie mit Python in Hexadezimal und Binär umwandeln und die Ergebnisse ausgeben:

123
decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
copy

Da Computer ganze Zahlen mit einer ganzen Anzahl von Bytes speichern und jeweils 2 Hex-Ziffern einem Byte entsprechen, benötigen wir eine gerade Anzahl von Ziffern. Die Hex-Darstellung unserer Zahl, 0xDFB38D2, enthält 7 Ziffern, daher müssen wir eine Null 0 nach links hinzufügen. Die resultierende Zahl, 0x0DFB38D2, hat nun 8 Hex-Ziffern (passt genau in 4 Bytes) und denselben Wert.

Ähnlich hat unsere Binärzahl 28 Bits, und alle 8 Bits entsprechen 1 Byte, daher müssen wir die Anzahl der Bits durch 8 teilbar machen, indem wir 4 Nullen 0 nach links hinzufügen. Die resultierende Zahl, 0b00001101111110110011100011010010, hat nun 32 Bits (passt genau in 4 Bytes) und denselben Wert.

Mit Python erhielten wir das Big Endian-Format, das wir auch erhalten würden, wenn wir manuell umwandeln würden, und unsere Zahl sieht wie folgt aus:

  • 0x0DFB38D2 in Hex;
  • 0b00001101111110110011100011010010 in Binär.

Werfen wir einen Blick auf die folgende Tabelle, um das Big Endian-Format zu verstehen:

Umgekehrt speichert das Little Endian-Format das am wenigsten signifikante Byte zuerst und kehrt die intuitive Reihenfolge um:

Wie Sie sehen können, sieht unsere Zahl im Little-Endian-Format wie folgt aus:

  • 0xD238FB0D in hexadezimal;

  • 0b11010010001110001111101100001101 in binär.

Zurück zum Blockheader

Zur Wiederholung: Der Header ist genau 80 Bytes groß 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 Blockheader genau 80 Bytes einnimmt, gibt es genau 160 Hexadezimalstellen (jedes Byte entspricht 2 Hexadezimalstellen). Das Version-Feld zum Beispiel nimmt 4 Bytes ein, also gibt es 8 Hexadezimalstellen.

Hier sind die detaillierten Informationen über diesen Block im Explorer:

Die Felder hier werden im Big-Endian-Format angezeigt. Lassen Sie uns das Bits-Feld zum Beispiel untersuchen und es mit seiner Darstellung im Blockheader vergleichen. 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 das genau das, was wir im Blockheader hatten.

Worauf bezieht sich "Endianness" im Kontext von Blockchain und Computersystemen?

Worauf bezieht sich "Endianness" im Kontext von Blockchain und Computersystemen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt