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 werden. Stellen Sie sicher, dass die Zielumgebung auf Lokale Umgebung gesetzt ist und der Kanal standardmäßig den einzigen verfügbaren Kanal verwendet.
  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 (...). Dadurch wird ein Fenster mit verfügbaren Eigenschaften für die ausgewählte Methode geöffnet. Geben Sie die Eigenschaften ein, klicken Sie bei allen nicht obligatorischen Eigenschaften, die Sie beim Aufrufen der Methode nicht weiterleiten möchten, auf Omit, und klicken Sie auf Save.
  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 die Schaltfläche Weitere Aktionen (...), um diese Ausgabe formatiert anzuzeigen.

Wenn Sie die gerade ausgeführte Methode und die soeben ausgeführten Parameter speichern möchten, können Sie auf Speichern klicken und einen Namen und eine Beschreibung dafür eingeben. Sie 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 Controller-Datei vornehmen, mit denen die Methoden geändert würden, wählen Sie das Symbol Erneut laden oben im Bereich Chaincode ausführen. Die Änderung sollte jetzt in der Dropdown-Liste Funktion widergespiegelt werden.

Hinweis:

Wenn Sie den Assistenten nicht zum Testen verwenden möchten, können Sie auch die Befehlszeilentools von Blockchain App Builder im Visual Studio Code-Fenster Terminal 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 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 mit Gerüst versehen 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 Erstellen des Accounts 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, das lokale Netzwerk zu entfernen oder wieder 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-Oracle Blockchain Platform-Netzwerk bereitgestellt wurde, können Sie es testen, wie unter Kettencode in einem lokalen Hyperledger Fabric-Netzwerk testen beschrieben.

Sie können dieselben Aufruf- und Abfragebefehle verwenden, um alle Methodentransaktionen in einem Remotenetzwerk von Oracle Blockchain Platform Cloud oder Enterprise Edition auszuführen. Alles, was im lokalen Netzwerk unterstützt wird, wird auch im Remotenetzwerk unterstützt. Wählen Sie bei der Ausführung der 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-Kettencodes zu testen. Um mit mehreren Benutzern zu testen, ändern Sie die Autorisierungsparameter (Benutzername und Kennwort) auf der Registerkarte Umgebungen, und speichern Sie dann 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

Sie können den REST-Proxy in Oracle Blockchain Platform verwenden, um Ihren Token Chaincode in einem Remote-Oracle Blockchain Platform-Netzwerk auszufü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-Abfragen für Berkeley DB ausführen

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. Dabei müssen 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 sollten bereits aus dem Deployment-Schritt ausgefüllt werden.
  2. Wählen Sie im Feld Funktionsname die Option executeQuery in der Dropdown-Liste.
  3. 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.
  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 im Argument verwendet, sodass Sie die Abfrage sofort ändern können.

CLI-Befehle aus Abfragen generieren

Wenn Sie Abfragen in einem Chaincode-Projekt in Visual Studio Code gespeichert haben, können Sie automatisch die entsprechenden CLI-Befehle generieren.

Sie müssen mindestens eine gespeicherte Abfrage in einem Chaincode-Projekt haben, um CLI-Befehle für Mac OSX und Linux und 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.

Im Bereich Chaincodes im Abschnitt Abfragen werden zwei Textdateien generiert und angezeigt: CLIcommandsForLinux.txt und CLIcommandsForWindows.txt. Wählen Sie den Dateinamen, um die Datei zu öffnen, und zeigen Sie die entsprechenden CLI-Befehle an.