IRI Node betreiben (Linux)

Wenn Sie die IRI auf einem Linux-Server ausführen, wird sie zu einem IRI-Knoten, über den Sie direkt auf ein IOTA-Netzwerk zugreifen können. Indem Sie einen IRI-Knoten ausführen, tragen Sie dazu bei, dass das IOTA-Netzwerk besser verteilt wird, indem Sie die Anzahl der Ledger erhöhen und die Transaktionen des benachbarten IRI-Knotens überprüfen.

Um die IRI auszuführen, muss Ihr Server die folgenden Mindestanforderungen erfüllen:

  • 4 GB RAM
  • 64-Bit-Prozessor
  • Eine öffentliche IP-Adresse: Entweder eine statische IP-Adresse oder eine dynamische IP-Adresse, die mit einem dynamischen DNS wie noip.com verbunden ist

Standardmäßig verwendet die IRI die folgenden Ports. Wenn Sie einen Linux-Server in Ihrem lokalen Netzwerk betreiben, müssen Sie diese Ports an die öffentliche IP-Adresse Ihres Computers weiterleiten.

  • UDP-Nachbar-Peering-Port: 14600
  • TCP-Nachbar-Peering-Port: 14600
  • TCP-API-Port: 14265

Die IRI ist Java-Software und muss daher in einer Java-Laufzeitumgebung (JRE) ausgeführt werden.

Sie haben zwei Möglichkeiten, die neueste IRI-Software herunterzuladen:

  • Laden Sie die vorgefertigte Java-Datei von GitHub herunter (schnellste Option)
  • Erstellen Sie die Java-Datei aus dem Quellcode auf GitHub

Die vorgefertigte IRI-Java-Datei ist im IOTA-GitHub-Repository verfügbar.

1. Installieren Sie die neuesten Sicherheitspatches für Ihr System

$ sudo apt-get update
$ sudo apt-get upgrade -y

2. Erstellen Sie ein Verzeichnis, in das die IRI-Java-Datei heruntergeladen werden soll. Ändern Sie jake in Ihren Linux-Benutzernamen.

$ mkdir /home/jake/node

Hinweis: Wenn in der Konsole 'mkdir: Verzeichnis kann nicht erstellt werden' angezeigt wird, haben Sie den Befehl wahrscheinlich kopiert und eingefügt, ohne dass er jake in Ihren Linux-Benutzernamen geändert hat.

3. Laden Sie die Java 8 JRE herunter und installieren Sie sie

$ export JAVA_VERSION=8u201-1
$ sudo apt-get install -y software-properties-common --no-install-recommends
$ sudo add-apt-repository -y ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install -y oracle-java8-installer=${JAVA_VERSION}~webupd8~1 --no-install-recommends
$ sudo apt install oracle-java8-set-default

4. Akzeptieren Sie die Oracle-Nutzungsbedingungen

5. Laden Sie die neueste IRI-Java-Datei in Ihr Knotenverzeichnis herunter. Ändern Sie jake in Ihren Linux-Benutzernamen.

$ sudo wget -O /home/jake/node/iri-${VERSION}.jar https://github.com/iotaledger/iri/releases/download/v${VERSION}/iri-${VERSION}.jar

Hinweis: Ersetzen Sie die Variable ${VERSION} durch die neueste Version der IRI. Stellen Sie sicher, dass Sie die gesamte Version einschließen, z. B. 1.6.0-RELEASE.

Der Download kann einige Zeit dauern. Sie sollten in der Konsole etwa Folgendes sehen, wenn alles gut lief:

HTTP request sent, awaiting response ... 200 OK
'/home/jake/node/iri-1.6.0-RELEASE.jar' saved [175441686/175441686]

Nachdem Sie die IRI-Java-Datei auf Ihrem Server gespeichert haben,konfigurieren Sie die IRI, bevor Sie sie ausführen.

Anstatt die vorgefertigte IRI-Java-Datei herunterzuladen, möchten Sie die Datei aus einem der folgenden Gründe erstellen:

  • Sie möchten sicher sein, dass der von Ihnen ausgeführte Code dem Quellcode entspricht
  • Sie möchten den Code vor der Ausführung ändern

1. Installieren Sie das Maven Build-Tool

$ export MAVEN_VERSION=3.5.4
$ export USER_HOME_DIR="/root"
$ export SHA=b52956373fab1dd4277926507ab189fb797b3bc51a2a267a193c931fffad8408
$ export BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries
$ sudo apt-get update && apt-get install -y --no-install-recommends curl
$ sudo mkdir -p /usr/share/maven /usr/share/maven/ref
$ sudo curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz

