github.com/Bytom/bytom@v1.1.2-0.20210127130405-ae40204c0b09/protocol/bc/blockheader.go (about) 1 package bc 2 3 import "io" 4 5 // BlockHeader contains the header information for a blockchain 6 // block. It satisfies the Entry interface. 7 8 func (BlockHeader) typ() string { return "blockheader" } 9 func (bh *BlockHeader) writeForHash(w io.Writer) { 10 mustWriteForHash(w, bh.Version) 11 mustWriteForHash(w, bh.Height) 12 mustWriteForHash(w, bh.PreviousBlockId) 13 mustWriteForHash(w, bh.Timestamp) 14 mustWriteForHash(w, bh.TransactionsRoot) 15 mustWriteForHash(w, bh.TransactionStatusHash) 16 mustWriteForHash(w, bh.Bits) 17 mustWriteForHash(w, bh.Nonce) 18 } 19 20 // NewBlockHeader creates a new BlockHeader and populates 21 // its body. 22 func NewBlockHeader(version, height uint64, previousBlockID *Hash, timestamp uint64, transactionsRoot, transactionStatusHash *Hash, nonce, bits uint64) *BlockHeader { 23 return &BlockHeader{ 24 Version: version, 25 Height: height, 26 PreviousBlockId: previousBlockID, 27 Timestamp: timestamp, 28 TransactionsRoot: transactionsRoot, 29 TransactionStatusHash: transactionStatusHash, 30 TransactionStatus: nil, 31 Bits: bits, 32 Nonce: nonce, 33 } 34 }