Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Mer om Blockhuvud | Block och Transaktioner
Introduktion till Blockkedja

bookMer om Blockhuvud

Innan vi kan gå vidare till att utforska blockhuvudet i detalj, bör vi först förstå skillnaden mellan big endian och little endian format.

Little Endian och Big Endian

Först måste vi förstå vad endianness faktiskt innebär.

Note
Läs mer

Endianness avser ordningen i vilken bytes (varje byte är lika med 8 bitar) är arrangerade inom större datatyper i datorns minne.

Big endian-formatet lagrar den mest signifikanta byten först, vilket överensstämmer med hur människor vanligtvis läser siffror. Låt oss använda det decimala talet 234567890 som exempel och konvertera det till hexadecimal och binär med Python och visa resultaten:

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

Eftersom datorer lagrar heltal med ett helt antal byte, och varje 2 hexadecimala siffror motsvarar en byte, behöver vi ett jämnt antal siffror. Den hexadecimala representationen av vårt tal, 0xDFB38D2, innehåller 7 siffror, så vi behöver lägga till en nolla 0 till vänster. Det resulterande talet, 0x0DFB38D2, har nu 8 hexadecimala siffror (passar exakt 4 byte) och samma värde.

På samma sätt har vårt binära tal 28 bitar, och varje 8 bitar motsvarar 1 byte, så vi behöver att antalet bitar är delbart med 8 genom att lägga till 4 nollor 0 till vänster. Det resulterande talet, 0b00001101111110110011100011010010, har nu 32 bitar (passar exakt 4 byte) och samma värde.

Med Python fick vi big endian-formatet, vilket vi också skulle få om vi konverterade manuellt, och vårt tal ser ut så här:

  • 0x0DFB38D2 i hexadecimal;
  • 0b00001101111110110011100011010010 i binär.

Låt oss titta på tabellen nedan för att förstå big endian-formatet:

Omvänt lagrar little endian-formatet den minst signifikanta byten först, vilket innebär att den intuitiva ordningen vänds:

Som du kan se ser vårt tal ut på följande sätt i little endian-format:

  • 0xD238FB0D i hex;

  • 0b11010010001110001111101100001101 i binär form.

Tillbaka till blockhuvudet

Sammanfattningsvis är headern exakt 80 byte och innehåller sex datafält, där varje fält är i little endian-format. Låt oss nu titta på headern för block 645536:

Eftersom blockhuvudet upptar exakt 80 byte, finns det exakt 160 hexadecimala siffror (varje byte motsvarar 2 hexadecimala siffror). Version-fältet, till exempel, upptar 4 byte, vilket innebär 8 hexadecimala siffror.

Här är detaljerad information om detta block i explorern:

Fälten här visas i big endian-format. Låt oss undersöka bits-fältet, till exempel, och jämföra det med dess representation i blockhuvudet. Dess hexadecimala representation är 0x171007ea i big endian-format:

Om vi konverterar det till little endian-format kommer det att se ut så här:

Som du kan se, är det exakt vad vi hade i blockhuvudet.

1. Vad avser "endianness" i samband med blockchain och datorsystem?

2. Matcha blockkomponenter med deras definitioner.

question mark

Vad avser "endianness" i samband med blockchain och datorsystem?

Select the correct answer

question-icon

Matcha blockkomponenter med deras definitioner.

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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 6.25

bookMer om Blockhuvud

Svep för att visa menyn

Innan vi kan gå vidare till att utforska blockhuvudet i detalj, bör vi först förstå skillnaden mellan big endian och little endian format.

Little Endian och Big Endian

Först måste vi förstå vad endianness faktiskt innebär.

Note
Läs mer

Endianness avser ordningen i vilken bytes (varje byte är lika med 8 bitar) är arrangerade inom större datatyper i datorns minne.

Big endian-formatet lagrar den mest signifikanta byten först, vilket överensstämmer med hur människor vanligtvis läser siffror. Låt oss använda det decimala talet 234567890 som exempel och konvertera det till hexadecimal och binär med Python och visa resultaten:

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

Eftersom datorer lagrar heltal med ett helt antal byte, och varje 2 hexadecimala siffror motsvarar en byte, behöver vi ett jämnt antal siffror. Den hexadecimala representationen av vårt tal, 0xDFB38D2, innehåller 7 siffror, så vi behöver lägga till en nolla 0 till vänster. Det resulterande talet, 0x0DFB38D2, har nu 8 hexadecimala siffror (passar exakt 4 byte) och samma värde.

På samma sätt har vårt binära tal 28 bitar, och varje 8 bitar motsvarar 1 byte, så vi behöver att antalet bitar är delbart med 8 genom att lägga till 4 nollor 0 till vänster. Det resulterande talet, 0b00001101111110110011100011010010, har nu 32 bitar (passar exakt 4 byte) och samma värde.

Med Python fick vi big endian-formatet, vilket vi också skulle få om vi konverterade manuellt, och vårt tal ser ut så här:

  • 0x0DFB38D2 i hexadecimal;
  • 0b00001101111110110011100011010010 i binär.

Låt oss titta på tabellen nedan för att förstå big endian-formatet:

Omvänt lagrar little endian-formatet den minst signifikanta byten först, vilket innebär att den intuitiva ordningen vänds:

Som du kan se ser vårt tal ut på följande sätt i little endian-format:

  • 0xD238FB0D i hex;

  • 0b11010010001110001111101100001101 i binär form.

Tillbaka till blockhuvudet

Sammanfattningsvis är headern exakt 80 byte och innehåller sex datafält, där varje fält är i little endian-format. Låt oss nu titta på headern för block 645536:

Eftersom blockhuvudet upptar exakt 80 byte, finns det exakt 160 hexadecimala siffror (varje byte motsvarar 2 hexadecimala siffror). Version-fältet, till exempel, upptar 4 byte, vilket innebär 8 hexadecimala siffror.

Här är detaljerad information om detta block i explorern:

Fälten här visas i big endian-format. Låt oss undersöka bits-fältet, till exempel, och jämföra det med dess representation i blockhuvudet. Dess hexadecimala representation är 0x171007ea i big endian-format:

Om vi konverterar det till little endian-format kommer det att se ut så här:

Som du kan se, är det exakt vad vi hade i blockhuvudet.

1. Vad avser "endianness" i samband med blockchain och datorsystem?

2. Matcha blockkomponenter med deras definitioner.

question mark

Vad avser "endianness" i samband med blockchain och datorsystem?

Select the correct answer

question-icon

Matcha blockkomponenter med deras definitioner.

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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
some-alt