我试图读取结构产生的blockfile_00000,它位于对等节点的目录/ var / hyperledger / production / ledgersData / chains / chains / mychannel中。
但是我无法通过以下方法读取它:
configtxgen -profile TwoOrgsChannel -inspectBlock ./channel-artifacts/blockfile_000000
错误是
[common/tools/configtxgen] main -> CRIT 004 Error on inspectBlock: Could not read block ./channel-artifacts/blockfile_000000
使用confitxlator
configtxlator proto_decode --input ./channel-artifacts/blockfile_000000 --type common.Block
错误是
configtxlator: error: Error decoding: error unmarshaling: proto: can't skip unknown wire type 6 for common.Block
我知道块文件实际上是块,它是块的集合,如何处理?
configtxlator version
configtxlator:
Version: 1.2.0
Commit SHA: f6e72eb
Go version: go1.10
OS/Arch: linux/amd64
任何帮助将不胜感激。
我使用docker exec命令进入对等节点,并通过对等通道获取获取阻塞。然后,通过configtxlator读取该块。但是如何读取交易信息。
零件日志为(块6):
"header": {
"data_hash": "kVFRQLFjY7+6l6QsL+jOgt5ICoCUlRG4VedgmBXv/mE=",
"number": "6",
"previous_hash": "GQ4w7x7MQB+Jvsa3neJcTNdU7aXdKVHySA7Va3SktOs="
},
答案 0 :(得分:1)
有些API可用于查询任何给定通道的块:
GetChainInfo
返回给定通道的当前块高度
GetBlockByNumber
按数字返回单个块(您可以从GetChainInfo API那里获得最新的块)
所有SDK均具有调用这些API的方法
答案 1 :(得分:0)
configtxgen和configtxlator分别用于生成配置事务并将配置事务转换为可读格式。配置事务包括创建通道,更新通道中的锚点对等点,设置通道的读取器/写入器等。它们不适用于存储在blockfile_xxx中的常规事务。
您可以使用Hyperledger Explorer查看块数据。