Hyperledger fabric Hyperledger Fabric Go SDK:如何解析块
我正在使用Hyperledger Golang SDK实现一个客户端来处理分类账。我的应用程序依赖于发送的事件,但是,我希望使用BlockEvents,这样我就可以确保给定的数据已经写入分类账,而不是链码事件。不幸的是,关于这类事件的文档非常有限。我使用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
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”)
}
}