【问题标题】:How can I decode the block of hyperledger fabric?我如何解码超级账本结构块?
【发布时间】:2023-02-21 19:23:47
【问题描述】:

我通过 fabric-samples 中的 test-network.sh 建立了一个网络。 我使用命令

docker cp a4c:/var/hyperledger/production/ledgersData/chains/chains/mychannel/blockfile_000000 .

将 peer 中的块复制到我的主机 Linux 系统。 a4cpeer0.org1.com 的容器 ID。 我想将其转换为 .json 文件。 但是也有一些问题。

我的 hyperledger fabric 版本是 2.2。 我的 configtxgen 版本是

configtxgen:
 Version: 2.3.0
 Commit SHA: ec81f3e74
 Go version: go1.14.12
 OS/Arch: linux/amd64

我的 configtxlator 版本是

configtxlator:
 Version: 2.3.0
 Commit SHA: ec81f3e74
 Go version: go1.14.12
 OS/Arch: linux/amd64

当我使用命令时

configtxgen -inspectBlock blockfile_000000 >> blockfile.json

它返回

2023-02-21 16:38:22.631 CST [common.tools.configtxgen] main -> INFO 001 Loading configuration
2023-02-21 16:38:22.631 CST [common.tools.configtxgen] doInspectBlock -> INFO 002 Inspecting block
2023-02-21 16:38:22.631 CST [common.tools.configtxgen] doInspectBlock -> INFO 003 Parsing genesis block
2023-02-21 16:38:22.631 CST [common.tools.configtxgen] main -> FATA 004 Error on inspectBlock: error unmarshaling to block: error unmarshaling Block: proto: can't skip unknown wire type 7

当我使用命令时

configtxlator proto_decode --type common.Block --input blockfile_000000 --output blockfile.json

它返回

configtxlator: error: Error decoding: error unmarshaling: proto: can't skip unknown wire type 7

但是,我可以按照我的预期解码genesis.Blockmychannel.Block

【问题讨论】:

    标签: json protocol-buffers blockchain hyperledger-fabric


    【解决方案1】:

    我不确定这里的具体问题是什么,但我建议使用与您正在使用的 Fabric 版本完全匹配的 Fabric 二进制文件版本。根据Fabric install instructions,您可以下载特定版本的二进制文件,如下所示:

    curl --location https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh | bash -s -- --fabric-version 2.2.10 binary
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      相关资源
      最近更新 更多