Blocks

Block header

Field Type Description
ChainID []byte identifier of chain
PrevBlockHash []byte hash of previous block
BlockNo uint64 height of block
Timestamp int64 block timestamp
BlocksRootHash []byte root hash of State SMT(sparse merkle tree)
TxsRootHash []byte Merkle root of transactions
ReceiptsRootHash []byte Merkle root of transaction receipts
Confirms uint64 indicates how many block is confirmed by block in DPOS consensus
PubKey []byte public key of the block producer (BP)
CoinbaseAccount []byte the account address to which block reward is given
Sign []byte BP’s Signature for block header

ChainID

It is used to prevent the wrong block transmission from other chains.

Field Type Description
Version int32 version number of chain
PublicNet bool true if public net
MainNet bool true if main net
CoinbaseFee string Fee consumed per tx. Fixed value
Magic string Magic string, arbitrarily chosen by each blockchain
Consensus string dpos or sbp

Version

Version is used to identify when the block format changes or when the function of the chain changes.

PublicNet

Differentiate between public and private networks.

MainNet

Differentiate between main net and other test net or other use net.

CoinbaseFee

CoinbaseFee is used to set the peak per Tx.

Magic

Magic can be considered as a name of a blockchain. The two blockchains with different magic strings reject each other’s blocks (they are seperate, indenpendent blockchains).

Consensus

Specify the concensus method name used in the chain.

Block body

Field Type Description
Txs []Tx Transactions