Rop*_*per 5 hyperledger hyperledger-fabric chaincode
似乎我误解了Hyperledger Fabric如何处理查询。我目前正在使用fabric-go-sdk从分类帐中查询资产,例如
asset, err := client.Query(channel.Request{ChaincodeID: someCCname, Fcn: "query", Args: [][]byte{[]byte(someID)}})
Run Code Online (Sandbox Code Playgroud)
当我的系统处于负载状态(许多与查询无关的新事务)时,有时会出现以下错误消息:
背书验证失败:背书者客户端状态代码:(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)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
124 次 |
最近记录: |