# Бинарный формат блока
Подробнее о блоке.
Блоки хранятся на блокчейне в бинарном формате (байтовом представлении). Расширения ноды, в частности 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 |