我如何阅读blcokfile_xxxx

时间:2018-07-07 02:40:27

标签: database hyperledger-fabric

我试图读取结构产生的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=" },

2 个答案:

答案 0 :(得分:1)

有些API可用于查询任何给定通道的块:

GetChainInfo返回给定通道的当前块高度

GetBlockByNumber按数字返回单个块(您可以从GetChainInfo API那里获得最新的块)

所有SDK均具有调用这些API的方法

答案 1 :(得分:0)

configtxgen和configtxlator分别用于生成配置事务并将配置事务转换为可读格式。配置事务包括创建通道,更新通道中的锚点对等点,设置通道的读取器/写入器等。它们不适用于存储在blockfile_xxx中的常规事务。

您可以使用Hyperledger Explorer查看块数据。