Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Докладніше про Заголовок Блоку | Блоки та Транзакції
Вступ до блокчейну

bookДокладніше про Заголовок Блоку

Перш ніж перейти до детального розгляду заголовка блоку, необхідно спочатку зрозуміти різницю між форматами big endian та little endian.

Little Endian та Big Endian

Спочатку потрібно з’ясувати, що таке ендіанність.

Note
Дізнайтеся більше

Ендіанність — це порядок, у якому байти (кожен байт дорівнює 8 бітам) розташовуються у більших типах даних у пам’яті комп’ютера.

Big endian формат зберігає найбільш значущий байт першим, що відповідає звичному для людини способу читання чисел. Розглянемо десяткове число 234567890 як приклад і перетворимо його у шістнадцятковий та двійковий формат за допомогою Python та виведемо результати:

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

Оскільки комп'ютери зберігають цілі числа, використовуючи цілу кількість байтів, і кожні 2 шістнадцяткові цифри відповідають одному байту, нам потрібна парна кількість цифр. Шістнадцяткове представлення нашого числа, 0xDFB38D2, містить 7 цифр, тому потрібно додати нуль 0 зліва. Отримане число, 0x0DFB38D2, тепер має 8 шістнадцяткових цифр (точно 4 байти) і таке ж значення.

Аналогічно, наше двійкове число має 28 бітів, і кожні 8 бітів відповідають 1 байту, тому потрібно, щоб кількість бітів була кратною 8, додавши 4 нулі 0 зліва. Отримане число, 0b00001101111110110011100011010010, тепер має 32 біти (точно 4 байти) і таке ж значення.

Використовуючи Python, ми отримали big endian формат, який ми також отримали б при ручному перетворенні, і наше число виглядає так:

  • 0x0DFB38D2 у шістнадцятковому форматі;
  • 0b00001101111110110011100011010010 у двійковому форматі.

Розглянемо таблицю нижче для розуміння формату big endian:

Навпаки, формат little endian зберігає найменш значущий байт першим, що є протилежним до інтуїтивного порядку:

Як видно, наше число у форматі little endian виглядає так:

  • 0xD238FB0D у шістнадцятковому вигляді;

  • 0b11010010001110001111101100001101 у двійковому вигляді.

Повертаємось до заголовка блоку

Підсумовуючи, заголовок має рівно 80 байт і містить шість полів даних, кожне з яких знаходиться у форматі little endian. Тепер розглянемо заголовок блоку 645536:

Оскільки заголовок блоку займає рівно 80 байтів, це становить рівно 160 шістнадцяткових цифр (кожен байт відповідає 2 шістнадцятковим цифрам). Наприклад, поле version займає 4 байти, тобто 8 шістнадцяткових цифр.

Ось детальна інформація про цей блок в експлорері:

Поля тут показані у форматі big endian. Розглянемо, наприклад, поле bits та порівняймо його з представленням у заголовку блоку. Його шістнадцяткове представлення у форматі big endian: 0x171007ea:

Якщо перетворити його у формат little endian, воно виглядатиме так:

Як бачите, саме це і міститься у заголовку блоку.

1. Що означає «ендіанність» у контексті блокчейну та комп’ютерних систем?

2. Відповідність компонентів блоку їхнім визначенням.

question mark

Що означає «ендіанність» у контексті блокчейну та комп’ютерних систем?

Select the correct answer

question-icon

Відповідність компонентів блоку їхнім визначенням.

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:

Натисніть або перетягніть елементи та заповніть пропуски

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

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

bookДокладніше про Заголовок Блоку

Свайпніть щоб показати меню

Перш ніж перейти до детального розгляду заголовка блоку, необхідно спочатку зрозуміти різницю між форматами big endian та little endian.

Little Endian та Big Endian

Спочатку потрібно з’ясувати, що таке ендіанність.

Note
Дізнайтеся більше

Ендіанність — це порядок, у якому байти (кожен байт дорівнює 8 бітам) розташовуються у більших типах даних у пам’яті комп’ютера.

Big endian формат зберігає найбільш значущий байт першим, що відповідає звичному для людини способу читання чисел. Розглянемо десяткове число 234567890 як приклад і перетворимо його у шістнадцятковий та двійковий формат за допомогою Python та виведемо результати:

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

Оскільки комп'ютери зберігають цілі числа, використовуючи цілу кількість байтів, і кожні 2 шістнадцяткові цифри відповідають одному байту, нам потрібна парна кількість цифр. Шістнадцяткове представлення нашого числа, 0xDFB38D2, містить 7 цифр, тому потрібно додати нуль 0 зліва. Отримане число, 0x0DFB38D2, тепер має 8 шістнадцяткових цифр (точно 4 байти) і таке ж значення.

Аналогічно, наше двійкове число має 28 бітів, і кожні 8 бітів відповідають 1 байту, тому потрібно, щоб кількість бітів була кратною 8, додавши 4 нулі 0 зліва. Отримане число, 0b00001101111110110011100011010010, тепер має 32 біти (точно 4 байти) і таке ж значення.

Використовуючи Python, ми отримали big endian формат, який ми також отримали б при ручному перетворенні, і наше число виглядає так:

  • 0x0DFB38D2 у шістнадцятковому форматі;
  • 0b00001101111110110011100011010010 у двійковому форматі.

Розглянемо таблицю нижче для розуміння формату big endian:

Навпаки, формат little endian зберігає найменш значущий байт першим, що є протилежним до інтуїтивного порядку:

Як видно, наше число у форматі little endian виглядає так:

  • 0xD238FB0D у шістнадцятковому вигляді;

  • 0b11010010001110001111101100001101 у двійковому вигляді.

Повертаємось до заголовка блоку

Підсумовуючи, заголовок має рівно 80 байт і містить шість полів даних, кожне з яких знаходиться у форматі little endian. Тепер розглянемо заголовок блоку 645536:

Оскільки заголовок блоку займає рівно 80 байтів, це становить рівно 160 шістнадцяткових цифр (кожен байт відповідає 2 шістнадцятковим цифрам). Наприклад, поле version займає 4 байти, тобто 8 шістнадцяткових цифр.

Ось детальна інформація про цей блок в експлорері:

Поля тут показані у форматі big endian. Розглянемо, наприклад, поле bits та порівняймо його з представленням у заголовку блоку. Його шістнадцяткове представлення у форматі big endian: 0x171007ea:

Якщо перетворити його у формат little endian, воно виглядатиме так:

Як бачите, саме це і міститься у заголовку блоку.

1. Що означає «ендіанність» у контексті блокчейну та комп’ютерних систем?

2. Відповідність компонентів блоку їхнім визначенням.

question mark

Що означає «ендіанність» у контексті блокчейну та комп’ютерних систем?

Select the correct answer

question-icon

Відповідність компонентів блоку їхнім визначенням.

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:

Натисніть або перетягніть елементи та заповніть пропуски

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3
some-alt