Block header

From JaxNetwork Wiki
Revision as of 14:19, 19 May 2022 by ForgetfulFunctor (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 / uint32 4 bytes
prevBlock Hash of the previous block header in the Beacon chain. Hash 32 bytes
merkleRoot Merkle tree reference to hash of all transactions for the block Hash 32 bytes
timestamp Time the block was created. This is, unfortunately, encoded as a uint32 on the wire and therefore is limited to 2106. time / uint32 4 bytes
Bits Difficulty target for the block uint32 4 bytes
mergeMiningRoot Root of Merge-mining tree Hash 32 bytes
MMTshardCount uint32 4 bytes
mergeMiningNumber 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
btcAux It's a container with the bitcoin auxiliary header, required for merge mining BTCBlockAux 80+ bytes
Nonce This field is for stand-along version of the protocol uint32 4 bytes
Total size 200+ bytes

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

See Also

References