区块头定义位于libethcore\BlockHeader.h文件中,是一个非常简单的类,我们来看看它包含哪些重要数据:
-
h256 m_parentHash
父区块的hash
值,区块与区块之间的连接点 -
h256 m_sha3Uncles
叔区块的hash
值 - h256 m_stateRoot
区块状态树根的hash
值 -
h256 m_transactionsRoot
区块内交易树根的hash
值 -
h256 m_receiptsRoot
区块内交易收据树根的hash
值 -
int64_t m_number
区块高度 -
u256 m_gasLimit
区块中交易的gas
总数的上限,由挖矿者设定 -
u256 m_gasUsed
区块中所有交易所用的gas
总和,不能超过m_gasLimit
-
Address m_author
挖矿者的地址 -
u256 m_difficulty
挖矿难度
关于
Merkle Patricia Trie
的说明详见:明明白白以太坊Merkle Patricia Trie