Bereitstellung eines IBAX-Netzwerks
In diesem Abschnitt zeigen wir Ihnen, wie Sie Ihr eigenes Blockchain-Netzwerk bereitstellen.
Ein Bereitstellungsbeispiel
Als Beispiel wird ein Blockchain-Netzwerk mit den folgenden drei Knoten bereitgestellt.
Drei Netzwerkknoten:
- Knoten 1 ist der erste Knoten im Blockchain-Netzwerk, der neue Blöcke generieren und Transaktionen von mit ihm verbundenen Clients senden kann;
- Knoten 2 ist ein weiterer Ehrenknoten, der neue Blöcke generieren und Transaktionen von mit ihm verbundenen Clients senden kann;
- Knoten 3 ist ein Wächterknoten, der keine neuen Blöcke generieren kann, aber Transaktionen von mit ihm verbundenen Clients senden kann.
Konfigurationen der drei bereitzustellenden Knoten:
- Jeder Knoten verwendet seine eigene PostgreSQL-Datenbanksysteminstanz;
- Jeder Knoten verwendet seine eigene Centrifugo-Dienstinstanz;
- Das serverseitige Github-Backend wird auf demselben Host bereitgestellt wie andere Backend-Komponenten.
Die von den Knoten verwendeten Beispieladressen und Ports sind in der folgenden Tabelle beschrieben:
Node | Component | IP & port |
1 | PostgreSQL | 127.0.0.1:5432 |
1 | Centrifugo | 192.168.1.1:8000 |
1 | go-ibax (TCP service) | 192.168.1.1:7078 |
1 | go-ibax (API service) | 192.168.1.1:7079 |
2 | PostgreSQL | 127.0.0.1:5432 |
2 | Centrifugo | 192.168.1.2:8000 |
2 | go-ibax (TCP service) | 192.168.1.2:7078 |
2 | go-ibax (API service) | 192.168.1.2:7079 |
3 | PostgreSQL | 127.0.0.1:5432 |
3 | Centrifugo | 192.168.1.3:8000 |
3 | go-ibax (TCP service) | 192.168.1.3:7078 |
3 | go-ibax (API service) | 192.168.1.3:7079 |
Bereitstellungsphase
Ihr eigenes Blockchain-Netzwerk muss in mehreren Schritten bereitgestellt werden:
Serverbereitstellung
Stellen Sie den ersten Knoten bereit
Der erste Knoten ist ein besonderer, da er für den Start des Blockchain-Netzwerks unerlässlich ist. Der erste Block der Blockchain wird vom ersten Knoten generiert, und alle anderen Knoten würden die Blockchain von ihm herunterladen. Der Eigentümer des ersten Knotens ist der Plattformersteller.
Abhängigkeiten und Umgebungseinstellungen
sudo
Alle Befehle von Debian 9 müssen als Nicht-Root-Benutzer ausgeführt werden. Einige Systembefehle erfordern jedoch zur Ausführung Superuser-Berechtigungen. Standardmäßig ist sudo nicht auf Debian 9 installiert, Sie müssen es zuerst installieren.
- Superuser werden.
- Aktualisieren Sie Ihr System.
- Sudo installieren
- Fügen Sie Ihren Benutzer der sudo-Gruppe hinzu.
- Nach dem Neustart werden die Änderungen wirksam.
Golang
Installieren Sie Go gemäß der Official Documents (opens new window).
- Laden Sie die neueste stabile Version von Go (> 1.10.x) von der [offiziellen Golang-Website] (https://golang.org/dl/) oder über die Befehlszeile herunter:
- Verwenden Sie tar, um den Tarball in das Verzeichnis
/usr/local
zu extrahieren.
- Fügen Sie
/usr/local/go/bin
zu den PATH-Umgebungsvariablen hinzu (zu finden unter /etc/profile
oder $HOME/.profile
).
- Führen Sie die
source
aus, damit die Änderungen wirksam werden, zum Beispiel:
- Temporäre Dateien löschen:
PostgreSQL
- Installieren Sie PostgreSQL (> v.10) and psql:
Centrifugo
- Download Centrifugo V.1.8.0 aus GitHub (opens new window) oder über die Kommandozeile:
- Temporäre Dateien löschen:
Verzeichnisaufbau
Für das Debian 9-System wird empfohlen, die gesamte von der Blockchain-Plattform verwendete Software in einem separaten Verzeichnis zu speichern.
Hier wird das Verzeichnis /opt/backenddir
verwendet, aber Sie können jedes Verzeichnis verwenden. Bitte ändern Sie in diesem Fall alle Befehle und Konfigurationsdateien entsprechend.
- Erstellen Sie ein Verzeichnis für die Blockchain-Plattform:
- Machen Sie Ihren Benutzer zum Eigentümer des Verzeichnisses:
- Erstellen Sie Unterverzeichnisse für Centrifugo, go-ibax und Knotendaten. Alle Knotendaten werden in einem Verzeichnis namens
nodeX
gespeichert, wobei X
die Knotennummer ist. Gemäß dem bereitzustellenden Knoten ist node1
Knoten 1, node2
ist Knoten 2 und so weiter.
Erstellen Sie eine Datenbank
- Ändern Sie das Benutzerpasswort postgres auf das Standardpasswort 123456. Sie können Ihr eigenes Passwort festlegen, aber Sie müssen es in der Knotenkonfigurationsdatei config.toml ändern.
- Erstellen Sie eine aktuelle Zustandsdatenbank für den Knoten, zum Beispiel chaindb:
- Erstellen Sie die Centrifugo-Konfigurationsdatei:
Sie können Ihr eigenes Geheimnis festlegen, aber Sie müssen es auch in der Knotenkonfigurationsdatei config.toml ändern.
go-ibax installieren
- Github-Backend von GitHub herunterladen:
- Kopieren Sie die go-ibax-Binärdatei in das Verzeichnis
/opt/backenddir/go-ibax
. Wenn Sie den standardmäßigen Go-Arbeitsbereich verwenden, befinden sich die Binärdateien im Verzeichnis $HOME/go/bin
:
- Erstellen Sie die Konfigurationsdatei für Knoten 1:
- Generieren Sie die Schlüssel von Knoten 1, einschließlich der öffentlichen und privaten Schlüssel des Knotens und des Kontos:
- Generieren Sie den ersten Block:
Hinweis
Wenn Sie Ihr eigenes Blockchain-Netzwerk erstellen möchten, müssen Sie die Option --test=true
verwenden. Andernfalls können Sie kein neues Konto erstellen.
- Initialisieren Sie die Datenbank:
Initiiere den ersten Node-Server
Um den ersten Knotenserver zu starten, müssen Sie die folgenden zwei Dienste starten:
Wenn Sie mit diesen Dateien Dienste (opens new window) nicht erstellen konnten, können Sie Binärdateien aus Verzeichnissen in verschiedenen Konsolen ausführen.
- Lauf centrifugo:
- Lauf go-ibax:
Andere Knoten bereitstellen
Obwohl die Bereitstellung aller anderen Knoten (Knoten 2 und Knoten 3) der ersten ähnlich ist, gibt es drei Unterschiede:
- Sie müssen den ersten Block nicht generieren. Aber es muss von Knoten 1 in das aktuelle Knotendatenverzeichnis kopiert werden;
- Der Knoten muss Blöcke von Knoten 1 herunterladen, indem er die Option
--nodesAddr
konfiguriert; - Der Knoten muss seine eigenen Adressen und Ports verwenden.
Knoten 2
Befolgen Sie die nachstehenden Betriebsanweisungen:
- Abhängigkeiten und Umgebungseinstellungen
- Datenbank erstellen
- Zentrifuge
- go-ibax installieren
- Erstellen Sie die Konfigurationsdatei für Knoten 2:
- Kopieren Sie die erste Blockdatei auf Knoten 2. Sie können diese Operation beispielsweise auf Knoten 2 über scp ausführen:
- Generieren Sie die Schlüssel von Knoten 2, einschließlich der öffentlichen und privaten Schlüssel des Knotens und des Kontos:
- Starten Sie die Datenbank:
- Lauf centrifugo:
- Lauf go-ibax:
As a result, the node downloads the block from the first node. As this node is not a verification node, it cannot generate a new block. Node 2 will be added to the list of verification nodes later.
Knoten 3
Befolgen Sie die nachstehenden Betriebsanweisungen:
Abhängigkeiten und Umgebungseinstellungen
Datenbank erstellen
Zentrifuge
go-ibax installieren
Erstellen Sie die Konfigurationsdatei für Knoten 3:
- Kopieren Sie die erste Blockdatei auf Knoten 3. Sie können diese Operation beispielsweise auf Knoten 3 über scp ausführen:
7.Generieren Sie den Schlüssel von Knoten 3, einschließlich der öffentlichen und privaten Schlüssel des Knotens und des Kontos:
8.Initiieren Sie die Datenbank:
9.Lauf centrifugo:
10.Lauf go-ibax:
Als Ergebnis lädt der Knoten den Block vom ersten Knoten herunter. Da dieser Knoten kein Verifizierungsknoten ist, kann er keinen neuen Block erzeugen. Der Client kann mit dem Knoten verbunden sein und Transaktionen an das Netzwerk senden.
Front-End-Bereitstellung
Erst nach der Installation von GNOME GUI auf Debian 9 (Stretch) 64-Bit Official Release kann der Govis-Client mit dem Yarn
-Paketmanager erstellt werden.
Softwarevoraussetzungen
- Laden Sie Node.js LTS Version 8.11 von der offiziellen Website von Node.js oder über die Befehlszeile herunter:
- Installieren Node.js:
- Laden Sie Yarn Version 1.7.0 aus dem Github (opens new window)-Repository von Garn oder über die Befehlszeile herunter:
- Installieren Yarn:
Erstellen Sie eine Weaver-Anwendung
- Laden Sie die neueste Version von Weaver vom Github-Frontend über Git herunter:
- Installieren Sie Weaver-Abhängigkeiten über Yarn:
Fügen Sie die Konfigurationsdatei für das Blockchain-Netzwerk hinzu
- Erstellen Sie eine settings.json-Datei, die Informationen zur Knotenverbindung enthält:
- Bearbeiten Sie die Datei settings.json in einem beliebigen Texteditor und fügen Sie die erforderlichen Einstellungen in diesem Format hinzu:
Beispiele für settings.json-Dateien für die drei Knoten:
Erstellen Sie die Weaver Desktop-Anwendung
- Verwenden Sie Garn, um die Desktop-Version zu erstellen:
- Die Desktop-Version wird im AppImage-Suffixformat gepackt:
Nach dem Erstellen kann Ihre Anwendung verwendet werden, aber ihre Verbindungskonfiguration kann nicht geändert werden. Wenn diese Einstellungen geändert werden müssen, muss eine neue Version der Anwendung erstellt werden.
Weaver-Webanwendung erstellen
- Erstellen Sie eine Webanwendung:
Nach dem Erstellen werden die verteilbaren Dateien im Verzeichnis /build abgelegt. Sie können einen beliebigen Webserver Ihrer Wahl für die Bereitstellung verwenden, und die Datei settings.json muss ebenfalls in diesem Verzeichnis abgelegt werden. Beachten Sie, dass bei einer Änderung der Verbindungseinstellungen die Anwendung nicht erneut erstellt werden muss. Bearbeiten Sie stattdessen die Datei settings.json und starten Sie den Webserver neu.
- Für Entwicklungs- oder Testzwecke können Sie den Webserver von Yarn erstellen:
Danach ist Ihre Weaver-Webanwendung an folgendem Ort verfügbar: http://localhost:5000
.
Erstellerkonto erstellen
Erstellen Sie ein Konto für den ersten Knoteneigentümer. Dieses Konto ist der Ersteller der neuen Blockchain-Plattform und hat Administratorzugriff.
1.Weaver ausführen;
2.Importieren Sie das vorhandene Konto mit den folgenden Daten:
–Laden Sie die Sicherung des privaten Schlüssels des Knoteneigentümers, der sich in der Datei /opt/backenddir/node1/PrivateKey
befindet.
Hinweis
In diesem Verzeichnis befinden sich zwei private Schlüsseldateien. Die Datei PrivateKey
wird verwendet, um das Konto des Knoteneigentümers zu erstellen. Die NodePrivateKey
-Datei ist der private Schlüssel des Knotens selbst und muss geheim gehalten werden.
- Nachdem Sie sich beim Konto angemeldet haben, wählen Sie bitte die Option Ohne Rolle, da zu diesem Zeitpunkt noch keine Rolle erstellt wurde.
Anwendungen, Rollen und Vorlagen importieren
Zu diesem Zeitpunkt befindet sich die Blockchain-Plattform in einem leeren Zustand. Sie können es konfigurieren, indem Sie Rollen, Vorlagen und Anwendungsframeworks hinzufügen, die grundlegende Ökosystemfunktionen unterstützen.
- Klonen Sie das Anwendungs-Repository;
Navigieren Sie zu Entwickler> Importieren in Weaver;
Importieren Sie Anwendungen gemäß der folgenden Reihenfolge:
Navigieren Sie zu Admin > Rolle und klicken Sie auf Standardrolle installieren;
Verlassen Sie das System über das Konfigurationsdateimenü in der oberen rechten Ecke;
6.Melden Sie sich als Admin beim System an;
- Navigieren Sie zu Start > Abstimmung > Vorlagenliste und klicken Sie auf Standardvorlage installieren.
Den ersten Knoten zur Knotenliste hinzufügen
- Navigieren Sie zu Entwickler > Plattformparameter und klicken Sie auf den Parameter first_nodes;
2.Geben Sie die Parameter des ersten Blockchain-Netzwerkknotens an.
- public_key - The public key of the node is located in the
/opt/backenddir/node1/NodePublicKey
file;
Weitere Ehrenknoten hinzufügen
Mitglieder zur Consensus-Rollengruppe hinzufügen
Standardmäßig können nur Mitglieder in der Konsensus-Rollengruppe (Consensus) an der Abstimmung teilnehmen, die erforderlich ist, um andere Master-Knoten hinzuzufügen. Das bedeutet, dass vor dem Hinzufügen einer neuen Masternode Mitglieder des Ökosystems der Rolle zugewiesen werden müssen.
In diesem Abschnitt wird das Konto des Erstellers als einziges Mitglied der Konsens-Rollengruppe festgelegt. In einer Produktionsumgebung muss diese Rolle Plattformmitgliedern zugewiesen werden, die Governance durchführen.
- Navigieren Sie zu Start > Rolle und klicken Sie auf Konsens;
2.Klicken Sie auf Zuweisen, um das Konto des Erstellers der Rolle zuzuweisen.
Erstellen Sie das Eigentümerkonto für andere Knoten
Weber ausführen;
Importieren Sie das bestehende Konto mit den folgenden Daten:
– Laden Sie die Sicherung des privaten Schlüssels des Node-Eigentümers, der sich in der Datei /opt/backenddir/node2/PrivateKey
Nachdem Sie sich beim Konto angemeldet haben, wählen Sie bitte die Option Ohne Rolle, da zu diesem Zeitpunkt noch keine Rolle erstellt wurde.
Navigieren Sie zu Startseite > Persönliche Informationen und klicken Sie auf den Titel der persönlichen Informationen;
Fügen Sie Kontodetails hinzu (persönliche Informationen, Titel, Beschreibung usw.).
Assign the node owner with the Validators role
- Operationen des neuen Knoteneigentümers:
- Navigieren Sie zu Start > Prüfer;
- Klicken Sie auf Anfrage erstellen und füllen Sie das Antragsformular des Prüferkandidaten aus;
- Klicken Sie auf Anfrage senden.
- Operationen des Erstellers:
- Melden Sie sich mit einer Konsensrolle an (Consensus);
- Navigieren Sie zu Start > Prüfer;
- Klicken Sie auf das Symbol „Spielen“, um die Abstimmung gemäß der Anfrage des Kandidaten zu starten;
- Navigieren Sie zu Startseite > Abstimmen und klicken Sie auf Abstimmungsstatus aktualisieren;
- Klicken Sie auf den Abstimmungsnamen und stimmen Sie für den Knoteneigentümer ab.
Als Ergebnis wird dem Konto des Eigentümers des neuen Knotens die Validator-Rolle zugewiesen, und der neue Knoten wird der Liste der Master-Knoten hinzugefügt.