Ich versuche, einen Hyperledger-Chaincode zu entwerfen, auf den über eine Web-API zugegriffen wird, die JSON-Objekte an den Code übergibt. Wenn ich jedoch eine Methode aufrufen, kann ich tatsächlich keine Werte an den Benutzer in der JSON-Antwort zurückgeben.Wie Werte in Invoke-JSON-Antwort zurückgegeben werden
Zum Beispiel, hier einige Codebeispiel:
func (t *TLCChaincode) Invoke(stub *shim.ChaincodeStub, function string, args []string) ([]byte, error) {
//Do some stuff
return []byte("Some string"), nil
}
Und einige Beispielcode einen Fehler für die Rückgabe
func (t *TLCChaincode) Invoke(stub *shim.ChaincodeStub, function string, args []string) ([]byte, error) {
//Try to do some stuff
//Get some sort of error
return nil, errors.New("someError")
}
jedoch diese beiden eine Meldung wie diese zurückgeben, mit der Nachricht immer sein eine zufällige Zeichenkette wie unten (ich vermute einen Hash von irgendeiner Art):
{
"jsonrpc": "2.0",
"result": {
"status": "OK",
"message": "1e1123e3-b484-4120-a28e-c3a8db384557"
},
"id": 11
}
As Sie sehen, diese Antwort enthält weder die Antwort, die ich zurückgegeben habe (wie im ersten Fall), noch den Fehler, den ich zurückgegeben habe (im zweiten Fall). Wie gehe ich vor, um die zurückgegebenen Bytes oder den zurückgegebenen Fehler in den zurückgegebenen JSON zu bekommen?
Bearbeiten: Bitte beachten Sie, dass, wenn ich eine Aufrufmethode von einem anderen Chaincode aufrufen, es die richtigen Rückgabewerte erhält. Nur wenn es an den Benutzer zurückgegeben wird, funktioniert es nicht ordnungsgemäß.
Nun, zumindest jetzt eigentlich verstehe ich, warum es nicht so, wie ich erwartet funktioniert. Wissen Sie, wie ich den Status der Aufrufaufrufe mit einem Abfrageaufruf überprüfen würde? Es ist kaum ideal, aber ich könnte wahrscheinlich macht es funktionieren. –