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

Nachdem Ihr Chaincode-Projekt in einem lokalen Netzwerk ausgeführt wurde, können Sie es testen.

Blockchain App Builder enthält einen integrierten Assistenten, der Sie beim Aufrufen oder Abfragen Ihres Chaincodes unterstützt.

  1. 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 ist bereits ausgewählt. Stellen Sie sicher, dass die Zielumgebung auf Lokale Umgebung gesetzt ist, sodass der Kanal standardmäßig den einzigen verfügbaren Kanal verwendet.
  2. Wählen Sie im Feld Funktion eine Methode aus der Dropdown-Liste aus. Jede Methode, die im Chaincode verfügbar ist, wird aufgelistet.
  3. Klicken Sie im Feld Funktionsparameter auf die Schaltfläche Weitere Aktionen. Dadurch wird ein Fenster geöffnet, in dem die verfügbaren Eigenschaften für die ausgewählte Methode angezeigt werden. Geben Sie die Eigenschaften ein, und klicken Sie für alle nicht obligatorischen Eigenschaften, die beim Aufruf der Methode nicht weitergeleitet werden sollen, auf Auslassen. Klicken Sie auf Speichern.
  4. 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 Weitere Aktionen, um diese Ausgabe formatiert anzuzeigen.

Um die gerade ausgeführte Methode und die Parameter zu speichern, klicken Sie auf Speichern, und geben Sie einen Namen und eine Beschreibung ein. Die Funktion 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, mit denen die Methoden geändert werden, wählen Sie das Symbol Neu laden oben im Bereich Chaincode ausführen aus. Die Änderung wird dann in der Dropdown-Liste Funktion wiedergegeben.

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. Weitere Informationen zum Testen über die Befehlszeile finden Sie unter 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 besteht keine Notwendigkeit, das lokale Netzwerk wieder herunterzufahren oder hochzufahren. Alle Projekte werden für jede Änderung automatisch kompiliert und bereitgestellt.

Lebenszyklusvorgänge in einem Remote-Oracle Blockchain Platform-Netzwerk testen

Nachdem Ihr Chaincode-Projekt erfolgreich in Ihrem Remote-Oracle Blockchain Platform-Netzwerk bereitgestellt wurde, können Sie es testen.

Sie testen Chaincode, der in einem Remote-Netzwerk von Oracle Blockchain Platform ausgeführt wird, ähnlich wie er in einem lokalen Netzwerk getestet wird, wie unter Test Your Chaincode in einem lokalen Hyperledger Fabric Network beschrieben.

Sie können dieselben Befehle verwenden, um alle Methodentransaktionen in einem Remote-Netzwerk von Oracle Blockchain Platform Cloud oder Enterprise Edition abzuschließen. Alle im lokalen Netzwerk unterstützten Befehle werden 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.

Spezifikationsdatei:
customMethods:
    - executeQuery
    - "fetchRawMaterial(supplierid: string, rawMaterialSupply: number)"
    - "getRawMaterialFromSupplier(manufacturerId: string, supplierld: string, rawMaterialSupply: number)"
    - "createProducts(manufacturerId: string, rawMaterialConsumed: number, productsCreated: number)"
    - "sendProductsToDistribution()"
Controllerdatei:
**
*
* 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. Sie müssen die Oracle Blockchain Platform-Umgebung auswählen, die Sie bei der Ausführung der Abfragen als Zielumgebung erstellt haben.

Beispiel:
  1. Wählen Sie im Bereich Chaincode-Details die Option Ausführen aus. Der Chaincode-Name, die Zielumgebung und der Kanal wurden bereits im Deployment-Schritt angegeben.
  2. Wählen Sie im Feld Funktionsname aus der Dropdown-Liste die Option executeQuery aus.
  3. Klicken Sie im Feld Funktionsparameter auf 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.
  4. Klicken Sie auf Abfrage.
Das Fenster Ausgabe wird geöffnet und zeigt die ausgeführte Abfrage und das Ergebnis an.
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 macOS und Linux sowie für Microsoft Windows zu generieren.

  1. Blenden Sie das Projekt im Bereich Chaincodes ein.
  2. Klicken Sie mit der rechten Maustaste auf Abfragen.
  3. 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.