2016-09-09 6 views
0

i verwendet Peer chaincode bereitstellen src Beispiel laufen gehen, ich das richtige Ergebnis bekam, dann habe ich versucht, die Java-src Beispiel enter image description herehyperledger Stoff java chaincode Fehler

enter image description here

ich ein chaincode bekam, aber wenn ich diese chaincode für die Suche verwendet wird, es hat mir gezeigt:

Error: Error querying chaincode: rpc error: code = 2 desc = "Error:Failed to launch chaincode spec(Could not get deployment transaction 
a3a350ff98660bcade4570acd507d0b380f374ea9399194b39e0301135849feb0732 - LedgerError - ResourceNotFound: ledger: resource not found)" 

i docker-Werkzeugkasten verwenden, um die envirement für hyperledger Gewebe zu schaffen.

+0

Sie bitte weitere Details hinzufügen? Führst du es im "dev" -Modus oder normalen Modus aus? Wie hast du den Peer laufen lassen? Welchen Namen geben Sie bei der Abfrage an? –

+0

Sie müssen auch '-l Java 'zur Verfügung stellen, wenn Sie es mit Java-Code –

+0

bereitstellen ja, ich habe -l Java und -u Jim verwendet, im normalen Modus.Wenn -l Java, die Init-Funktion einen Chaincode zurückgeben, aber Wenn ich den Chaincode zum Testen der Abfrage verwendet habe, zeigt es mir den Fehler und kein Ergebnis. Wenn ich die Abfragefunktion mit go src code teste, kann ich das Ergebnis erhalten. – teddy

Antwort

3

Chaincode ID wird als Hash-Code für mehrere Parameter erzeugt (Pfad + Argumente + Quellcode chaincode) , wenn Sie in der Antwort für „bereitstellen“ Befehl etwas wie diese:

{“jsonrpc":"2.0","result":{"status":"OK","message":"8d803651564981858842409c6a5c3bf3f6ea69f90a6a7bfb672c2c8c3b6eb4c48105c5807e52f1a5ffdce0e86966688019a6c4013ffca524d5896e0b9ae201c6"} 

Es bedeutet, dass Ihre Anfrage zur Bereitstellung der Transaktion wird akzeptiert. Von diesem Moment an wird Fabric versuchen, einen Container für Ihren Chaincode zu erstellen und diesen in Docker zu starten. Im Fall, dass etwas schief geht und der Behälter nicht gestartet wird, erhalten Sie die folgende Antwort erhalten:

“LedgerError - ResourceNotFound: ledger: resource not found“ for all your commands. 

In Ihrem Beispiel versuchen Sie Java chaincode in einem GO Behälter und als Ergebnis der Reaktion einzusetzen ist:

(INFO 002 Deploy result: type GOLANG chaincodeID:...) 

, was geschieht, weil Stoff keine „Sprache“ Variable verwenden, um Plattformtyp zu ermitteln (gültig für die Version, die 2016.09.09 verfügbar war)

ich eine Java-chai bereitstellen verwaltet ncode mit der folgenden REST Anfrage:

curl -XPOST -d ‘{"jsonrpc": "2.0", "method": "deploy", "params": {"type": 4,"chaincodeID": {"path": "/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/java/SimpleSample","language": "java"}, "ctorMsg": { "args": ["init", "a", "100", "b", "1000"] }},"id": 0}' http://localhost:7050/chaincode

type:4 bedeutet, dass diese chaincode Java ist und geeigneter Behälter verwendet werden soll. (Für GO sollten wir type:1 verwenden)

Beachten Sie, dass Java arbeitet derzeit mit security.enabled=false nur und mit security.enabled=true erhalten Sie die folgende Fehlermeldung angezeigt:

[dockercontroller] deployImage -> ERRO 095 Error building images: API error (500): {"message":"The Dockerfile (Dockerfile) cannot be empty"} 
+0

danke. ich versuche die Anfrage, was Sie gesagt haben, zeigt es mir: ERRO 03e Fehler beim Erstellen von Bildern: Fehler: Bildhyperledger/Fabric-javaenv: x86_64- nicht gefunden 01: 33: 12.533 [dockercontroller] deployImage -> ERRO 03f Image-Ausgabe: Schritt 1: FROM hyperledger/fabric-javaenv: x86_64- Ziehen Repository docker.io/hyperledger/fabric-javaenv aber Docker pull docker.io/hyperledger/fabric-javaenv ist Useness. – teddy

+0

Es ist möglich, dass Ihre Umgebung veraltet ist. Können Sie versuchen, die neueste Version von Gerrit herunterzuladen und Peer- und Membersrvc-Dienste neu zu erstellen? –

+0

ok, ich werde versuchen. Danke. – teddy

Verwandte Themen