Block header

From JaxNetwork Wiki
Jump to navigation Jump to search

According to JaxNet protocol, blocks consist of two parts: block header and block body. This design improves the throughput of information across the network. Typically the block header contains the most important information about the block. It includes the reference to the body of the block and the commitment of previous block headers in the chain. Block headers are often used to set the order of blocks in the chain and validate the block body data.

Usually, the data in block headers is called consensus data and data in the block body is called application data.

Beacon chain block header

BC header structure
Field Description Type Size
version Version of the block. This is not the same as the protocol version. BVersion / int32 4 bytes
prevBlock Commitment of the previous block headers in the Beacon chain. Hash 32 bytes
merkleRoot Reference to all transactions of the block in the form of Merkle tree root. Hash 32 bytes
Bits Difficulty target for the block uint32 4 bytes
mergeMiningRoot Root of the Merge-mining Merkle tree (MMMT) Hash 32 bytes
MMTshardCount The count of shard slots in MMMT. It's used to set the size of MMMT. uint32 4 bytes
treeEncoding Encoding of the Merge-mining tree []uint8 0+ bytes
K It's inflation-fix coefficient K for current mining epoch uint32 4 bytes
voteK It's a proposed inflation-fix coefficient K for mining epoch after the next one uint32 4 bytes
btc_Aux_header Bitcoin auxiliary header used in merged mining BTCBlockAux 80+ bytes
btc_Aux_coinbase Coinbase transaction of the bitcoin auxiliary block-candidate Tx 32+ bytes
btc_Aux_merkle_path Merkle proof of the coinbase transaction of the bitcoin auxiliary block-candidate []hash 0+ bytes
Total size 200+ bytes
Edit

Shard chain block header

SC header structure
Field Description Type Size
MMRroot Commitment of previous blocks in the shard chain Hash 32 bytes
merkleRoot Merkle tree reference to hash of all transactions for the block Hash 32 bytes
Bits Difficulty target for the block uint32 4 bytes
BCHeaderContainer BeaconHeader
CoinbaseAux
Total size 76 bytes