# Бинарный формат блока
Подробнее о блоке.
Блоки хранятся на блокчейне в бинарном формате (байтовом представлении). Расширения ноды, в частности gRPC-сервер, могут работать непосредственно с данными в бинарном формате.
# Версия 5
Бинарный формат блока версии 5 соответствует protobuf-схеме block.proto. См. Protocol Buffers Developer Guide.
Версия 5 появилась с момента активации фичи № 15 “Ride V4, VRF, Protobuf, Failed transactions”.
message Block {
message Header {
message ChallengedHeader {
int64 base_target = 1;
bytes generation_signature = 2;
repeated uint32 feature_votes = 3;
int64 timestamp = 4;
bytes generator = 5;
int64 reward_vote = 6;
bytes state_hash = 7;
bytes header_signature = 8;
}
int32 chain_id = 1;
bytes reference = 2;
int64 base_target = 3;
bytes generation_signature = 4;
repeated uint32 feature_votes = 5;
int64 timestamp = 6;
int32 version = 7;
bytes generator = 8;
int64 reward_vote = 9;
bytes transactions_root = 10;
bytes state_hash = 11;
ChallengedHeader challenged_header = 12;
}
Header header = 1;
bytes signature = 2;
repeated SignedTransaction transactions = 3;
}
| Поле | Описание |
|---|---|
| chain_id | Байт сети |
| reference | • В первом блоке версии 5, то есть на высоте активации фичи № 15 “Ride V4, VRF, Protobuf, Failed transactions” — signature предыдущего блока• В последующих блоках: хеш BLAKE2b-256 заголовка предыдущего блока |
| base_target | Базовая цель — переменная, используемая в алгоритме генерации блоков |
| generation_signature | Подпись генерирования — переменная, используемая в алгоритме генерации блоков (64 байта) |
| feature_votes | Список фич, за которые голосует генератор блока, см. раздел Фичи |
| timestamp | Временная метка блока: Unix-время в миллисекундах |
| version | Версия блока: 5 |
| generator | Открытый ключ аккаунта генератора блока (32 байта) |
| reward_vote | Размер вознаграждения за блок, за который голосует генератор блока. Значение -1 означает, что генератор блока голосует за текущий размер вознаграждения |
| transactions_root | Корневой хеш транзакций блока (32 байта) |
| signature | Подпись заголовка блока (64 байта) |
| transactions | Для каждой транзакции: • Тело транзакции — до 165 487 байт • Подтверждения ( proofs) — до 531 байта.См. раздел Бинарный формат транзакции |
| state_hash | Хеш изменений состояния блокчейна, порожденных транзакциями блока. Подробнее в разделе Waves 1.5: легкая нода. Поле доступно с момента активации фичи № 22 “Light Node” |
| challenged_header | Поля заголовка оспоренного блока, в случае если данный блок оспаривает другой. Подробнее в разделе Waves 1.5: легкая нода. Поле доступно с момента активации фичи № 22 “Light Node” |
# Версия 4
| Порядковый номер поля | Поле | Тип поля | Размер поля в байтах | Комментарии |
|---|---|---|---|---|
| 1 | Версия блока | Byte | 1 | Значение равно 4 |
| 2 | Временная метка блока | Long | 8 | Unix-время в миллисекундах |
| 3 | Подпись предыдущего блока | Array[Byte] | 64 | |
| 4 | Базовая цель | Long | 8 | |
| 5 | Подпись генерирования | Array[Byte] | 32 | |
| 6 | Количество транзакций в блоке | Integer | 4 | |
| 7.1 | Транзакция 1 | Array[Byte] | Тело транзакции — до 165 996 байт Подтверждения ( proofs) — до 531 байта | Байты первой транзакции в бинарном формате |
| 7.2 | Транзакция 2 | Array[Byte] | Тело транзакции — до 165 996 байт Подтверждения ( proofs) — до 531 байта | Байты второй транзакции в бинарном формате |
| ... | ... | ... | ... | ... |
| 7.[N] | Транзакция N | Array[Byte] | Тело транзакции — до 165 996 байт Подтверждения ( proofs) — до 531 байта | Байты N-й транзакции в бинарном формате |
| 8 | Количество фич, за которые голосует генератор блока | 4 | Integer | |
| 9.1 | Фича 1 | 2 | Short | |
| ... | ... | ... | ... | ... |
| 9.[M] | Фича M | 2 | Short | |
| 10 | Размер вознаграждения за блок, за который голосует генератор блока | 8 | Long | Значение -1 означает, что генератор блока голосует за текущий размер вознаграждения |
| 11 | Открытый ключ аккаунта генератора блока | 32 | Array[Byte] | |
| 12 | Подпись блока | 64 | Array[Byte] |
# Версия 3
| Порядковый номер поля | Поле | Тип поля | Размер поля в байтах | Комментарии |
|---|---|---|---|---|
| 1 | Версия блока | Byte | 1 | Значение равно 3 |
| 2 | Временная метка блока | Long | 8 | Unix-время в миллисекундах |
| 3 | Подпись предыдущего блока | Array[Byte] | 64 | |
| 4 | Базовая цель | Long | 8 | |
| 5 | Подпись генерирования | Array[Byte] | 32 | |
| 6 | Количество транзакций в блоке | Integer | 4 | |
| 7.1 | Транзакция 1 | Array[Byte] | Тело транзакции — до 165 996 байт Подтверждения ( proofs) — до 531 байта | Байты первой транзакции в бинарном формате |
| 7.2 | Транзакция 2 | Array[Byte] | Тело транзакции — до 165 996 байт Подтверждения ( proofs) — до 531 байта | Байты второй транзакции в бинарном формате |
| ... | ... | ... | ... | ... |
| 7.[N] | Транзакция N | Array[Byte] | Тело транзакции — до 165 996 байт Подтверждения ( proofs) — до 531 байта | Байты N-й транзакции в бинарном формате |
| 8 | Открытый ключ аккаунта генератора блока | Array[Byte] | 32 | |
| 9 | Подпись блока | Array[Byte] | 64 |