1

如何计算超级账本结构的默克尔根?我很难在 Fabric 中找到 merkle 根。

区块头包含 number、prefix_hash、data_hash。以上三个相关数据中的任何一个与默克尔根有关吗?

或者我可以手动计算默克尔根吗?

当我将数据提交到分类帐时,我已经对我使用的数据进行了哈希处理。但是在块头中找不到它...

如何计算超级账本结构的默克尔根?

4

1 回答 1

4

Hyperledger Fabric 不会在区块头中跟踪世界状态的散列。相反,哈希链是在块内容上形成的。

您将在块头中找到的两个字段是data_hashprevious_block_hash

data_hash是块数据部分中交易字节串联的哈希值。

previous_block_hash是前一个区块头的哈希值。块头的散列是通过将内容转换为 ASN1 来计算的,然后散列一个编组的表示。

您可以在此处具体查看 Fabric 组件如何实现其散列:https ://github.com/hyperledger/fabric/blob/a5bd17f9ec21241c324f453f0ded3d045bd28ff3/protoutil/blockutils.go#L38-L79

于 2019-11-07T06:12:39.257 回答