# Check the sha256 checksum, the output should read 'OK' if the checksum is correct

$ echo "${SHA} /tmp/apache-maven.tar.gz" | sha256sum -c -
$ sudo tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1
$ sudo rm -f /tmp/apache-maven.tar.gz
$ export MAVEN_HOME=/usr/share/maven
$ export MAVEN_CONFIG="${USER_HOME_DIR}/.m2"

Hinweis: Ändern Sie die Variable USER_HOME_DIR in den von Ihnen gewählten Pfad.

1. Installieren Sie Git

$ sudo apt-get update && apt-get install -y --no-install-recommends git

2. Erstellen Sie die IRI-Java-Datei

$ git clone https://github.com/iotaledger/iri.git
$ cd iri

# Checkout the latest tag

$ export TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
$ git checkout ${TAG}
$ mvn clean package

Die IRI-Java-Datei wird in einem Verzeichnis namens target erstellt.

Die IRI wird in einer virtuellen Java-Maschine ausgeführt.

Bevor Sie die IRI ausführen, müssen Sie einige Java-Variablen einrichten und die IRI-Konfigurationsoptionen festlegen.

1. Erstellen Sie die Java-Variablen, die zum Ausführen der IRI in der virtuellen Java-Maschine verwendet werden. Stellen Sie sicher, dass Sie die Variable IRI_JAR_PATH in den Pfad Ihrer IRI-Java-Datei ändern.

$ export JAVA_OPTIONS="-XX:+UnlockExperimentalVMOptions -XX:+DisableAttachMechanism -XX:InitiatingHeapOccupancyPercent=60 -XX:G1MaxNewSizePercent=75 -XX:MaxGCPauseMillis=10000 -XX:+UseG1GC"
$ export JAVA_MIN_MEMORY=2G
$ export JAVA_MAX_MEMORY=4G

2. JAVA_OPTIONS: Befehle zur Optimierung der virtuellen Java-Maschine

3. JAVA_MIN_MEMORY: Die anfängliche Speicherzuordnung für die Java Virtual Machine

4. JAVA_MAX_MEMORY: Die maximale Speicherzuordnung für die Java Virtual Machine

5. Erstellen Sie eine IRI-Konfigurationsdatei in demselben Verzeichnis wie Ihre IRI-Java-Datei. Ändern Sie jake in Ihren Linux-Benutzernamen.

$ nano /home/jake/node/config.ini

Lassen Sie die Datei vorerst leer. Die Standard IRI-Konfigurationsoptionen sind für dieses Setup ausreichend. Wenn Sie die Konfigurationsoptionen ändern möchten, bearbeiten Sie die Datei config.ini und fügen Sie die Konfigurationsoptionen hinzu, die Sie ändern möchten.

Hinweis: Wenn Sie einen permanenten Modus ausführen möchten (alle Transaktionen im Ledger behalten), setzen Sie den Konfigurationsparameter LOCAL_SNAPSHOTS_PRUNING_ENABLED auf false .

Wenn Sie die IRI heruntergeladen und konfiguriert haben, ist es Zeit, sie auszuführen.

1. Erstellen Sie ein Verzeichnis für die Datenbank und die IXI-Ordner (IOTA-Austauschschnittstellenordner). Ändern Sie jake in Ihren Linux-Benutzernamen.

$ mkdir -p /home/jake/node/data
$ cd /home/jake/node/data

2. Führen Sie die IRI aus. Ändern Sie jake in Ihren Linux-Benutzernamen.

$ java ${JAVA_OPTIONS} -Xms${JAVA_MIN_MEMORY} -Xmx${JAVA_MAX_MEMORY} -Djava.net.preferIPv4Stack=true -jar /home/jake/node/iri-${VERSION}.jar

Das IRI beginnt, Protokolle an die Konsole auszugeben.

Damit die IRI Ihre config.ini-Datei lesen kann, fügen Sie den Pfad nach dem Flag -c hinzu. Zum Beispiel:

$ java ${JAVA_OPTIONS} -Xms${JAVA_MIN_MEMORY} -Xmx${JAVA_MAX_MEMORY} -Djava.net.preferIPv4Stack=true -jar /home/jake/node/iri-${VERSION}.jar -c /home/jake/node/config.ini

