Hyperledger Fabric:关于资产查询的ENDORSEMENT_MISMATCH

时间:2019-05-24 17:38:12

标签: hyperledger-fabric hyperledger chaincode

似乎我误解了Hyperledger Fabric如何处理查询。我目前正在使用fabric-go-sdk从分类帐中查询资产,例如

asset, err := client.Query(channel.Request{ChaincodeID: someCCname, Fcn: "query", Args: [][]byte{[]byte(someID)}})

当系统处于负载状态(许多与查询无关的新事务)时,有时会收到以下错误消息:

  

背书验证失败:背书人客户端状态码:(3)   ENDORSEMENT_MISMATCH。说明:没有ProposalResponsePayloads   匹配。

如果仅查询数据,为什么要背书?对我来说,错误消息似乎表明多个对等方对查询的回答不同。这是否意味着某些对等方已经将资产抵押到分类帐中,而其他同等方却没有将其分类? 值得注意的是,查询是在资产创建后不久运行的,并且不一致。

查询链码非常简单明了:

func (c *TestChaincode) query(stub shim.ChaincodeStubInterface, args []string) pb.Response {
    data, err := stub.GetState(args[0])
    if err != nil {
        return shim.Error(err)
    }
    if data== nil {
        return shim.Error(err)
    }
    return shim.Success(data)
}

0 个答案:

没有答案