Hyperledger fabric 如何正确解码block-listener.go示例中的数据?
我正在使用块侦听器侦听一个通道中的事务,以在另一个通道中发送通知。但我不知道如何解码打印示例的数据。不100%确定解码数据是什么意思,[block lister.go][1]的以下块负责为您打印事务:Hyperledger fabric 如何正确解码block-listener.go示例中的数据?,hyperledger-fabric,Hyperledger Fabric,我正在使用块侦听器侦听一个通道中的事务,以在另一个通道中发送通知。但我不知道如何解码打印示例的数据。不100%确定解码数据是什么意思,[block lister.go][1]的以下块负责为您打印事务: for { select { case b := <-a.notfy: fmt.Println("") fmt.Println("") fmt.Println("Received block") fmt.Prin
for {
select {
case b := <-a.notfy:
fmt.Println("")
fmt.Println("")
fmt.Println("Received block")
fmt.Println("--------------")
txsFltr := util.TxValidationFlags(b.Block.Metadata.Metadata[common.BlockMetadataIndex_TRANSACTIONS_FILTER])
for i, r := range b.Block.Data.Data {
tx, _ := getTxPayload(r)
if tx != nil {
chdr, err := utils.UnmarshalChannelHeader(tx.Header.ChannelHeader)
if err != nil {
fmt.Print("Error extracting channel header\n")
return
}
if txsFltr.IsInvalid(i) {
fmt.Println("")
fmt.Println("")
fmt.Printf("Received invalid transaction from channel '%s'\n", chdr.ChannelId)
fmt.Println("--------------")
fmt.Printf("Transaction invalid: TxID: %s\n", chdr.TxId)
} else {
fmt.Printf("Received transaction from channel '%s': \n\t[%v]\n", chdr.ChannelId, tx)
if event, err := getChainCodeEvents(r); err == nil {
if len(chaincodeID) != 0 && event.ChaincodeId == chaincodeID {
fmt.Println("")
fmt.Println("")
fmt.Printf("Received chaincode event from channel '%s'\n", chdr.ChannelId)
fmt.Println("------------------------")
fmt.Printf("Chaincode Event:%+v\n", event)
}
}
}
}
}
}
}
protolator.DeepMarshalJSON(os.Stdout, t.Block)