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 während der Chaincode-Entwicklung die Methode executeQuery erstellt haben, 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, mit dem Sie Ihren Chaincode aufrufen oder abfragen können.

  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 muss bereits ausgewählt sein. Stellen Sie sicher, dass die Zielumgebung auf Lokale Umgebung gesetzt ist und dass der Kanal standardmäßig der einzige verfügbare Kanal ist.
  2. Wählen Sie im Feld Funktion die Methode aus der Dropdown-Liste aus. Jede im Chaincode verfügbare Methode wird aufgelistet.
  3. Wählen Sie im Feld Funktionsparameter die Schaltfläche Weitere Aktionen (...) aus. Dadurch wird ein Fenster mit verfügbaren Eigenschaften für die ausgewählte Methode gestartet. 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.
  4. Klicken Sie auf Aufrufen.

Im Konsolenfenster Ausgabe wird angezeigt, dass die Funktion aufgerufen wurde. Alternativ wird im Bereich Chaincodeaktionen 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 Parameter speichern möchten, können Sie auf Speichern klicken und einen Namen und eine Beschreibung eingeben. Es wird in Ihrem Chaincode-Projekt im Ordner Queries gespeichert. Um sie erneut zu verwenden, klicken Sie mit der rechten Maustaste darauf, und wählen Sie Öffnen aus.

Wenn Sie Änderungen an der Controllerdatei vornehmen, die die Methoden ändern würden, wählen Sie das Symbol Neu laden oben im Bereich Chaincodeausführung. Die Änderung sollte jetzt in der Dropdown-Liste Funktion angezeigt werden.

Hinweis:

Wenn Sie den Assistenten nicht zum Testen verwenden möchten, können Sie auch die Befehlszeilentools für Blockchain App Builder im Visual Studio Code-Fenster Terminal ausführen. Befolgen Sie die hier angegebenen Anweisungen zum Testen mit der Befehlszeile: Testen Sie Ihren Chaincode auf einem lokalen Hyperledger Fabric Network.

Mehrere Tokenbenutzer lokal testen

Um ein Tokenprojekt mit mehreren Benutzern lokal zu testen, können Sie mit der Eigenschaft tokenUser den Aufrufer jeder Transaktion ä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 gerüstet ist, 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 Aufrufen der Methode createAccount (TypeScript) oder CreateAccount (Go) festgelegt 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, ein Striping durchzuführen oder das lokale Netzwerk erneut hochzufahren. Alle Projekte werden bei jeder Ä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 wie unter Chaincode in einem lokalen Hyperledger Fabric-Netzwerk testen 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 die Oracle Blockchain Platform-Instanz als Zielumgebung aus, wenn Sie Ihre Tests ausführen.

Tokenprojekte in einem Remote-Oracle Blockchain Platform-Netzwerk testen

Sie können Chaincode-Projekte, die mit Token arbeiten, mit Blockchain App Builder, dem Oracle Blockchain Platform-REST-Proxy 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 Tests mit mehreren Benutzern durchzuführen, ä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 aus, 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 den 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.

SQL Rich Queries für Berkeley DB ausführen

Wenn Sie die Methode executeQuery während der Chaincode-Entwicklung erstellt haben, 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 im Controller eine entsprechende executeQuery-Methode 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-Rich-Abfragen in Berkeley DB im Oracle Blockchain Platform-Netzwerk auszuführen. Dadurch wird sichergestellt, dass Sie die Oracle Blockchain Platform-Umgebung auswählen, die Sie beim Ausführen 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 müssen bereits aus dem Deployment-Schritt vorab eingegeben werden.
  2. Wählen Sie im Feld Funktionsname executeQuery aus der Dropdown-Liste.
  3. Wählen Sie im Feld Funktionsparameter die Schaltfläche Weitere Aktionen (...) aus. Dadurch wird ein Fenster geöffnet, in das 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.
Im Fenster Ausgabe werden die ausgeführte Abfrage und das Ergebnis angezeigt.
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4" 

Die gesamte SQL-Abfrage wird in das Argument übernommen, sodass Sie Ihre Abfrage im Handumdrehen ändern 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 benötigen mindestens eine gespeicherte Abfrage in einem Chaincode-Projekt, um CLI-Befehle für Mac OSX 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 aus, um die Datei zu öffnen, und zeigen Sie die entsprechenden CLI-Befehle an.