Hyperledger fabric Hyperledger Fabric Go SDK:如何解析块

Hyperledger fabric Hyperledger Fabric Go SDK:如何解析块,hyperledger-fabric,hyperledger,chaincode,Hyperledger Fabric,Hyperledger,Chaincode,我正在使用Hyperledger Golang SDK实现一个客户端来处理分类账。我的应用程序依赖于发送的事件,但是,我希望使用BlockEvents,这样我就可以确保给定的数据已经写入分类账,而不是链码事件。不幸的是,关于这类事件的文档非常有限。我使用func(c*客户端)RegisterBlockEvent()…注册了BlockEvents,并获得了BlockEvent响应,其中每个响应中都引用了Block结构。块结构如下所示: type Block struct { Header

我正在使用Hyperledger Golang SDK实现一个客户端来处理分类账。我的应用程序依赖于发送的事件,但是,我希望使用BlockEvents,这样我就可以确保给定的数据已经写入分类账,而不是链码事件。不幸的是,关于这类事件的文档非常有限。我使用
func(c*客户端)RegisterBlockEvent()…
注册了BlockEvents,并获得了
BlockEvent
响应,其中每个响应中都引用了
Block
结构。块结构如下所示:

type Block struct {
    Header               *BlockHeader   `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
    Data                 *BlockData     `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
    Metadata             *BlockMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
    XXX_NoUnkeyedLiteral struct{}       `json:"-"`
    XXX_unrecognized     []byte         `json:"-"`
    XXX_sizecache        int32          `json:"-"`
}
我可以导航到
BlockData

type BlockData struct {
    Data                 [][]byte `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

然而,在这一点上,我迷失了方向,因为只有一个字节数组的原始数组作为数据。我想根据一个特定的资产创建事件进行分析,并需要解析块数据以搜索数据。此数据使用什么结构或结构?我假设每个数组项都代表一个事务,但如果没有映射到它的结构,解析将非常困难。

使用protolator编写函数ParseBlock

//导入“github.com/hyperledger/fabric sdk go/pkg/util/protolator”
func ParseBlock(block*common.block){
如果错误:=protolator.deepmarshalljson(os.Stdout,block);错误!=nil{
log.Fatalln(“deepmarshalljson err:,err”)
}
}