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

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

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

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

Little Endian та Big Endian

Спочатку потрібно зрозуміти, що таке порядок байтів (endianness).

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

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

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

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

Оскільки комп'ютери зберігають цілі числа, використовуючи цілу кількість байтів, і кожні 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 і порівняємо його з представленням у заголовку блоку. Його шістнадцяткове представлення — 0x171007ea у форматі big endian:

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

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

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

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

question mark

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

Виберіть правильну відповідь

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:

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

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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