hyperledger-fabric - 如何计算超级账本结构中的默克尔根?
问题描述
如何计算超级账本结构的默克尔根?我很难在 Fabric 中找到 merkle 根。
区块头包含 number、prefix_hash、data_hash。以上三个相关数据中的任何一个与默克尔根有关吗?
或者我可以手动计算默克尔根吗?
当我将数据提交到分类帐时,我已经对我使用的数据进行了哈希处理。但是在块头中找不到它...
如何计算超级账本结构的默克尔根?
解决方案
Hyperledger Fabric 不会在区块头中跟踪世界状态的散列。相反,哈希链是在块内容上形成的。
您将在块头中找到的两个字段是data_hash
和previous_block_hash
。
data_hash
是块数据部分中交易字节串联的哈希值。
previous_block_hash
是前一个区块头的哈希值。块头的散列是通过将内容转换为 ASN1 来计算的,然后散列一个编组的表示。
您可以在此处具体查看 Fabric 组件如何实现其散列:https ://github.com/hyperledger/fabric/blob/a5bd17f9ec21241c324f453f0ded3d045bd28ff3/protoutil/blockutils.go#L38-L79
推荐阅读
- node.js - 使用 IIS 时,Passport js 认为每个人都是同一个用户,使用反向代理时不路由
- assembly - 当我们只知道操作码的十六进制时如何编码指令
- php - 确保使用特定参数调用 url
- c# - 将一串数字转换为字节数组,将显示值保持为 2 位
- r - 如何使用 tidyverse 和 base R 将 R 中的 g 转换为 mm 和 ml 转换为 mg 的单位?
- python - 如何绘制随机森林模型的回归曲线
- java - Spring Boot 项目的 html 网站中的图片未显示在 localhost:8080 上
- c# - 使用 OpenXML 将具有分层编号的 Docx 转换为 XML
- sql - 列标题中的行值
- android - getLastLocation() 从哪里获取位置坐标?