Erstelle ein IOTA Netzwerk

Wenn Sie Ihre Anwendung in Ihrem eigenen IOTA-Netzwerk testen möchten, können Sie Compass ausführen. Alle IRI-Knoten im Netzwerk müssen so eingerichtet sein, dass Ihre Compass-Transaktionen als vertrauenswürdige Meilensteine erkannt werden.

Für diese Grundeinstellung installieren Sie eine IRI-Node und Compass auf demselben Server oder derselben virtuellen Maschine. Sie können auch einen optionalen Signaturserver installieren, um die Sicherheit zu erhöhen.

Ein Signierungsserver reduziert die Angriffsfläche von Compass, indem sensible Vorgänge in einen externen Dienst verschoben werden. Compass interagiert mit dem Signaturserver über gRPC.

Um ein eigenes IOTA-Netzwerk zu erstellen, müssen Sie die folgenden Aufgaben in der angegebenen Reihenfolge ausführen:

Wenn Sie ein Windows- oder Mac-Betriebssystem verwenden, können Sie einen Linux-Server in einer virtuellen Maschine erstellen.
Für diese Aufgaben benötigt Ihr Linux-Server Folgendes:

  • Eine Neuinstallation eines Ubuntu 18.04-Servers / einer virtuellen Maschine
  • Mindestens 8 GB RAM
  • Vorzugsweise 4+ CPU-Kerne, je mehr Kerne, desto schneller wird der Merkle-Baum generiert.
  • Mindestens eine 10 GB SSD

Compass verwendet Bazel zum Erstellen und Docker zum Ausführen. Daher müssen wir sicherstellen, dass beide installiert sind.

1. Installieren Sie die Abhängigkeiten für Bazel

sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python

2. Laden Sie das neueste Bazel-Installationsprogramm herunter

wget https://github.com/bazelbuild/bazel/releases/download/0.18.0/bazel-0.18.0-installer-linux-x86_64.sh

3. Überprüfen Sie, ob Sie das Skript ausführen können, bevor Sie es ausführen

chmod +x bazel-0.18.0-installer-linux-x86_64.sh

4. Installieren Sie Bazel unter dem aktiven Benutzer mit dem Flag –user

./bazel-0.18.0-installer-linux-x86_64.sh --user

Möglicherweise müssen Sie Ihren Computer nach der Installation von Bazel neu starten.

5. Installieren Sie Docker

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce

6. Installieren Sie das jq Tool zum Formatieren von JSON-Daten

sudo add-apt-repository universe
sudo apt install jq

Für diesen Leitfaden verwenden wir einen Merkle-Baum mit einer Tiefe von 16, wodurch wir den Kompass 45 Tage hintereinander im Abstand von 1 Minute Meilenstein laufen lassen können.

Das Compass-Repository enthält ein Tool zum Generieren eines Merkle-Baums und zum Speichern in einem Datenordner, damit Compass es später verwenden kann.

1. Klonen Sie das Compass GitHub-Repository

git clone https://github.com/iotaledger/compass.git
cd compass

2. Erstellen Sie das Werkzeug „layer_calculator“, das den Merkle-Baum generiert

bazel run //docker:layers_calculator

Dieser Vorgang kann einige Zeit dauern. In der Konsole sollte Folgendes angezeigt werden:

