Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Mer om Blokkheader | Blokker og Transaksjoner
Introduksjon til blokkjede

bookMer om Blokkheader

Før vi kan gå videre til å utforske blokkhodet i detalj, må vi først forstå forskjellen mellom big endian og little endian formater.

Little Endian og Big Endian

Først må vi forstå hva endianness faktisk betyr.

Note
Les mer

Endianness refererer til rekkefølgen bytes (hver byte tilsvarer 8 bits) er arrangert i innenfor større datatyper i dataminnet.

Big endian-formatet lagrer den mest signifikante byten først, noe som samsvarer med hvordan mennesker vanligvis leser tall. La oss bruke desimaltallet 234567890 som et eksempel og konvertere det til heksadesimal og binær ved hjelp av Python og vise resultatene:

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

Siden datamaskiner lagrer heltall ved å bruke et helt antall byte, og hver 2 heksadesimale sifre tilsvarer én byte, trenger vi et partall antall sifre. Den heksadesimale representasjonen av vårt tall, 0xDFB38D2, inneholder 7 sifre, så vi må legge til null 0 til venstre. Det resulterende tallet, 0x0DFB38D2, har nå 8 heksadesimale sifre (passer nøyaktig i 4 byte) og samme verdi.

Tilsvarende har vårt binære tall 28 biter, og hver 8. bit tilsvarer 1 byte, så vi må gjøre antall biter delelig med 8 ved å legge til 4 nuller 0 til venstre. Det resulterende tallet, 0b00001101111110110011100011010010, har nå 32 biter (passer nøyaktig i 4 byte) og samme verdi.

Ved bruk av Python fikk vi big endian-formatet, som vi også ville fått ved manuell konvertering, og vårt tall ser slik ut:

  • 0x0DFB38D2 i heksadesimal;
  • 0b00001101111110110011100011010010 i binær.

Se tabellen nedenfor for å forstå big endian-formatet:

Omvendt lagrer little endian-formatet den minst signifikante byten først, noe som gir en rekkefølge som er motsatt av det intuitive:

Som du ser, ser vårt tall i little endian-format slik ut:

  • 0xD238FB0D i heksadesimal;

  • 0b11010010001110001111101100001101 i binær.

Tilbake til blokkhodet

For å oppsummere, hodet er nøyaktig 80 byte og inneholder seks datafelt, hvor hvert felt er i little endian-format. La oss nå se på hodet til blokk 645536:

Siden blokkheaderen opptar nøyaktig 80 byte, finnes det nøyaktig 160 heksadesimale sifre (hver byte tilsvarer 2 heksadesimale sifre). Versjonsfeltet tar for eksempel opp 4 byte, så det er 8 heksadesimale sifre.

Her er detaljert informasjon om denne blokken i utforskeren:

Feltene her vises i big endian-format. La oss undersøke bits-feltet, for eksempel, og sammenligne det med dets representasjon i blokkheaderen. Den heksadesimale representasjonen er 0x171007ea i big endian-format:

Hvis vi konverterer det til little endian-format, vil det se slik ut:

Som du kan se, er det akkurat det vi hadde i blokkheaderen.

1. Hva refererer "endianness" til i sammenheng med blokkjeder og datasystemer?

2. Koble blokk-komponenter med deres definisjoner.

question mark

Hva refererer "endianness" til i sammenheng med blokkjeder og datasystemer?

Select the correct answer

question-icon

Koble blokk-komponenter med deres definisjoner.

A number that miners change to get the resulting block hash which meets the difficulty target:
A compact representation of the target threshold that the block's hash must meet in order to be added to the blockchain:

A single hash that represents all the transactions included in the block:

Click or drag`n`drop items and fill in the blanks

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 6.25

bookMer om Blokkheader

Sveip for å vise menyen

Før vi kan gå videre til å utforske blokkhodet i detalj, må vi først forstå forskjellen mellom big endian og little endian formater.

Little Endian og Big Endian

Først må vi forstå hva endianness faktisk betyr.

Note
Les mer

Endianness refererer til rekkefølgen bytes (hver byte tilsvarer 8 bits) er arrangert i innenfor større datatyper i dataminnet.

Big endian-formatet lagrer den mest signifikante byten først, noe som samsvarer med hvordan mennesker vanligvis leser tall. La oss bruke desimaltallet 234567890 som et eksempel og konvertere det til heksadesimal og binær ved hjelp av Python og vise resultatene:

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

Siden datamaskiner lagrer heltall ved å bruke et helt antall byte, og hver 2 heksadesimale sifre tilsvarer én byte, trenger vi et partall antall sifre. Den heksadesimale representasjonen av vårt tall, 0xDFB38D2, inneholder 7 sifre, så vi må legge til null 0 til venstre. Det resulterende tallet, 0x0DFB38D2, har nå 8 heksadesimale sifre (passer nøyaktig i 4 byte) og samme verdi.

Tilsvarende har vårt binære tall 28 biter, og hver 8. bit tilsvarer 1 byte, så vi må gjøre antall biter delelig med 8 ved å legge til 4 nuller 0 til venstre. Det resulterende tallet, 0b00001101111110110011100011010010, har nå 32 biter (passer nøyaktig i 4 byte) og samme verdi.

Ved bruk av Python fikk vi big endian-formatet, som vi også ville fått ved manuell konvertering, og vårt tall ser slik ut:

  • 0x0DFB38D2 i heksadesimal;
  • 0b00001101111110110011100011010010 i binær.

Se tabellen nedenfor for å forstå big endian-formatet:

Omvendt lagrer little endian-formatet den minst signifikante byten først, noe som gir en rekkefølge som er motsatt av det intuitive:

Som du ser, ser vårt tall i little endian-format slik ut:

  • 0xD238FB0D i heksadesimal;

  • 0b11010010001110001111101100001101 i binær.

Tilbake til blokkhodet

For å oppsummere, hodet er nøyaktig 80 byte og inneholder seks datafelt, hvor hvert felt er i little endian-format. La oss nå se på hodet til blokk 645536:

Siden blokkheaderen opptar nøyaktig 80 byte, finnes det nøyaktig 160 heksadesimale sifre (hver byte tilsvarer 2 heksadesimale sifre). Versjonsfeltet tar for eksempel opp 4 byte, så det er 8 heksadesimale sifre.

Her er detaljert informasjon om denne blokken i utforskeren:

Feltene her vises i big endian-format. La oss undersøke bits-feltet, for eksempel, og sammenligne det med dets representasjon i blokkheaderen. Den heksadesimale representasjonen er 0x171007ea i big endian-format:

Hvis vi konverterer det til little endian-format, vil det se slik ut:

Som du kan se, er det akkurat det vi hadde i blokkheaderen.

1. Hva refererer "endianness" til i sammenheng med blokkjeder og datasystemer?

2. Koble blokk-komponenter med deres definisjoner.

question mark

Hva refererer "endianness" til i sammenheng med blokkjeder og datasystemer?

Select the correct answer

question-icon

Koble blokk-komponenter med deres definisjoner.

A number that miners change to get the resulting block hash which meets the difficulty target:
A compact representation of the target threshold that the block's hash must meet in order to be added to the blockchain:

A single hash that represents all the transactions included in the block:

Click or drag`n`drop items and fill in the blanks

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3
some-alt