如何计算超级账本结构中的Merkle根?

时间:2019-11-06 01:03:59

标签: hyperledger-fabric merkle-tree

我该如何计算超级账本面料的Merkle根? 我很难在Fabric中找到merkle根。

块头包含number,prefix_hash和data_hash。 以上三个相关数据中的任何一个与吗啡根有关吗?

或者我可以手动计算一个鱼尾根吗?

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

我如何计算超级账本面料的Merkle根?

1 个答案:

答案 0 :(得分:2)

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