Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Lisätietoja Lohkon Otsikosta | Lohkot ja transaktiot
Quizzes & Challenges
Quizzes
Challenges
/
Johdatus Lohkoketjuun

bookLisätietoja Lohkon Otsikosta

Ennen kuin voimme siirtyä tarkastelemaan lohkon otsikkoa yksityiskohtaisesti, meidän tulee ensin ymmärtää ero big endian- ja little endian -muotojen välillä.

Little Endian ja Big Endian

Ensiksi on ymmärrettävä, mitä endian-järjestys tarkoittaa.

Note
Lisätietoa

Endianness tarkoittaa järjestystä, jossa tavut (yksi tavu on 8 bittiä) asetetaan suurempiin tietotyyppeihin tietokoneen muistissa.

Big endian -muoto tallentaa merkitsevimmän tavun ensin, mikä vastaa tapaa, jolla ihmiset yleensä lukevat numeroita. Käytetään esimerkkinä desimaalilukua 234567890 ja muunnetaan se heksadesimaali- ja binaarimuotoon käyttäen Pythonia ja tulostetaan tulokset:

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

Koska tietokoneet tallentavat kokonaislukuja kokonaisina tavuina, ja jokainen 2 heksadesimaalista numeroa vastaa yhtä tavua, tarvitsemme parillisen määrän numeroita. Lukumme heksadesimaaliesitys, 0xDFB38D2, sisältää 7 numeroa, joten meidän täytyy lisätä nolla 0 vasemmalle. Lopullinen luku, 0x0DFB38D2, sisältää nyt 8 heksadesimaalista numeroa (mahtuu tarkalleen 4 tavuun) ja on arvoltaan sama.

Vastaavasti binaarilukumme sisältää 28 bittiä, ja jokainen 8 bittiä vastaa 1 tavua, joten tarvitsemme bittien määrän jaolliseksi 8:lla lisäämällä 4 nollaa 0 vasemmalle. Lopullinen luku, 0b00001101111110110011100011010010, sisältää nyt 32 bittiä (mahtuu tarkalleen 4 tavuun) ja on arvoltaan sama.

Pythonilla saimme big endian -muodon, jonka saisimme myös manuaalisesti muunnettaessa, ja lukumme näyttää seuraavalta:

  • 0x0DFB38D2 heksadesimaalimuodossa;
  • 0b00001101111110110011100011010010 binaarimuodossa.

Tutustutaan alla olevaan taulukkoon ymmärtääksemme big endian -muotoa:

Vastaavasti little endian -muoto tallentaa vähiten merkitsevän tavun ensin, mikä kääntää järjestyksen päinvastaiseksi kuin intuitiivisesti odottaisi:

Kuten huomaat, lukumme little endian -muodossa näyttää seuraavalta:

  • 0xD238FB0D heksadesimaalina;

  • 0b11010010001110001111101100001101 binaarina.

Takaisin lohkon otsikkoon

Kerrataan: otsikko on tarkalleen 80 tavua ja sisältää kuusi tietokenttää, joista jokainen on little endian -muodossa. Tarkastellaan nyt lohkon 645536 otsikkoa:

Koska lohkon otsikko vie tarkalleen 80 tavua, siinä on täsmälleen 160 heksadesimaalimerkkiä (jokainen tavu vastaa kahta heksadesimaalimerkkiä). Esimerkiksi version-kenttä vie 4 tavua, joten siinä on 8 heksadesimaalimerkkiä.

Tässä on yksityiskohtaiset tiedot tästä lohkosta explorerissa:

Kentät on tässä esitetty big endian -muodossa. Tarkastellaan esimerkiksi bits-kenttää ja verrataan sitä sen esitykseen lohkon otsikossa. Sen heksadesimaaliesitys on 0x171007ea big endian -muodossa:

Jos muunnetaan se little endian -muotoon, se näyttää seuraavalta:

Kuten näet, juuri nämä tiedot löytyvät lohkon otsikosta.

1. Mihin "endianness" viittaa lohkoketjujen ja tietokonejärjestelmien yhteydessä?

2. Yhdistä lohkon komponentit niiden määritelmiin.

question mark

Mihin "endianness" viittaa lohkoketjujen ja tietokonejärjestelmien yhteydessä?

Select the correct answer

question-icon

Yhdistä lohkon komponentit niiden määritelmiin.

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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain why little endian is used in the block header?

