Chaincode mit Visual Studio Code testen
Wenn Ihr Chaincode in einem Netzwerk ausgeführt wird, können Sie eine der generierten Methoden testen. Wenn Sie die executeQuery-Methode während der Chaincode-Entwicklung erstellen, können Sie außerdem SQL-reiche Abfragen ausführen, wenn Ihr Chaincode in einem Oracle Blockchain Platform-Netzwerk bereitgestellt wird.
Chaincode in einem lokalen Hyperledger Fabric-Netzwerk testen
Sobald Ihr Chaincode-Projekt in einem lokalen Netzwerk ausgeführt wird, können Sie es testen.
Blockchain App Builder enthält einen integrierten Assistenten, der Sie beim Aufrufen oder Abfragen Ihres Chaincodes unterstützt.
- Wählen Sie Ihr Chaincode-Projekt im Bereich Chaincodes aus. Wählen Sie im Bereich Chaincode-Details die Option Ausführen aus. Der Chaincode-Name sollte bereits ausgewählt sein. Stellen Sie sicher, dass die Zielumgebung auf Lokale Umgebung gesetzt ist, und dass der Kanal standardmäßig den einzigen verfügbaren Kanal darstellt.
- Wählen Sie im Feld Funktion Ihre Methode aus der Dropdown-Liste aus. Jede Methode, die im Chaincode verfügbar ist, wird aufgelistet.
- Wählen Sie im Feld Funktionsparameter die Schaltfläche Weitere Aktionen (…). Dadurch wird ein Fenster mit verfügbaren Eigenschaften für die ausgewählte Methode geöffnet. Geben Sie die Eigenschaften ein, klicken Sie auf Auslassen für alle nicht obligatorischen Eigenschaften, die beim Aufrufen der Methode nicht weitergeleitet werden sollen, und klicken Sie auf Speichern.
- Klicken Sie auf Aufrufen.
Im Konsolenfenster Ausgabe wird angezeigt, dass die Funktion aufgerufen wurde. Alternativ wird im Bereich Chaincode-Aktionen im Fenster Funktionsausgabe die Ausgabe angezeigt. Klicken Sie auf die Schaltfläche Weitere Aktionen (…), um diese Ausgabe formatiert anzuzeigen.
Wenn Sie die gerade ausgeführte Methode und die Parameter speichern möchten, können Sie auf Speichern klicken und einen Namen und eine Beschreibung dafür eingeben. Er wird in Ihrem Chaincode-Projekt im Ordner Queries gespeichert. Um es erneut zu verwenden, klicken Sie mit der rechten Maustaste darauf und wählen Öffnen aus.
Wenn Sie Änderungen an der Controllerdatei vornehmen, die diese Methoden ändern würden, wählen Sie das Symbol Neu laden oben im Bereich Chaincode ausführen aus. Die Änderung sollte jetzt in der Dropdown-Liste Funktion wiedergegeben werden.
Hinweis:
Wenn Sie den Assistenten nicht zum Testen verwenden möchten, können Sie auch die Befehlszeilentools von Blockchain App Builder im Terminal-Fenster von Visual Studio Code ausführen. Befolgen Sie die hier angegebenen Anweisungen zum Testen mit der Befehlszeile: Test Your Chaincode on a Local Hyperledger Fabric Network.Mehrere Tokenbenutzer lokal testen
Um ein Tokenprojekt mit mehreren Benutzern lokal zu testen, können Sie die Eigenschaft tokenUser verwenden, um den Aufrufer jeder Transaktion zu ändern. Jedes gerüstete Chaincode-Projekt enthält eine .ochain.json-Datei, in der Metadaten des Chaincodes gespeichert werden. Sie ändern den Aufrufer, indem Sie den Wert des Feldes tokenUser in der Datei .ochain.json aktualisieren.
{
"name": "digiCurrCC",
"description": "Chaincode package for digiCurrCC",
"chaincodeName": "digiCurrCC",
"chaincodeType": "node",
"configFileLocation": "/Users/user1/token.yml",
"appBuilderVersion": "21.2.3",
"nodeVersion": "v12.18.1",
"tokenUser": "admin"
}
Wenn ein Projekt eingerichtet wird, wird die Eigenschaft tokenUser auf den Standardbenutzer admin des lokalen Netzwerks gesetzt. Um den Aufrufer einer Transaktion zu ändern, ändern Sie die Eigenschaft tokenUser so, dass sie mit der Eigenschaft user_id übereinstimmt, die beim Erstellen des Kontos festgelegt wurde, als die Methode createAccount (TypeScript) oder CreateAccount (Go) aufgerufen wurde.
Automatische Installation und Bereitstellung nach dem Update
Wenn Sie Ihren Chaincode aktualisieren und speichern, werden die Änderungen automatisch kompiliert, installiert und bereitgestellt. Es ist nicht erforderlich, das lokale Netzwerk zu entfernen oder erneut hochzufahren. Alle Projekte werden bei jeder Änderung automatisch kompiliert und bereitgestellt.
Lebenszyklusvorgänge in einem Remote-Oracle Blockchain Platform-Netzwerk testen
Sobald Ihr Chaincode-Projekt erfolgreich in Ihrem Remote-Netzwerk von Oracle Blockchain Platform bereitgestellt wurde, können Sie es wie unter Test Your Chaincode on a Local Hyperledger Fabric Network beschrieben testen.
Sie können dieselben Aufruf- und Abfragebefehle verwenden, um alle Methodentransaktionen in einem Remote-Netzwerk von Oracle Blockchain Platform Cloud oder Enterprise Edition auszuführen. Alles, was im lokalen Netzwerk unterstützt wird, wird auch im Remote-Netzwerk unterstützt. Wählen Sie bei der Ausführung Ihrer Tests die Oracle Blockchain Platform-Instanz als Zielumgebung aus.
Tokenprojekte in einem Remote-Oracle Blockchain Platform-Netzwerk testen
Sie können Chaincode-Projekte, die mit Token arbeiten, mit Blockchain App Builder, dem REST-Proxy von Oracle Blockchain Platform oder dem Hyperledger Fabric-SDK testen.
Blockchain-App-Builder
Mit der Visual Studio Code-Erweiterung können Sie Transaktionen mit mehreren Benutzern aufrufen, um Token Chaincodes zu testen. Um mit mehreren Benutzern zu testen, ändern Sie die Autorisierungsparameter (Benutzername und Kennwort) auf der Registerkarte Umgebungen, und speichern Sie die Umgebung. Wählen Sie beim Aufrufen von Transaktionen dieselbe Umgebung aus der Dropdown-Liste, und führen Sie die Transaktion aus.
REST-Proxy für Oracle Blockchain Platform
Mit dem REST-Proxy in Oracle Blockchain Platform können Sie einen Token Chaincode in einem Remote-Oracle Blockchain Platform-Netzwerk ausführen. Verwenden Sie einen beliebigen REST-Proxyclient, wie z.B. Postman-REST-Client, um Ihr Chaincode-Projekt zu testen.
Um mehrere Benutzer zu testen, ändern Sie die Autorisierungsparameter (Benutzername und Kennwort) in Ihrem REST-Client, oder stellen Sie eine Verbindung zu einer anderen Instanz von Oracle Blockchain Platform her.
Ausführen von Berkeley DB SQL Rich Queries
Wenn Sie die Methode executeQuery während der Chaincode-Entwicklung erstellen, können Sie SQL-reiche Abfragen ausführen, wenn Ihr Chaincode in einem Oracle Blockchain Platform-Netzwerk bereitgestellt wird.
Wenn Sie executeQuery im Abschnitt customMethods der Spezifikationsdatei verwendet haben, wird eine entsprechende executeQuery-Methode im Controller erstellt.
customMethods:
- executeQuery
- "fetchRawMaterial(supplierid: string, rawMaterialSupply: number)"
- "getRawMaterialFromSupplier(manufacturerId: string, supplierld: string, rawMaterialSupply: number)"
- "createProducts(manufacturerId: string, rawMaterialConsumed: number, productsCreated: number)"
- "sendProductsToDistribution()"
**
*
* BDB sql rich queries can be executed in OBP CS/EE.
* This method can be invoked only when connected to remote OBP CS/EE network.
*
*/
@Validator(yup.string())
public async executeQuery(query: string) {
const result = await OchainController.query(query);
return result;
}Sie können diese Methode aufrufen, um SQL-reiche Berkeley DB-Abfragen im Oracle Blockchain Platform-Netzwerk auszuführen. So stellen Sie sicher, dass Sie die Oracle Blockchain Platform-Umgebung auswählen, die Sie bei der Ausführung der Abfragen als Zielumgebung erstellt haben.
- Wählen Sie im Bereich Chaincode-Details die Option Ausführen aus. Chaincode-Name, Zielumgebung und Kanal sollten bereits aus dem Deployment-Schritt vorab ausgefüllt werden.
- Wählen Sie im Feld Funktionsname aus der Dropdown-Liste die Option
executeQueryaus. - Wählen Sie im Feld Funktionsparameter die Schaltfläche Weitere Aktionen (…). Dadurch wird ein Fenster geöffnet, in dem Sie die Abfragezeichenfolge eingeben können. Geben Sie die Argumente für die Abfrage ein, und klicken Sie auf Speichern.
- Klicken Sie auf Abfrage.
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4" Die gesamte SQL-Abfrage wird im Argument ausgeführt, sodass Sie Änderungen an der Abfrage sofort vornehmen können.
CLI-Befehle aus Abfragen generieren
Wenn Sie Abfragen in einem Chaincode-Projekt in Visual Studio Code gespeichert haben, können Sie die entsprechenden CLI-Befehle automatisch generieren.
Sie müssen mindestens eine gespeicherte Abfrage in einem Chaincode-Projekt haben, um CLI-Befehle für Mac OSX und Linux sowie für Microsoft Windows zu generieren.
- Blenden Sie das Projekt im Bereich Chaincodes ein.
- Klicken Sie mit der rechten Maustaste auf Abfragen.
- Klicken Sie auf CLI-Befehle generieren.
Zwei Textdateien werden generiert und im Abschnitt Abfragen des Bereichs Chaincodes angezeigt: CLIcommandsForLinux.txt und CLIcommandsForWindows.txt. Wählen Sie den Dateinamen, um die Datei zu öffnen, und zeigen Sie die entsprechenden CLI-Befehle an.