Meer Over Blokkop
Voordat we de blokheader in detail kunnen verkennen, moeten we eerst het verschil begrijpen tussen big endian en little endian formaten.
Little Endian en Big Endian
Eerst moeten we begrijpen wat endianness eigenlijk betekent.
Endianness verwijst naar de volgorde waarin bytes (elke byte is gelijk aan 8 bits) worden gerangschikt binnen grotere gegevenstypen in het computergeheugen.
Big-endian-formaat slaat de meest significante byte als eerste op, wat overeenkomt met hoe mensen doorgaans getallen lezen. Gebruik het decimale getal 234567890 als voorbeeld en converteer het naar hexadecimaal en binair met Python en toon de resultaten:
123decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
Aangezien computers gehele getallen opslaan met een heel aantal bytes, en elke 2 hexadecimale cijfers overeenkomen met één byte, is een even aantal cijfers vereist. De hexadecimale weergave van ons getal, 0xDFB38D2, bevat 7 cijfers, dus moet er een nul 0 aan de linkerkant worden toegevoegd. Het resulterende getal, 0x0DFB38D2, heeft nu 8 hexadecimale cijfers (past precies in 4 bytes) en behoudt dezelfde waarde.
Op dezelfde manier heeft ons binaire getal 28 bits, en elke 8 bits vormen 1 byte, dus moet het aantal bits deelbaar door 8 zijn door 4 nullen 0 aan de linkerkant toe te voegen. Het resulterende getal, 0b00001101111110110011100011010010, heeft nu 32 bits (past precies in 4 bytes) en behoudt dezelfde waarde.
Met Python is het big-endian-formaat verkregen, wat ook het geval zou zijn bij handmatige conversie, en ons getal ziet er als volgt uit:
0x0DFB38D2in hexadecimaal;0b00001101111110110011100011010010in binair.
Zie de onderstaande tabel voor meer inzicht in het big-endian-formaat:
Omgekeerd slaat het little endian-formaat de minst significante byte als eerste op, waardoor de intuïtieve volgorde wordt omgekeerd:
Zoals te zien is, ziet ons getal in little endian-formaat er als volgt uit:
-
0xD238FB0Din hex; -
0b11010010001110001111101100001101in binair.
Terug naar Block Header
Samenvattend: de header bestaat exact uit 80 bytes met zes gegevensvelden, die elk in little endian-formaat zijn opgeslagen. Laten we nu de header bekijken van block 645536:
Aangezien de blokheader exact 80 bytes inneemt, zijn er precies 160 hexadecimale cijfers (elke byte komt overeen met 2 hexadecimale cijfers). Het versie-veld neemt bijvoorbeeld 4 bytes in beslag, dus zijn er 8 hexadecimale cijfers.
Hier volgt de gedetailleerde informatie over dit blok in de explorer:
De velden hier worden weergegeven in big-endianformaat. Laten we bijvoorbeeld het bits-veld bekijken en dit vergelijken met de weergave in de blokheader. De hexadecimale weergave is 0x171007ea in big-endianformaat:
Als we dit omzetten naar little-endianformaat, ziet het er als volgt uit:
Zoals je kunt zien, is dat precies wat we in de blokheader hadden.
1. Waar verwijst "endianness" naar in de context van blockchain en computersystemen?
2. Koppel blokcomponenten aan hun definities.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 6.25
Meer Over Blokkop
Veeg om het menu te tonen
Voordat we de blokheader in detail kunnen verkennen, moeten we eerst het verschil begrijpen tussen big endian en little endian formaten.
Little Endian en Big Endian
Eerst moeten we begrijpen wat endianness eigenlijk betekent.
Endianness verwijst naar de volgorde waarin bytes (elke byte is gelijk aan 8 bits) worden gerangschikt binnen grotere gegevenstypen in het computergeheugen.
Big-endian-formaat slaat de meest significante byte als eerste op, wat overeenkomt met hoe mensen doorgaans getallen lezen. Gebruik het decimale getal 234567890 als voorbeeld en converteer het naar hexadecimaal en binair met Python en toon de resultaten:
123decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
Aangezien computers gehele getallen opslaan met een heel aantal bytes, en elke 2 hexadecimale cijfers overeenkomen met één byte, is een even aantal cijfers vereist. De hexadecimale weergave van ons getal, 0xDFB38D2, bevat 7 cijfers, dus moet er een nul 0 aan de linkerkant worden toegevoegd. Het resulterende getal, 0x0DFB38D2, heeft nu 8 hexadecimale cijfers (past precies in 4 bytes) en behoudt dezelfde waarde.
Op dezelfde manier heeft ons binaire getal 28 bits, en elke 8 bits vormen 1 byte, dus moet het aantal bits deelbaar door 8 zijn door 4 nullen 0 aan de linkerkant toe te voegen. Het resulterende getal, 0b00001101111110110011100011010010, heeft nu 32 bits (past precies in 4 bytes) en behoudt dezelfde waarde.
Met Python is het big-endian-formaat verkregen, wat ook het geval zou zijn bij handmatige conversie, en ons getal ziet er als volgt uit:
0x0DFB38D2in hexadecimaal;0b00001101111110110011100011010010in binair.
Zie de onderstaande tabel voor meer inzicht in het big-endian-formaat:
Omgekeerd slaat het little endian-formaat de minst significante byte als eerste op, waardoor de intuïtieve volgorde wordt omgekeerd:
Zoals te zien is, ziet ons getal in little endian-formaat er als volgt uit:
-
0xD238FB0Din hex; -
0b11010010001110001111101100001101in binair.
Terug naar Block Header
Samenvattend: de header bestaat exact uit 80 bytes met zes gegevensvelden, die elk in little endian-formaat zijn opgeslagen. Laten we nu de header bekijken van block 645536:
Aangezien de blokheader exact 80 bytes inneemt, zijn er precies 160 hexadecimale cijfers (elke byte komt overeen met 2 hexadecimale cijfers). Het versie-veld neemt bijvoorbeeld 4 bytes in beslag, dus zijn er 8 hexadecimale cijfers.
Hier volgt de gedetailleerde informatie over dit blok in de explorer:
De velden hier worden weergegeven in big-endianformaat. Laten we bijvoorbeeld het bits-veld bekijken en dit vergelijken met de weergave in de blokheader. De hexadecimale weergave is 0x171007ea in big-endianformaat:
Als we dit omzetten naar little-endianformaat, ziet het er als volgt uit:
Zoals je kunt zien, is dat precies wat we in de blokheader hadden.
1. Waar verwijst "endianness" naar in de context van blockchain en computersystemen?
2. Koppel blokcomponenten aan hun definities.
Bedankt voor je feedback!