How do I convert other fields from little endian to big endian?

What is the significance of the "bits" field in the block header?

Awesome!

Completion rate improved to 6.25

bookLisätietoja Lohkon Otsikosta

Pyyhkäise näyttääksesi valikon

Ennen kuin voimme siirtyä tarkastelemaan lohkon otsikkoa yksityiskohtaisesti, meidän tulee ensin ymmärtää ero big endian- ja little endian -muotojen välillä.

Little Endian ja Big Endian

Ensiksi on ymmärrettävä, mitä endian-järjestys tarkoittaa.

Note
Lisätietoa

Endianness tarkoittaa järjestystä, jossa tavut (yksi tavu on 8 bittiä) asetetaan suurempiin tietotyyppeihin tietokoneen muistissa.

Big endian -muoto tallentaa merkitsevimmän tavun ensin, mikä vastaa tapaa, jolla ihmiset yleensä lukevat numeroita. Käytetään esimerkkinä desimaalilukua 234567890 ja muunnetaan se heksadesimaali- ja binaarimuotoon käyttäen Pythonia ja tulostetaan tulokset:

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

Koska tietokoneet tallentavat kokonaislukuja kokonaisina tavuina, ja jokainen 2 heksadesimaalista numeroa vastaa yhtä tavua, tarvitsemme parillisen määrän numeroita. Lukumme heksadesimaaliesitys, 0xDFB38D2, sisältää 7 numeroa, joten meidän täytyy lisätä nolla 0 vasemmalle. Lopullinen luku, 0x0DFB38D2, sisältää nyt 8 heksadesimaalista numeroa (mahtuu tarkalleen 4 tavuun) ja on arvoltaan sama.

Vastaavasti binaarilukumme sisältää 28 bittiä, ja jokainen 8 bittiä vastaa 1 tavua, joten tarvitsemme bittien määrän jaolliseksi 8:lla lisäämällä 4 nollaa 0 vasemmalle. Lopullinen luku, 0b00001101111110110011100011010010, sisältää nyt 32 bittiä (mahtuu tarkalleen 4 tavuun) ja on arvoltaan sama.

Pythonilla saimme big endian -muodon, jonka saisimme myös manuaalisesti muunnettaessa, ja lukumme näyttää seuraavalta:

  • 0x0DFB38D2 heksadesimaalimuodossa;
  • 0b00001101111110110011100011010010 binaarimuodossa.

Tutustutaan alla olevaan taulukkoon ymmärtääksemme big endian -muotoa:

Vastaavasti little endian -muoto tallentaa vähiten merkitsevän tavun ensin, mikä kääntää järjestyksen päinvastaiseksi kuin intuitiivisesti odottaisi:

Kuten huomaat, lukumme little endian -muodossa näyttää seuraavalta:

  • 0xD238FB0D heksadesimaalina;

  • 0b11010010001110001111101100001101 binaarina.

Takaisin lohkon otsikkoon

Kerrataan: otsikko on tarkalleen 80 tavua ja sisältää kuusi tietokenttää, joista jokainen on little endian -muodossa. Tarkastellaan nyt lohkon 645536 otsikkoa:

Koska lohkon otsikko vie tarkalleen 80 tavua, siinä on täsmälleen 160 heksadesimaalimerkkiä (jokainen tavu vastaa kahta heksadesimaalimerkkiä). Esimerkiksi version-kenttä vie 4 tavua, joten siinä on 8 heksadesimaalimerkkiä.

Tässä on yksityiskohtaiset tiedot tästä lohkosta explorerissa:

Kentät on tässä esitetty big endian -muodossa. Tarkastellaan esimerkiksi bits-kenttää ja verrataan sitä sen esitykseen lohkon otsikossa. Sen heksadesimaaliesitys on 0x171007ea big endian -muodossa:

Jos muunnetaan se little endian -muotoon, se näyttää seuraavalta:

Kuten näet, juuri nämä tiedot löytyvät lohkon otsikosta.

1. Mihin "endianness" viittaa lohkoketjujen ja tietokonejärjestelmien yhteydessä?

2. Yhdistä lohkon komponentit niiden määritelmiin.

question mark

Mihin "endianness" viittaa lohkoketjujen ja tietokonejärjestelmien yhteydessä?

Select the correct answer

question-icon

Yhdistä lohkon komponentit niiden määritelmiin.

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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3
some-alt