Glückwunsch 🎉 Sie betreiben jetzt einen IRI-Knoten!

3. Öffnen Sie ein neues Terminalfenster auf Ihrem Linux-Server und installieren Sie Curl und JQ. Curl wird verwendet, um REST-API-Anforderungen an Ihren IRI-Knoten zu senden. JQ ist ein Befehlszeilenprozessor, der JSON-Daten in einem leicht lesbaren Format anzeigt.

$ sudo apt install curl jq

4. Rufen Sie den Endpunkt getNodeInfo auf, um allgemeine Informationen zum IRI-Knoten anzufordern

$ curl -s http://localhost:14265 -X POST -H 'X-IOTA-API-Version: 1' -H 'Content-Type: application/json' -d '{"command": "getNodeInfo"}' | jq

In der Konsole sehen Sie etwa Folgendes:

{
"appName":"IRI",
"appVersion":"1.6.0-RELEASE",
"jreAvailableProcessors":1,
"jreFreeMemory":1037385664,
"jreVersion":"1.8.0_201",
"jreMaxMemory":4294967296,
"jreTotalMemory":2147483648,
"latestMilestone":"999999999999999999999999999999999999999999999999999999999999999999999999999999999",
"latestMilestoneIndex":933210,
"latestSolidSubtangleMilestone":"999999999999999999999999999999999999999999999999999999999999999999999999999999999",
"latestSolidSubtangleMilestoneIndex":933210,
"milestoneStartIndex":-1,
"lastSnapshottedMilestoneIndex":933210,
"neighbors":0,
"packetsQueueSize":0,
"time":1548407444641,
"tips":0,
"transactionsToRequest":0,
"features":["snapshotPruning","dnsRefresher","tipSolidification"],
"coordinatorAddress":"KPWCHICGJZXKE9GSUDXZYUAPLHAKAHYHDXNPHENTERYMMBQOPSQIDENXKLKCEYCPVTZQLEEJVYJZV9BWU",
"duration":26
}

In der Ausgabe werden Sie feststellen, dass der Wert des neighbors Feld 0 ist. Der IRI-Knoten ist noch nicht mit einem IOTA-Netzwerk verbunden. Dazu müssen Sie eine Verbindung zu benachbarten IRI-Knoten herstellen.

5. Suchen Sie nach Nachbarn und fügen Sie deren URL oder IP-Adresse zu Ihrer config.ini-Datei hinzu

Nun, da Ihr Knoten betriebsbereit ist, beginnt er damit, das Ledger mit dem Netzwerk zu synchronisieren. Geben Sie Ihrem Knoten etwas Zeit für die Synchronisierung oder lesen Sie unseren Fehlerbehebungsleitfaden, falls Ihr IRI-Knoten nicht synchronisiert wird.

Die IRI wird als synchronisiert betrachtet, wenn das Feld latestMilestoneIndex dem latestSolidSubtangleMilestoneIndex Feld entspricht.

Das latestMilestoneIndex Feld ist der Index des neuesten Meilensteins, den das IRI von seinen Nachbarn erhalten hat.

Das Feld latestSolidSubtangleMilestoneIndex ist der Index des neuesten Meilensteins, für den das Ledger des IRI-Knotens alle Transaktionen enthält, auf die der Meilenstein direkt und indirekt verweist.

Die Felder latestMilestoneIndex und latestSolidSubtangleMilestoneIndex sind nur dann genau, wenn der IRI-Knoten mit synchronisierten Nachbarn verbunden ist.

1. Um das aktuelle Feld für den latestMilestoneIndex zu überprüfen, gehen Sie zu unserem Discord und geben Sie !milestone in einen der Channels ein

2. Um diese Felder für Ihren IRI-Knoten zu prüfen, rufen Sie den getNodeInfo API-Endpunkt auf

$ sudo apt install curl jq
$ curl -s http://localhost:14265 -X POST -H 'X-IOTA-API-Version: 1' -H 'Content-Type: application/json' -d '{"command": "getNodeInfo"}' | jq

Hinweis: Es kann etwas dauern, bis die IRI synchronisiert ist. Hilfe bei Problemen finden Sie in unserer Anleitung zur Fehlerbehebung.

Anmerkung:

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

Quelle: https://docs.iota.org/docs/iri/0.1/how-to-guides/run-an-iri-node-on-linux)

  • Zuletzt geändert: 2019/02/06 15:34
  • von vrom