Я работаю над цепным кодом, где мне нужно прочитать данные, ранее сохраненные из другого.
Они создаются на одном канале, и я могу использовать их по отдельности для чтения и записи данных по отдельности.
Вы можете реплицировать его, используя цепной код marble
, устанавливая его с разными именами на одном и том же узле.
В одном из них (A) я реализовал invokeChaincode (B) для чтения данныххранится в B следующим образом:
func (chaincode *SimpleChaincode) queryMarblesFromAnotherChaincode(stub shim.ChaincodeStubInterface, args []string) peer.Response {
queryMarble := "queryMarble"
if len(args) != 3 {
return shim.Error("Incorrect number of arguments. Expecting 3")
}
chaincodeName := args[0]
chaincodeArgs := toChaincodeArgs(queryMarble, args[1])
chaincodeChannel := args[2]
response := stub.InvokeChaincode(chaincodeName, chaincodeArgs, chaincodeChannel)
if response.Status != shim.OK {
return shim.Error(fmt.Sprintf("Failed to query chaincode: %s", response.Payload))
}
return shim.Success(response.Payload)
}
При запуске этого метода с использованием peer chaincode invoke ..
я получаю status: 200
, но полезная нагрузка пуста.
Не могли бы вы посоветовать, что я делаю не так?