Block Structure

Introduction

A block is the primary data structure by which network nodes communicate information about the state of the Casper Network. We briefly describe here the format of this data structure.

Data fields

A block consists of the following:

  • a block_hash

  • a header

  • a body

Each of these fields is detailed in the subsequent sections.

block_hash

The block_hash is the blake2b256 hash of the header.

Body

The block body contains an ordered list of DeployHashes which refer to deploys, and an ordered list of DeployHashes for native transfers (which are specialized deploys that only transfer token between accounts). All deploys, including a specialization such as native transfer, can be broadly categorized as some unit of work that, when executed and committed, affect change to global state Global State. It should be noted that a valid block may contain no deploys and / or native transfers.

The block body also contains the public key of the validator that proposed the block.

Refer to the Deploy Serialization Standard for additional information on deploys and how they are serialized. Refer to Block Serialization Standard for how blocks are serialized.