INFO: SHA256 (https://github.com/grpc/grpc-java/archive/fe7f043504d66e1b3f674c0514ce794c8a56884e.zip) = 19c51698d4837d1978a10ed7a01f4e45a0b15bcbd3db44de2a2a1c3bdd1cf234
Analyzing: target //docker:layers_calculator (8 packages loaded)

3. Erstellen Sie einen Seed für Compass

cat /dev/urandom |LC_ALL=C tr -dc 'A-Z9' | fold -w 81 | head -n 1

4. Erstellen Sie eine Sicherung des Seed

5. Wechseln Sie in das Verzeichnis, das die Skripts zum Einrichten und Ausführen von Compass enthält

cd docs/private_tangle

6. Kopieren Sie die Beispielkonfigurationsdatei

cp config.example.json config.json

7. Öffnen Sie die Datei config.json und ersetzen Sie den Wert des seed Felds durch das Seed, das Sie in Schritt 3 generiert haben

nano config.json

8. Ändern Sie den Wert des depth Feld in 16

Die fertige config.json sollte so aussehen:

{
    "seed": "MYSEEDHEREPLEASEREPLACEMEIMMEDIATELYWITHSOMETHINGSECURE99999999999999999999999999",
    "powMode": "CURLP81",
    "sigMode": "CURLP27",
    "security": 1,
    "depth": 16,
    "milestoneStart": 0,
    "mwm": 9,
    "tick": 60000,
    "host": "http://localhost:14265"
}

9. Vergewissern Sie sich, dass Docker das Layer_calculator-Image kennt

sudo ../../bazel-bin/docker/layers_calculator

Wenn der Befehl nicht gefunden wurde, führen Sie Schritt 2 erneut aus.

In der Konsole sollte Folgendes angezeigt werden:

668afdbd4462: Loading layer  18.39MB/18.39MB
6189abe095d5: Loading layer  1.966MB/1.966MB
55b77d5f2576: Loading layer    100MB/100MB
b439be5d084f: Loading layer  16.15MB/16.15MB
Loaded image ID: sha256:164cc0fbec2cd2b1821d0442d7f63e52f0f34250c2b9af12f1dcddde12d7df56
Tagging 164cc0fbec2cd2b1821d0442d7f63e52f0f34250c2b9af12f1dcddde12d7df56 as iota/compass/docker:layers_calculator

10. Erstellen Sie den Merkle-Baum, indem Sie das Skript im Verzeichnis docs/private_tangle ausführen

sudo ./01_calculate_layers.sh

Dieser Vorgang dauert eine Weile (bei einer virtuellen Maschine mit 4 Kernen dauert dies etwa 15 Minuten). Nachdem der Prozess abgeschlossen ist, wird der Stamm des Merkle-Baums an die Konsole ausgegeben:

[main] INFO org.iota.compass.LayersCalculator - Calculating 65536 addresses.
...
[main] INFO org.iota.compass.LayersCalculator - Successfully wrote Merkle Tree with root: JMRTYHMGNZGNOLPSSBVLWRPMGIAMOXPLURNDIBKXIFTCJCLOYKH9FMVNKPBVFVMGSUFEYVUUIEARFQXAK

Der Merkle-Adressbaum wird im Datenverzeichnis gespeichert, sodass Compass es verwenden kann, wenn es ausgeführt wird.

Compass muss Meilensteine an einen IRI-Knoten senden. Compass sendet Meilensteine über eine HTTP-RPC-API (standardmäßig 14265) an einen IRI-Knoten
port oder an welchem Port während der Initialisierung übergeben wird.

Damit der IRI-Knoten Compass-Transaktionen als vertrauenswürdige Meilensteine erkennt, haben wir ein Skript erstellt, das den Standard-IRI-Docker-Container mit einigen zusätzlichen Parametern verwendet.

Der IRI-Knoten muss eine snapshot.txt-Datei verwenden, um den Anfangsstatus des Ledgers festzulegen.

Die Datei snapshot.example.txt fügt den gesamten IOTA-Vorrat von 2.7Pi in die erste Adresse ein, die vom folgenden Client-Seed generiert wird:

SEED99999999999999999999999999999999999999999999999999999999999999999999999

Die erste Adresse (Index 0) dieses Seeds ist

FJHSSHBZTAKQNDTIKJYCZBOZDGSZANCZSWCNWUOCZXFADNOQSYAHEJPXRLOVPNOQFQXXGEGVDGI

(ohne Prüfsumme).

1. Erstellen Sie eine Snapshot.txt-Datei

touch snapshot.txt
nano snapshot.txt

2. Fügen Sie der Datei snapshot.txt die folgende Zeile hinzu:

FJHSSHBZTAKQNDTIKJYCZBOZDGSZANCZSWCNWUOCZXFADNOQSYAHEJPXRLOVPNOQFQXXGEGVDGICLMOXX;2779530283277761

Hinweis: Überschreiten Sie nicht die maximale Menge von 2,7 Pi.

3. Führen Sie die IRI aus

sudo ./02_run_iri.sh

Hinweis: Wenn Sie einen malformed snapshot state file Fehler sehen, überprüfen Sie die Datei snapshot.txt und stellen Sie sicher, dass Sie keinen Zeilenumbruch am Zeilenende eingefügt haben. Wenn ein NumberFormatException Fehler oder ein IllegalArgumentException Fehler angezeigt wird, überprüfen Sie, ob sich keine Leerzeichen auf beiden Seiten des Semikolons befinden.

4. Drücken Sie in der Konsole STRG+C, um zur Shell-Sitzung zurückzukehren. Die IRI läuft weiterhin im Hintergrund.

Nachdem Sie den Merkle-Baum generiert haben und einen IRI-Knoten ausführen, können Sie Compass ausführen.

1. Gehen Sie zurück in Ihr Kompass-Verzeichnis und starten Sie Bazel

cd ~/compass/
bazel run //docker:coordinator

2. Führen Sie den Docker-Container aus

sudo ../../bazel-bin/docker/coordinator

3. Wechseln Sie in das Verzeichnis, das die Skripts zum Einrichten und Ausführen von Compass enthält

cd docs/private_tangle

4. Führen Sie den Compass aus

sudo ./03_run_coordinator.sh -bootstrap -broadcast

Compass sendet Meilensteine 🎉

Hinweis: Compass sendet keine Meilensteine mehr, wenn der Merkle-Baum keine Äste mehr hat. Um dieses Problem zu vermeiden, verwenden Sie einen geeigneten Wert für das depth Feld der Merkle-Baumkonfigurationsdatei.

Sie können über Trinity oder eine Clientbibliothek eine Verbindung zu Ihrem IRI-Knoten an Port 14265 herstellen.

  • Stellen Sie eine Verbindung zu Ihrem IRI-Knoten her
  • Geben Sie den Seed SEED99999999999999999999999999999999999999999999999999999999999999999999999 ein

Ihr Kontostand sollte 2,7 PI betragen (je nach verwendeter Client-Bibliothek oder Brieftasche müssen Sie möglicherweise die erste Adresse angeben).
Sie können gerne Testtransaktionen senden und sehen, wie sie von Compass-Meilensteinen bestätigt werden.


Anmerkung:

Der Inhalt kann durch die Übersetzung verfälscht sein. Im Zweifel gilt das englische Original der IOTA Foundation.

Quelle:https://docs.iota.org/docs/compass/0.1/how-to-guides/create-an-iota-network

  • Zuletzt geändert: 2019/02/10 15:00
  • von thoralf