2016-10-21 2 views
1

ich die hyperledger-Stoff-Dienst auf Bluemix bereitgestellt haben und erhalten die Anmeldeinformationen von dort sieht eine Zeile wie folgt aus:Probleme chaincode (Smart Vertrag) zu hyperledger-Stoff POST API

{"enrollId":"user_type1_0","enrollSecret":"XXXXX","group":"group1","affiliation":"0001","username":"user_type1_0","secret":"XXXXX"} 

Ich poste folgendes an den "Registrar" REST-Endpunkt:

Secret: { "enrollId": "user_type1_0", "enrollSecret": "xxxxx"}

ich erhalte diese bzw. onse:

{"OK": "Anmeldung erfolgreich für Benutzer 'user_type1_0'." }

Dann versuche ich zu dem chaincode REST-Endpunkt einiger chaincode mit POSTen folgenden zu registrieren:

QuerySpec { "JSON-RPC": "2.0", "Methode": "bereitstellen", "params": { "type": 1, "chaincodeID": { "path": "https://github.com/ibm-blockchain/learn-chaincode/finished" }, "ctorMsg": { "Funktion": "init", "args": [ "hallo dort" ] }, "secureContext": "user_type1_0_xxxxx" }, "id": 1}

Ich erhalte diese reponse:

{ "JSON-RPC": "2.0", "Fehler": { "code": -32000, "Nachricht": "Registrierung fehlt", "Daten": "Benutzer nicht angemeldet. Verwenden Sie den Endpunkt '/ registrar', um ein Sicherheitstoken zu erhalten . "}," id ": 1}

Irgendeine Idee?

Antwort

2

Fabric erwartet, dass Sie EnrolmentID als Sicherheitskontext angeben, aber Sie versuchen, "ID + Pass" zu verwenden.

Können Sie versuchen, den Befehl deploy mit einem anderen SecurityContext-Wert auszuführen?

QuerySpec { "jsonrpc": "2.0", "method": "deploy", "params": { "type": 1, "chaincodeID": { "path": "https://github.com/ibm-blockchain/learn-chaincode/finished" }, "ctorMsg": { "function": "init", "args": [ "hi there" ] }, "secureContext": "user_type1_0" }, "id": 1 }

+0

hallo es funktioniert - aber ich verstehe nicht - ich bin kein Geheimnis bietet mehr, so wie ist dieser Aufruf REST sicher dann? –

+2

Secret nur einmal für "Registrar" -Operation verwendet, um ECert zu generieren. Dann wird dieses Zertifikat verwendet, um alle Ihre Transaktionen an das Netzwerk zu signieren. SecurityContext ist notwendig, um verschiedene Benutzer zu unterscheiden und das entsprechende Zertifikat auszuwählen. Ein solcher Ansatz vereinfacht die ersten Schritte mit Fabric. Sie können NodeJS SDK verwenden, um die vollständige Kontrolle über ECert zu erhalten. –