Hyperledger fabric 如何正确解码block-listener.go示例中的数据?

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

我正在使用块侦听器侦听一个通道中的事务,以在另一个通道中发送通知。但我不知道如何解码打印示例的数据。

不100%确定解码数据是什么意思,[block lister.go][1]的以下块负责为您打印事务:

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)