Entwicklung von Smart Contracts mit den IBM Blockchain Platform Developer Tools
Achtung! Die IBM Support for Hyperledger Fabric Extension for VS Code (VS Code-Erweiterung), auf die in der Dokumentation verwiesen wird, ist ein Open-Source-Projekt, das nicht mehr aktiv ist und daher nicht offiziell von IBM unterstützt wird. Weitere Informationen finden Sie im Alternativen zur VS Code-Erweiterung.
Die IBM Blockchain Platform Developer Tools bieten eine Umgebung innerhalb von Visual Studio (VS) Code zum Entwickeln, Verpacken und Testen von Smart Contracts. Mit den Tools können Sie Ihr Smart Contract-Projekt erstellen und die ersten Schritte zur Entwicklung Ihrer Geschäftslogik ausführen. Sie können dann die Tools verwenden, um Ihren Smart Contract zu testen, entweder auf Ihrem lokalen Rechner mit einer vorkonfigurierten Instanz von Hyperledger Fabric oder durch Verbindung mit einem IBM Support for Hyperledger Fabric, bevor Sie den Smart Contract im IBM Support for Hyperledger Fabric bereitstellen. In diesem Lernprogramm ist beschrieben, wie Sie die Entwicklertools installieren.
Die IBM Blockchain Platform VS Code-Erweiterung funktioniert nahtlos mit jeder Instanz des IBM Support for Hyperledger Fabric, die Hyperledger Fabric Version 2.2.3 oder höher verwendet. Dieses Lernprogramm richtet sich an Benutzer des High-Level-Programmiermodells von Fabric für Smart Contracts. Wenn Sie Low-Level-Smart-Contract-APIs verwenden, finden Sie zusätzliche Anweisungen unter IBM Blockchain Platform Dokumentation der VS-Code-Erweiterung. Weitere Informationen finden Sie im Lernprogramm Writing Your First Chaincode in der Fabric-Dokumentation.
Voraussetzungen
- Derzeit werden die Betriebssysteme Windows 10, Linux und Mac OS unterstützt.
- VS Code Version 1.40 oder höher.
- Docker Version v17.06.2-ce oder höher.
- Wenn Sie Go Smart Contracts entwickeln, müssen Sie Go Version v1.12 oder höherinstallieren. Beachten Sie, dass Sie bei Verwendung von Fabric Version 2.x stattdessen Go Version 1.13 oder eine höhere Version benötigen.
- Wenn Sie Smart Contracts für Knoten entwickeln, müssen Sie Node ^10.15.3 oder ^12.15.0 und npm v6.x oder höherinstallieren.
Hinweise bei der Entwicklung von Smart Contracts mit Java:
- Java 11 ist für die Ausführung von Java Smart Contracts erforderlich.
- Gradle 4.x wird verwendet, um Java Smart Contracts zu erstellen.
- Angepasste Gradle-Versionen können unter Verwendung eines Gradle-Wrappers verwendet werden.
- Java-Smart Contracts müssen das Fabric-Chaincode-Shim unter v2.2.3 oder höher verwenden (wenn die Bereitstellung auf einem Peer erfolgt, der ein Fabric 2.2.3 -Image verwendet; Peers, die ein Fabric 2.2.3 -Image verwenden, benötigen kein Shim), da diese Version die erste Version ist, die Unterstützung für Java 11 enthält.
- Ein Beispiel für einen Java-Smart Contract finden Sie unter Basic asset transfer smart contract.
Wenn Sie mit Windows arbeiten, müssen Sie außerdem Folgendes sicherstellen:
- Docker for Windows ist für die Verwendung von Linux-Containern konfiguriert (dies ist die Standardeinstellung).
- Sie haben die C + + -Buildtools für Windows über windows-build-toolsinstalliert.
- Sie haben OpenSSL v1.0.2 installiert, wenn Sie mit Smart Contracts arbeiten, die Abhängigkeiten von Fabric v2.2.3 verwenden, und die generierten Funktionstests ausführen wollen.
- Installieren Sie die normale Version und nicht die als "light" bezeichnete Version.
- Installieren Sie die Win64-Version in C:\OpenSSL-Win64 auf 64-Bit-Systemen.
Wenn Sie Node und npm mithilfe eines Managertools wie "nvm" oder "nodenv" installiert haben, müssen Sie die Standardversion oder globale Version festlegen. Anschließend können Sie VS Code erneut starten, damit die Version auf der Seite "Voraussetzungen" erkannt wird.
Schritt 1: Geführte Lernprogramme in VS Code
Achtung! Die IBM Support for Hyperledger Fabric Extension for VS Code (VS Code-Erweiterung), auf die in der Dokumentation verwiesen wird, ist ein Open-Source-Projekt, das nicht mehr aktiv ist und daher nicht offiziell von IBM unterstützt wird. Weitere Informationen finden Sie im Alternativen zur VS Code-Erweiterung.
Die IBM Blockchain Platform Developer Tools enthalten geführte Tutorials, die Ihnen den Einstieg erleichtern. In den Tutorials wird Schritt für Schritt erklärt, wie Sie Ihr Smart-Contract-Projekt entwickeln und testen und wie Sie den Smart Contract in einem Netzwerk in der IBM Cloud bereitstellen. Außerdem werden Beispiele für Smart Contracts zum Download bereitgestellt.
Um von VS Code aus zu den Tutorials zu navigieren, klicken Sie auf das Blockchain-Symbol in der linken Navigation und dann auf das IBM Blockchain Platform in der oberen rechten Ecke, um die Homepage der Erweiterung anzuzeigen. Auf der Homepage finden Sie einen Link zur Lernprogrammgalerie und zu den Beispielen für Smart Contracts.
Schritt 2: Smart Contract-Projekt erstellen
Sie können die Erweiterung verwenden, um ein neues Smart Contract-Projekt in Visual Studio Code zu erstellen. Mit der Erweiterung wird ein grundlegender Smart Contract erstellt, der zur Verwaltung eines Beispielassets in der Sprache Ihrer Wahl dient. Sie können die Struktur des Beispiels als Ausgangspunkt für die Entwicklung einer eigenen Geschäftslogik verwenden. Die Erweiterung stellt alle Abhängigkeiten bereit, die erforderlich sind, um Ihren Smart Contract in einer Instanz von Hyperledger Fabric bereitzustellen.
- Klicken Sie auf das Symbol IBM Blockchain Platform, um die Registerkarte IBM Blockchain Platform zu öffnen. Klicken Sie im Fensterbereich "Smart Contracts" auf das Kontextmenü und klicken Sie auf Neues Projekt erstellen.
- Wählen Sie den zu generierenden Smart Contract-Typ aus. Das Beispiel Smart Contract (standard) wird Erstbenutzern empfohlen und veranschaulicht Erstellungs-, Lese-, Aktualisierungs- und Löschoperationen für das öffentliche Ledger, das von allen Netzmitgliedern gemeinsam verwendet wird. Das Beispiel Smart Contract für private Daten veranschaulicht die Durchführung von Erstellungs-, Lese-, Aktualisierungs-, Lösch- und Prüfoperationen für eine Sammlung, die für ein Netzmitglied privat ist.
- Wählen Sie die Sprache aus, in der Sie einen Smart Contract erstellen möchten. Die momentan verfügbaren Optionen sind "JavaScript", "TypeScript", "Go" und "Java". Hinweis: Wenn Sie die Smart Contracts in einem Produktionsnetz bereitstellen, beanspruchen in JavaScript und TypeScript geschriebene Smart Contracts mehr Ressourcen als in Go formulierte Smart Contracts.
- Wählen Sie ein Asset aus, das durch den Smart Contract des Beispiels verwaltet werden soll. Beispiel: bond.
- Erstellen Sie einen Ordner mit dem Namen Ihres Projekts und öffnen Sie ihn.
- Wählen Sie aus, wie das neue Projekt geöffnet werden soll. Der Projektordner sollte jetzt geöffnet sein.
Wenn das Projekt geöffnet wird, befindet sich im linken Fensterbereich des Explorer-Fensters der neue Smart Contract. Die Struktur des Projekts hängt von der Sprache ab, die Sie ausgewählt haben. Jeder Smart Contract enthält jedoch die gleichen Elemente:
- Quellcode des Smart Contract. Wenn Sie die Erstellung eines Smart Contract in JavaScript oder TypeScript ausgewählt haben, erstellt die Erweiterung einen grundlegenden Smart Contract unter Verwendung von
fabric-contract-apiund eine Reihe von Funktionen, die zur Verwaltung des Beispielassets dienen. Wenn Sie beispielsweise bond ausgewählt haben, dann stehen die FunktionencreateBond,updateBond,readBond,bondExistsunddeleteBondzur Verfügung. - Eine Testdatei.
- Die zugehörigen Smart Contract-Abhängigkeiten.
Muss ich meinen Smart Contract für Fabric 2.x aktualisieren?
Achtung! Die IBM Support for Hyperledger Fabric Extension for VS Code (VS Code-Erweiterung), auf die in der Dokumentation verwiesen wird, ist ein Open-Source-Projekt, das nicht mehr aktiv ist und daher nicht offiziell von IBM unterstützt wird. Weitere Informationen finden Sie im Alternativen zur VS Code-Erweiterung.
Obwohl Unterstützung für Fabric 2.x -Netze zur Plattform hinzugefügt wurde, können Sie Ihre vorhandenen Smart Contracts weiterhin auf Ihren Peers ausführen, die ein v1.4 -Image auf einem Kanal mit einer Anwendungsfunktionalitätsstufe von 1.4 oder niedriger ausführen. Wenn Sie später ein Upgrade Ihres Peers auf ein v2.x -Image durchführen und die Funktionalitätsstufe Ihrer Kanalanwendung auf 2.xaktualisieren möchten, müssen Sie möglicherweise Ihren vorhandenen Smart Contract aktualisieren. Wenn Sie für das Peer-Image und die Kanalanwendungsfunktionalität ein Upgrade auf Version 2.x durchgeführt haben, kann der ursprüngliche Smart Contract jedoch nicht mehr aktualisiert werden. Wenn eine Aktualisierung erforderlich wird, müssen Sie den Smart Contract stattdessen im neuen .tar.gz- oder .tgz-Format mit Version 2 der VS Code-Erweiterung erneut paketieren und dann im Kanal die Definition mit dem neuen Smart Contract-Lebenszyklusprozess vorschlagen.
Beachten Sie die folgenden Hinweise:
Knoten -Wenn Ihr Smart Contract in Node geschrieben wurde, müssen Sie ihn möglicherweise aktualisieren. Standardmäßig erstellt ein Fabric v1.4-Peer eine Node v8-Laufzeit; ein Fabric v2.x-Peer erstellt eine Node v12-Laufzeit. Damit der Smart Contract mit einer Node-Laufzeit der Version 12 funktioniert, müssen die Node-Module fabric-contract-api und fabric-shim mindestens Version 1.4.5 aufweisen. Wenn Sie einen Smart Contract verwenden, der ursprünglich für die Ausführung mit Fabric 1.4 erstellt wurde, aktualisieren Sie die Node-Module, indem Sie den folgenden Befehl ausführen, bevor Sie den Smart Contract auf einem Fabric v2.x-Peer ausführen. Weitere Informationen finden Sie unter Support and compatibility for fabric-chaincode-node .
npm install --save fabric-contract-api@latest-1.4 fabric-shim@latest-1.4
Go -Da Fabric v2.x -Peers keinen "shim" haben (die externen Abhängigkeiten, die die Ausführung von Smart Contracts in früheren Fabric-Versionen ermöglicht haben), müssen Sie den Shim anschaffen und anschließend alle in Golang (Go) geschriebenen Smart Contracts, die das Go-SDKverwenden, neu packen. "Shim-Vendoring" bedeutet, dass Sie die Abhängigkeiten in Ihr Projekt kopieren. Ohne diese Bereitstellung und erneute Paketierung kann der Go-Smart Contract auf einem Peer, der Version 2.x eines Fabric-Image verwendet, nicht ausgeführt werden. Wenn Sie die IBM Developer Tools verwenden, um Ihren Smart Contract zu entwickeln und zu packen, führen die Tools das Anbietering für Sie durch. Dieser Prozess ist weder für Smart Contracts erforderlich, die in Java oder Node.jsgeschrieben sind, noch für Smart Contracts, die Go contract-apiverwenden.
Java -Die Datei build.gradle für den Smart Contract muss aktualisiert werden:
- Wenn der Smart Contract das
shadowjar-Plug-in der Version 2.x verwendet, ist eine Aktualisierung auf Version 5 mithilfe des folgenden Codes erforderlich:plugins { id 'com.github.johnrengelman.shadow' version '5.1.0' id 'java' } - Der Abschnitt
repositoriesder Datei mussmaven URLfürjitpackenthalten. Beispiel:repositories { ... maven { url 'https://jitpack.io' } }
Initialisierungsfunktionen -Wenn der Smart Contract mit den Low-Level-APIs geschrieben wurde, die von der Fabric-Chaincode-Shim-API bereitgestellt werden, muss Ihr Smart Contract eine Init -Funktion enthalten, die zum Initialisieren des Chaincodes verwendet wird. Diese Funktion ist zwar für die Smart Contract-Schnittstelle erforderlich, muss aber nicht unbedingt von den Anwendungen aufgerufen werden. Da Sie die Konsole nicht zum Bereitstellen eines Smart Contract verwenden können, der eine Init -Funktion enthält, müssen Sie diese Initialisierungslogik in den Smart Contract selbst verschieben und separat aufrufen. Beispiel: Vom Smart Contract kann ein reservierter Schlüssel verwendet werden, um zu überprüfen, ob der Smart Contract bereits initialisiert wurde. Ist dies nicht der Fall, rufen Sie die Initialisierungslogik auf; andernfalls fahren Sie normal fort. Wenn Ihr Smart Contract die Funktion Init enthalten muss, können Sie sie nur mithilfe des Fabric-Befehls peer lifecycle chaincode install oder mithilfe des IBM Hyperledger Fabric Ansible Collectionbereitstellen. Weitere Informationen zur Verwendung einer Init -Funktion mit dem Fabric-Chaincode-Lebenszyklus finden Sie auch in der Fabric-Dokumentation .
Smart Contract neu packen - Achtung! Die IBM Support for Hyperledger Fabric Extension for VS Code (VS Code-Erweiterung), auf die in der Dokumentation verwiesen wird, ist ein Open-Source-Projekt, das nicht mehr aktiv ist und daher nicht offiziell von IBM unterstützt wird. Weitere Informationen finden Sie im Alternativen zur VS Code-Erweiterung.
Nachdem Sie Ihren Smart Contract aktualisiert haben, verwenden Sie v2 der VS Code-Erweiterung, um Ihren Smart Contract neu zu packen .
Schritt 3: Smart Contract paketieren
Sie müssen einen Smart Contract packen, bevor Sie ihn in Ihrem IBM Support for Hyperledger Fabric -Netz oder im vorkonfigurierten Hyperledger Fabric-Netz installieren können. Für Fabric-Kanäle des Typs V1 müssen Smart Contract-Pakete im .cds -Format vorliegen und für V2 ist das Format .tar.gz erforderlich. Führen Sie die folgenden Schritte aus, um Ihren Smart Contract zu paketieren:
- Öffnen Sie Ihr Smart-Contract-Projekt in VS Code, indem Sie auf Datei und dann auf Öffnen ... klicken. Vergewissern Sie sich, dass in der Dateianzeigefunktion ein geöffnetes Smart Contract-Projekt vorhanden ist.
- Klicken Sie auf das Symbol IBM Blockchain Platform, um die Registerkarte IBM Blockchain Platform zu öffnen.
- Klicken Sie in der Anzeige Smart Contracts auf das Überlaufmenü und wählen Sie Geöffnetes Projekt paketieren aus. Sie werden aufgefordert, den Namen und die Version des Pakets anzugeben. Sie müssen auch auswählen, ob Sie es als
.tar.gz(für die Bereitstellung in einem Kanal mit V2 -Anwendungsfunktionalität) oder als.cds(für die Bereitstellung in einem Kanal mit V1 -Anwendungsfunktionalität) packen möchten. Um die Kanalfunktionen/-version herauszufinden, bewegen Sie den Mauszeiger über den Kanal in der Anzeige Fabric-Umgebungen , in der Sie die Bereitstellung durchführen wollen. Hierdurch wird eine QuickInfo mit der Funktionalität des Kanals angezeigt.- Wenn Sie über ein Smart-Contract-Projekt verfügen, wird es automatisch gepackt und im Teilfenster Smart Contracts angezeigt.
- Sind mehrere Smart Contract-Ordner geöffnet, wird angefragt, für welchen Ordner das Paket erstellt werden soll.
- Sind keine Smart Contract-Ordner geöffnet, wird eine Fehlernachricht ausgegeben.
Wenn Sie angeben möchten, welche Dateien im Projekt gepackt werden sollen, können Sie eine Datei .fabricignore im Basisverzeichnis Ihres Smart-Contract-Projekts erstellen. Das Datei-und Musterformat für eine .fabricignore -Datei entspricht dem Format einer .gitignore -Datei. Beispiel:
/.classpath
/.git/
/.gradle/
/.project
/.settings/
/bin/
/build/
Smart Contract-Paket exportieren, importieren und löschen
Achtung! Die IBM Support for Hyperledger Fabric Extension for VS Code (VS Code-Erweiterung), auf die in der Dokumentation verwiesen wird, ist ein Open-Source-Projekt, das nicht mehr aktiv ist und daher nicht offiziell von IBM unterstützt wird. Weitere Informationen finden Sie im Alternativen zur VS Code-Erweiterung.
Nachdem Sie ein Smart-Contract-Projekt paketiert haben, können Sie es aus Visual Studio Code exportieren:
- Klicken Sie im IBM Blockchain Platform mit der rechten Maustaste auf das Smart Contract-Paket und wählen Sie Paket exportieren.
- Wählen Sie das Verzeichnis aus, in dem die Datei mit Ihrem Smart Contract-Paket gespeichert werden soll, und klicken Sie auf Exportieren.
Sie können auch ein bestehendes Smart-Contract-Paket in den Bereich der IBM Blockchain Platform importieren:
- Klicken Sie in der Anzeige Smart Contracts auf das Überlaufmenü und wählen Sie Paket importieren aus.
- Navigieren Sie zu dem Smart Contract-Paket, das Sie importieren möchten, und klicken Sie auf Importieren.
Sie können auch auf Paket löschen klicken, um das Smart Contract-Paket aus der Liste der Pakete zu entfernen.
Schritt 4: Smart Contract in vorkonfiguriertem Hyperledger Fabric-Netz bereitstellen
Sie können die Erweiterung für Visual Studio Code verwenden, um einen Smart Contract in einem vorkonfigurierten Hyperledger Fabric-Netz bereitzustellen, das von der Erweiterung auf Ihrer lokalen Maschine erstellt wird. Wenn die Bereitstellung in einem Kanal erfolgen soll, für den die Funktionalität der Version 1 aktiviert ist, müssen Sie den Smart Contract installieren und instanziieren. Für eine Bereitstellung in einem Kanal, für den die Funktionalität der Version 2 aktiviert ist und der den neuen Lebenszyklusprozess von Fabric 2.x verwendet, müssen Sie einen Smart Contract installieren und anschließend "genehmigen" und "festschreiben", nicht instanziieren.
Vorkonfiguriertes Hyperledger Fabric-Netz bereitstellen
Bevor Sie einen Smart Contract bereitstellen können, führen Sie die folgenden Schritte aus, um das vorkonfigurierte Netz bereitzustellen:
- Vergewissern Sie sich, dass auf Ihrer Maschine Docker ausgeführt wird.
- Öffnen Sie die Registerkarte IBM Blockchain Platform in VS Code.
- Klicken Sie im Teilfenster Fabric-Umgebungen auf 1 Org Local Fabric. Falls Docker aktiv ist, müsste die lokale Instanz gestartet werden, sobald die Hyperledger Fabric-Images heruntergeladenworden sind.
- Klicken Sie im Teilfenster Fabric-Gateways auf 1 Org-Local-Fabric- Org1 Gateway , um eine Verbindung zum lokalen Netz herzustellen.
Die VS Code-Erweiterung erstellt ein grundlegendes Fabric-Netz, das einen Anordnungsknoten, einen Peer und eine Zertifizierungsstelle umfasst. Der Peer ist einem Kanal mit dem Namen mychannel zugeordnet. Die Liste der Knoten, Organisationen und Kanäle, die zu dem Netz gehören, wird im Teilfenster Fabric-Umgebungen angezeigt. Vor diesen Knoten finden Sie die Liste der auf Ihren Kanälen bereitgestellten Smart Contracts. Achtung! Die IBM Support for Hyperledger Fabric Extension for VS Code (VS Code-Erweiterung), auf die in der Dokumentation verwiesen wird, ist ein Open-Source-Projekt, das nicht mehr aktiv ist und daher nicht offiziell von IBM unterstützt wird. Weitere Informationen finden Sie im Alternativen zur VS Code-Erweiterung.
Führen Sie die folgenden Schritte aus, um eine neue Organisation oder ein neues Organisationsnetz zu erstellen:
- Vergewissern Sie sich, dass auf Ihrer Maschine Docker ausgeführt wird.
- Bewegen Sie den Mauszeiger über das Teilfenster Fabric-Umgebungen und klicken Sie auf + und Umgebung hinzufügen.
- Wählen Sie Neu von Vorlage erstellen aus.
- Wählen Sie 1 Org-Vorlage (1 CA, 1 Peer, 1 Kanal) aus. Sie können alternativ auch ein größeres Netz oder einen Privaten Datenvertrag generieren, indem Sie 2 Org-Vorlagen (2 CAs, 2 Peers, 1 Kanal) auswählen.
- Wählen Sie V2_0 aus, wenn Sie aufgefordert werden, die für das Netz zu verwendende Kanalfunktionsversion auszuwählen. Wenn die Kanalfunktionalität der Version 1 verwendet werden soll, wählen Sie stattdessen die andere Option aus.
Dies wird einige Minuten in Anspruch nehmen, bis ein lokales Fabric-Netz mit Umgebung, Gateways und Wallets erstellt wird.
Vorkonfiguriertes Netz stoppen, erneut starten, herunterfahren und löschen
Wenn das vorkonfigurierte Netz aktiv ist, können Sie es stoppen oder erneut starten:
- Klicken Sie im Teilfenster Fabric-Umgebungen auf das Überlaufmenü.
- Wählen Sie Neustart, Stoppen, Teardown aus, um den Container zu stoppen, erneut zu starten oder zu beenden.
Durch das Auswählen von Umrüstung wird das lokale Fabric-Netz vollständig entfernt. Hinweis: Durch das Entfernen gehen die Ledgerdaten und die Daten für den World-Status verloren.
Durch das Auswählen von Löschen wird eine Umrüstung durchgeführt und das Netz wird aus dem Teilfenster Fabric-Umgebungen entfernt.
Smart Contract bereitstellen (Kanalanwendungsfunktion V2)
Smart Contracts können über die Bereitstellungsansichtimplementiert werden. In dieser Ansicht werden alle Bereitstellungsschritte durchgeführt (Installieren, Genehmigen, Festschreiben), die für den Smart Contract-Lebenszyklus in Kanälen erforderlich sind, für die die Anwendungsfunktionalität der Version 2.0 oder eine höheren Version aktiviert ist.
Führen Sie die folgenden Schritte aus, wenn Ihr Kanal mit Anwendungsfunktionalität V2 oder höher und einem .tar.gz Smart Contract-Paket konfiguriert ist.
Gehen Sie wie folgt vor, um die Bereitstellungsansicht zu starten:
- Überprüfen Sie, ob Sie im Teilfenster Fabric-Umgebungen mit dem Netz verbunden sind.
- Erweitern Sie den Kanal, in dem Sie Ihren Smart Contract implementieren wollen.
- Klicken Sie auf + Smart Contract implementieren.
In der Bereitstellungsansicht wird ein Smart Contract in drei Schritten bereitgestellt.
Schritt 1: Zu implementierenden Smart Contract auswählen
- Wählen Sie in der Dropdown-Liste das Smart-Contract-Paket aus, das Sie implementieren wollen.
- Klicken Sie auf Weiter , um fortzufahren.
Schritt 2: Definition erstellen
- Geben Sie einen Namen und eine Version für den Smart Contract in den entsprechenden Eingabefeldern an. Die Felder für diese Parameter werden standardmäßig mit dem Namen und der Version des Pakets gefüllt.
- (Optional) Geben Sie im entsprechenden Eingabefeld eine angepasste Bewilligungsrichtlinie ein.
- (Optional) Wählen Sie Datei hinzufügen aus, um zu Ihrer Sammlungskonfigurationsdatei zu navigieren, wenn Ihr Smart Contract private Daten verwendet, wie z. B. das Beispiel Private Data Contract .
- Klicken Sie auf Weiter , um fortzufahren.
Schritt 3: Implementieren
- Klicken Sie auf Bereitstellen , um den Smart Contract automatisch auf allen Netzpeers zu installieren, zu genehmigen und festzuschreiben.
- (Optional) Verwenden Sie die Umschaltfläche Commit durchführen , um das Festschreiben dieser Smart Contract-Definition im Kanal zu aktivieren oder zu inaktivieren.
- (Optional) Klicken Sie auf Zusätzliche Peers zum Bewilligen von Festschreibungstransaktionen , um alle verfügbaren zusätzlichen Peers, die Sie zur Genehmigung dieser Smart Contract-Definition benötigen, aus-oder abzuwählen.
An diesem Punkt ist Ihr Smart Contract jetzt auf dem Kanal "festgeschrieben". Wenn Sie Ihren Smart Contract-Code geändert und anschließend neu gepackt haben, können Sie die Implementierungsansicht verwenden und die zuvor beschriebenen Schritte ausführen, um ein Upgrade für die Smart Contract-Definition durchzuführen, die Sie im Netz bereitgestellt haben.
Smart Contract bereitstellen (Kanalanwendungsfunktion V1)
Führen Sie die folgenden Schritte aus, wenn Sie einen Kanal, der mit der Anwendungsfunktion v1.x konfiguriert ist, und ein Smart Contract-Paket im .cds -Format haben.
Gehen Sie wie folgt vor, um die Bereitstellungsansicht zu starten:
- Überprüfen Sie, ob Sie im Teilfenster Fabric-Umgebungen mit dem Netz verbunden sind.
- Erweitern Sie den Kanal, in dem Sie Ihren Smart Contract implementieren wollen.
- Klicken Sie auf + Smart Contract implementieren.
In der Bereitstellungsansicht wird ein Smart Contract in drei Schritten bereitgestellt.
Schritt 1: Zu implementierenden Smart Contract auswählen
- Wählen Sie in der Dropdown-Liste das Smart-Contract-Paket aus, das Sie implementieren wollen.
- Klicken Sie auf Weiter , um fortzufahren.
Schritt 2: Smart-Contract-Implementierung konfigurieren
- (Optional) Geben Sie im entsprechenden Eingabefeld eine angepasste Bewilligungsrichtlinie ein.
- (Optional) Wählen Sie Datei hinzufügen aus, um zu Ihrer Sammlungskonfigurationsdatei zu navigieren, wenn Ihr Smart Contract private Daten verwendet, wie z. B. das Beispiel Private Data Contract .
- Klicken Sie auf Weiter , um fortzufahren.
Schritt 3: Implementieren
- Klicken Sie auf Implementieren , um den Smart Contract automatisch auf allen Netzpeers zu installieren und zu instanziieren (oder zu aktualisieren).
- (Optional) Geben Sie den Funktionsnamen ein, der bei der Instanziierung/Aktualisierung aufgerufen werden soll.
- (Optional) Geben Sie die Funktionsargumente ein, die bei Instanziierung/Upgrade aufgerufen werden sollen.
Zu diesem Zeitpunkt ist Ihr Smart Contract auf dem Kanal instanziiert. Wenn Sie Ihren Smart Contract-Code geändert und erneut gepackt haben, können Sie die Implementierungsansicht verwenden und die zuvor beschriebenen Schritte ausführen, um ein Upgrade für den Smart Contract durchzuführen, den Sie im Netz bereitgestellt haben.
Mit Smart Contract interagieren
Nachdem ein Smart Contract in einem Kanal bereitgestellt wurde, können Sie über das Teilfenster Fabric-Gateways Transaktionen an die Funktionen in Ihrem Smart Contract übergeben:
- Stellen Sie sicher, dass Ihr Smart Contract auf einem Kanal bereitgestellt wird und dass Sie mit dem Netz verbunden sind.
- Erweitern Sie im Teilfenster Fabric-Gateways die Dropdown-Liste Kanäle. Klicken Sie auf den Kanal, für den der Smart Contract instanziiert oder festgeschrieben ist.
- Erweitern Sie den Smart Contract, mit dem Sie interagieren möchten. Die Liste der Transaktionen, die unter Ihrem Smart Contract aufgeführt ist, wird angezeigt.
- Klicken Sie mit der rechten Maustaste auf die zu übergebende Transaktion und wählen Sie die Option Transaktion übergeben aus. Wenn Sie beispielsweise das Smart Contract-Beispiel für Wertpapiere ("Bonds") erstellt und paketiert haben, dann klicken Sie auf createBond.
- Geben Sie alle von der Transaktion benötigten Argumente ein und drücken Sie die Eingabetaste. Geben Sie beispielsweise
["bond01","100"]ein, um Ihren ersten Bond zu erstellen. - (Optional) Geben Sie alle Argumente ein, die als transiente Daten übergeben werden sollen. Transiente Daten werden nicht auf dem Kanal-Ledger gespeichert, um die Daten privat zu halten.
Anwendungen mit vorkonfiguriertem Netz verbinden
Sie können Ihre Clientanwendungen testen, indem Sie sie mit dem vorkonfigurierten Netz verbinden und Transaktionen an Ihren Smart Contract übergeben.
Zuerst müssen Sie Ihr Verbindungsprofil exportieren:
- Stellen Sie sicher, dass das Netz im Teilfenster Fabric-Umgebungen ausgeführt wird.
- Klicken Sie mit der rechten Maustaste auf das Gateway in der Anzeige Fabric-Gateways und wählen Sie Verbindungsprofil exportieren aus.
Anschließend können Sie die Fabric-SDKs und das Verbindungsprofil benutzen, um Ihre Administratoridentität mit dem Benutzernamen admin und dem Kennwort adminpw einzutragen. Dann können Sie diese Identität verwenden, um Ihren Smart Contract aufzurufen oder weitere Benutzer zu registrieren und einzutragen.
Schritt 5: Implementierten Smart Contract testen
Sie können Tests für Smart Contracts generieren, die instanziiert oder in den Kanälen festgeschrieben werden, zu denen Sie eine Verbindung herstellen. Die Tests können als JavaScript oder TypeScript für Knotenprojekte, Java für Java-Projekte oder Go für Go-Projekte generiert werden. Generierte Tests können dann ausgeführt oder ausgeführt oder einem Debugging unterzogen werden.
- Stellen Sie sicher, dass der Smart Contract im Kanal instanziiert oder festgeschrieben wird.
- Klicken Sie in der Anzeige Fabric-Gateways mit der rechten Maustaste auf den Smart Contract unter der Liste der Kanäle, für die Tests generiert werden sollen.
- Wählen Sie die Option Tests für Smart Contract generieren aus.
- Wählen Sie die Sprache für die Testdatei aus, entweder JavaScript, Typoskript, Java, oder Gehen, abhängig von der Smart-Contract-Sprache. Die IBM Blockchain Platform installiert die erforderlichen Abhängigkeiten und erstellt die Testdatei.
- Stellen Sie sicher, dass entweder die Node Test Runner-Erweiterung, Java Test Runner-Erweiterung oder Go-Erweiterung installiert ist.
Nachdem die Testdatei erstellt wurde, können Sie die Tests ausführen, indem Sie in der Datei auf die Schaltfläche zum Ausführen der Tests klicken.
Schritt 6: Verbindung zu Ihrem IBM Support for Hyperledger Fabric -Netz herstellen
Sie können die Erweiterung auch verwenden, um mit Ihrem Netz in IBM Support for Hyperledger Fabriczu interagieren.
Rufen Sie einen Smart Contract auf, der auf Ihren Kanälen instanziiert oder festgeschrieben wurde.
Sie können Ihr Verbindungsprofil von der Fabric Operations Console herunterladen, um ein Gateway im Teilfenster Fabric Gateways zu erstellen. Anschließend können Sie das Gateway verwenden, um die Smart Contracts aufzurufen, für Ihren Kanal bereitgestellt wurden.
Öffnen Sie die Fabric Operations Console, die Ihrer Instanz von IBM Support for Hyperledger Fabriczugeordnet ist. Navigieren Sie zur Registerkarte Organisationen und klicken Sie auf die Kachel MSP der Organisation für die Organisation, mit der Ihre Clientanwendung interagiert. Klicken Sie auf Verbindungsprofil erstellen , um eine Seitenanzeige zu öffnen, in der Sie Ihr Verbindungsprofil erstellen und in Ihr lokales Dateisystem herunterladen . Anschließend erstellen Sie eine Anwendungsidentität mithilfe Ihrer Zertifizierungsstelle und speichern die enrollID und den geheimen Schlüssel.
Stellen Sie mithilfe der folgenden Schritte eine Verbindung zu IBM Support for Hyperledger Fabric über VS Code her:
- Öffnen Sie die Registerkarte IBM Blockchain Platform.
- Bewegen Sie den Mauszeiger über das Teilfenster Fabric-Gateways und klicken Sie auf +.
- Wählen Sie Gateway über ein Verbindungsprofil erstellen aus.
- Geben Sie einen Namen für die Verbindung ein.
- Geben Sie den vollständig qualifizierten Dateipfad Ihres Verbindungsprofils ein. Ihre Verbindung sollte jetzt in der Verbindungsliste unter 1 Org Local Fabric angezeigt werden.
- Bewegen Sie den Mauszeiger über das Teilfenster Fabric-Wallets und klicken Sie auf +.
- Wählen Sie unter den verfügbaren Optionen Neue Wallet erstellen und Identität hinzufügen aus. Geben Sie einen Namen für Ihre Wallet und Ihre Identität an.
- Geben Sie die MSP-ID Ihrer Organisation ein.
- Klicken Sie auf die Option Gateway auswählen und Registrierungs-ID und geheimen Schlüssel angeben und wählen Sie das Gateway aus, das Sie zuvor erstellt haben.
- Geben Sie die Eintragungs-ID und den geheimen Schlüssel der Anwendungsidentität ein, die Sie mit der Konsole erstellt haben. Im Teilfenster Fabric-Wallets wird eine neue Identität erstellt.
- Sie können jetzt eine Verbindung zu Ihrer Instanz von IBM Support for Hyperledger Fabricherstellen. Klicken Sie auf den Verbindungsnamen und wählen Sie den Namen der Wallet aus, die Sie erstellt haben. Sie können die von Ihnen erstellte Wallet auch dem Gateway zuordnen. Klicken Sie hierzu mit der rechten Maustaste auf das Gateway und wählen Sie dann Wallet zuordnen aus. Auf diese Weise kann die Verbindung bei jedem Verbindungsvorgang die gleiche Wallet verwenden.
Nachdem Sie eine Verbindung zu IBM Support for Hyperledger Fabric über VS Code hergestellt haben, können Sie die Liste der Kanäle überprüfen, an denen Ihre Organisationspeers unter dem Gateway teilnehmen. Unter jedem Kanal können Sie die Liste der Smart Contracts, die in jedem Kanal instanziiert oder festgeschrieben werden, und die Transaktionen in jedem Smart Contract überprüfen. Sie können Transaktionen an Ihr Netz übergeben, indem Sie mit der rechten Maustaste auf eine Funktion klicken und dann Transaktion übergeben auswählen und die erforderlichen Argumente übergeben. Sie können auch eine Testdatei für die Smart Contracts generieren, die auf Ihren Kanälen instanziiert werden.
Smart Contract über VS Code implementieren
Achtung! Die IBM Support for Hyperledger Fabric Extension for VS Code (VS Code-Erweiterung), auf die in der Dokumentation verwiesen wird, ist ein Open-Source-Projekt, das nicht mehr aktiv ist und daher nicht offiziell von IBM unterstützt wird. Weitere Informationen finden Sie im Alternativen zur VS Code-Erweiterung.
Sie können auch das Netz IBM Support for Hyperledger Fabric in das Teilfenster Fabric-Umgebungen der Erweiterung importieren. Anschließend können Sie die VS Code-Erweiterung verwenden, um Smart Contracts in Ihrem Netzwerk bereitzustellen.
Sie können Knoten über Ihre Konsole exportieren und anschließend über eine andere Konsole importieren. Mit dem gleichen Prozess können Sie Knoten über Ihre Konsole exportieren und anschließend in das Teilfenster Fabric-Umgebungen importieren. Die einfachste Möglichkeit besteht darin, mit der Erweiterung die Konsole zu ermitteln und die Knoten zu importieren.
- Navigieren Sie zur Registerkarte Einstellungen in der linken Navigationsleiste. Sie können einen Abschnitt namens Massendatenverwaltung überprüfen, der zwei Schaltflächen enthält. Die Schaltfläche Exportieren öffnet ein Teilfenster auf der rechten Seite.
- Aktivieren Sie das Kontrollkästchen zum Exportieren Ihrer Identitäten. Die anderen Optionen können Sie abwählen.
- Klicken Sie auf Exportieren, um die Identitäten als ZIP-Datei in Ihr lokales Dateisystem herunterzuladen. Extrahieren Sie die Datei, nachdem der Download abgeschlossen ist.
Anschließend können Sie die Knoten Ihres Netzes in die Erweiterung importieren.
Kubernetes importieren
Importieren Sie Ihre Kubernetes in die Erweiterung:
- Bewegen Sie den Mauszeiger über das Teilfenster Fabric-Umgebungen und klicken Sie auf + und Umgebung hinzufügen.
- Wählen Sie IBM Blockchain Platform Netzwerk hinzufügen.
- Wählen Sie Nein aus, wenn Sie gefragt werden, ob eine Verbindung zu einer IBM Blockchain Plaatform-Serviceinstanz in IBM Cloudhergestellt werden soll.
- Geben Sie die URL der IBM Blockchain Platform Console-Softwareinstanz ein.
- Geben Sie die Benutzer-ID für die Konsoleninstanz ein.
- Geben Sie das Kennwort für die Konsoleninstanz ein.
- Wählen Sie Ohne Zertifikatsüberprüfung fortfahren oder Abbrechen aus, wenn Sie beabsichtigen, die CA-Zertifikate dem anerkannten CA-Zertifikatsspeicher der Betriebssysteme hinzuzufügen.
- Geben Sie einen Namen für die Umgebung ein.
- Wählen Sie die zur Organisation gehörenden Zertifizierungsstellen und Peers zusammen mit den Anordnungsknoten der Kanäle aus und klicken Sie auf OK, wenn Sie fertig sind.
In den Schritten 5 und 6 können Sie alternativ einen API-Schlüssel und einen geheimen Schlüssel eingeben, die Sie mit den IBM Support for Hyperledger Fabric REST-APIsgenerieren.
Außerdem müssen Sie Ihre Administratoridentitäten in das Teilfenster der Wallet importieren und die Identitäten den Knoten zuordnen. Bevor Sie eine Verbindung zu Ihrem Netz herstellen können, müssen Sie eine Administratoridentität für Ihre Peers, CA und für einen Anordnungsknoten zuordnen.
- Klicken Sie im Teilfenster Fabric-Umgebungen auf die Umgebung, die Sie erstellt haben.
- Sie können ein Alertzeichen neben dem Peer und Anordnungsknoten überprüfen. Klicken Sie auf das Alertsymbol, um dem Knoten eine Administratoridentität zuzuordnen.
- Wählen Sie Neue Wallet hinzufügen aus.
- Wählen Sie Neue Wallet erstellen aus.
- Geben Sie einen Namen für Ihre Wallet ein, um den Anordnungsservice- oder Peer-Administrator Ihres Netzes zu identifizieren.
- Wählen Sie Neue Identität hinzufügen aus.
- Geben Sie den Namen für die Administratoridentität des Peers oder Anordnungsservice ein.
- Wählen Sie JSON-Identitätsdatei von IBM Blockchain Platform bereitstellen und suchen Sie dann nach der Admin-Identität, die Sie aus Ihrer Konsole exportiert haben. Wenn es sich bei der Identität um einen Administrator für mehrere Knoten in Ihrem Netz handelt, können Sie die Identität mehreren Knoten zuordnen.
Nachdem Sie eine Administratoridentität für Ihre Peers, CA und einen Anordnungsknoten zugeordnet haben, können Sie die Verbindung zu Ihrem Netz herstellen und die Erweiterung zum Bereitstellen von Smart Contracts verwenden.
Wallets und Benutzer hinzufügen
Führen Sie die folgenden Schritte aus, um eine neue Wallet mithilfe eines Zertifikats und eines privaten Schlüssels zu erstellen:
- Bewegen Sie den Mauszeiger über das Teilfenster Fabric-Wallets und klicken Sie auf +.
- Wählen Sie unter den verfügbaren Optionen Neue Wallet erstellen und Identität hinzufügen aus. Geben Sie einen Namen für Ihre Wallet und Ihre Identität an.
- Geben Sie die MSP-ID Ihrer Organisation ein.
- Wählen Sie die Option zum Hinzufügen eines Zertifikats und eines privaten Schlüssels aus.
- Wenn Sie ein Zertifikat und einen privaten Schlüssel verwenden, suchen Sie nach diesem Zertifikat und dem privaten Schlüssel.
Zu den bereits erstellten Wallets können auch neue Benutzer hinzugefügt werden:
- Klicken Sie im Teilfenster Fabric-Wallets mit der rechten Maustaste auf eine Wallet und wählen Sie dann Identität hinzufügen aus.
- Geben Sie einen Namen für die Identität und eine MSP-ID an.
- Sie können eine JSON-Datei hochladen sowie ein Zertifikat und einen privaten Schlüssel angeben oder eine Eintragungs-ID und einen geheimen Schlüssel.
- Wenn Sie eine Verbindung zu einem Netz in IBM Support for Hyperledger Fabricherstellen, können Sie eine Identität aus Ihrer Fabric Operations Console herunterladen, indem Sie entweder eine Identität aus Ihrer Wallet exportieren oder eine Identität mithilfe Ihrer Zertifizierungsstelle registrieren und exportieren. Sie können die JSON-Datei dann direkt in VS Code hochladen.
- Wenn Sie ein Zertifikat und einen privaten Schlüssel verwenden, suchen Sie nach diesem Zertifikat und dem privaten Schlüssel.
- Wenn Sie eine Eintragungs-ID und einen geheimen Schlüssel verwenden, wählen Sie das Gateway aus, bei dem die Eintragung erfolgen soll, und geben Sie die Eintragungs-ID und den geheimen Schlüssel ein.