Die NEM-Blockchain wird derzeit im Testnetz auf den Start der nächsten Version von Symbol vorbereitet. Inmitten eines solchen Zeitpunkts gibt es meines Erachtens zahlreiche Dokumentationen und Referenzinformationen zum Erstellen von Testnetzknoten für die nächste Version von Symbol. Überraschenderweise fiel es mir jedoch schwer, Dokumentationen und Referenzinformationen zum Erstellen von Knoten für die aktuelle Version der NEM-Blockchain zu finden. (Möglicherweise liegt auch mein eigenes Problem mit der Googleabilität vor ...) Zu meiner eigenen Erinnerung werde ich in diesem Artikel zusammenfassen, wie ein Knoten für die aktuelle Version von NEM (NIS1 ... NEM Infrastructure Server) auf Google Cloud Ploatform erstellt wird. Wenn Sie Fehler oder bessere Möglichkeiten haben, lassen Sie es mich bitte wissen. Vielen Dank.
NIS1 scheint Port 7890 für http und Port 7778 für WebSocket zu verwenden. Außerdem scheint es üblich zu sein, Port 7891 für https und Port 7779 für WebSocket (SSL) zu verwenden. Erstellen Sie eine Firewall-Regel wie im folgenden Beispiel gezeigt. Der Name und das Ziel-Tag sind kostenlos, das Ziel-Tag wird jedoch später in den VM-Einstellungen verwendet.
--Name: nem-http-allow
nem-http-allow
0.0.0.0 / 0
--Name: nem-https-allow
nem-https-allow
0.0.0.0 / 0
Als Ergebnis der Vorabuntersuchung und des Hörens von Gerüchten schien es, als würde eine schwere Verarbeitung so ablaufen, wie sie war, und so versuchte ich zunächst, sie auf eine höhere Spezifikation einzustellen. Wenn die Synchronisation zum Zeitpunkt der Ersteinstellung abgeschlossen ist und der Zustand stabil ist, ist es meiner Meinung nach besser, die Spezifikationen unter Berücksichtigung der Kosten einzugrenzen. Das Beispiel für die VM-Einstellung lautet wie folgt.
--Name: nem-mainnet-1
Nach einer Weile nach dem Erstellen der VM ist der Start der VM abgeschlossen, und Sie können auf die Auswahlliste "SSH" in der Spalte "Verbinden" in der Liste der VMs klicken. Wenn Sie darauf klicken, wird der Bildschirm für die SSH-Anmeldung bei der VM im Browser geöffnet. .. Nachfolgende Operationen werden hauptsächlich auf diesem Bildschirm ausgeführt.
Java 8 ist erforderlich, um NIS1 auszuführen. Installieren Sie es daher. Lassen Sie uns auch andere Updates durchführen. Führen Sie den folgenden Befehl aus.
sudo apt update
sudo apt install -y openjdk-8-jdk
Führen Sie den folgenden Befehl aus
java -version
Wenn Sie das folgende Ergebnis erhalten, ist die Installation erfolgreich.
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1ubuntu1-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
Das Tool zum Ausführen von NIS1 unter Linux wird in eine TGZ-Datei komprimiert und über die folgende URL verteilt. Laden Sie es herunter, dekomprimieren Sie es und verwenden Sie es. Neueste Version zum 30. Mai 2020: https://bob.nem.ninja/nis-0.6.97.tgz Seite mit Links zu anderen Versionen und verwandten Daten: https://bob.nem.ninja/
Sie können es mit dem folgenden Befehl als Dateinamen nis1.tgz herunterladen. Der Dateiname von nis1.tgz kann beliebig sein, solange er die Erweiterung .tgz hat. Lesen Sie jedoch im folgenden Dekomprimierungsbefehl den Teil des Dateinamens entsprechend.
curl -o nis1.tgz https://bob.nem.ninja/nis-0.6.97.tgz
(Wenn Sie es zum Zeitpunkt des Downloads mit dem Dateinamen nis1.tgz heruntergeladen haben) Sie können es mit dem folgenden Befehl entpacken. Wenn Sie es entpacken, haben Sie einen Ordner namens package.
tar -xzvf nis1.tgz
Wechseln Sie mit dem folgenden Befehl in den Paketordner
cd package
Öffnen Sie die Datei nix.runNis.sh (Shell-Skript zum Starten des Knotens) mit dem folgenden Befehl und ändern Sie sie. Hier ist ein Beispiel für die Verwendung von Nano als Editor. Verwenden Sie jedoch den Editor Ihrer Wahl.
nano nix.runNis.sh
Die Änderungen, die Sie mindestens vornehmen müssen, sind:
Bei den Standardeinstellungen scheint nicht genügend Speicher vorhanden zu sein, um normal zu starten. Dieses Mal erstelle ich eine VM mit 16 GB Arbeitsspeicher, daher werde ich den Sprung wagen und sie als Einstellung ausprobieren, die bis zu 14 GB Arbeitsspeicher für den NIS1-Prozess verwenden kann. (Möglicherweise funktioniert sogar eine etwas konservativere maximale Speicherzuweisung.)
Wenn ich das Knotenstart-Shell-Skript standardmäßig ausführe, wird NIS1 im Vordergrund ausgeführt. Dadurch wird NIS1 beim Abmelden zum Beenden gezwungen. Durch Hinzufügen von "nohup" am Anfang des Startbefehls und "&" am Ende des Startbefehls kann es im Hintergrund ausgeführt werden, auch wenn Sie nicht angemeldet sind.
変更前のnix.runNis.sh
#!/bin/bash
cd nis
java -Xms512M -Xmx1G -cp ".:./*:../libs/*" org.nem.deploy.CommonStarter
cd -
変更後のnix.runNis.sh
#!/bin/bash
cd nis
nohup java -Xms512M -Xmx14G -cp ".:./*:../libs/*" org.nem.deploy.CommonStarter &
cd -
Wenn Nano als Editor zum Überschreiben und Speichern verwendet wird, drücken Sie zuerst "Strg" + "X", dann "Y", und wenn der Dateiname angezeigt wird, drücken Sie "Enter".
Nachdem Sie den Knoten gestartet haben, starten Sie den Knoten mit dem folgenden Befehl.
./nix.runNis.sh
Da es so eingestellt ist, dass es im Hintergrund arbeitet, wird auch nach dem Start keine spezielle Meldung usw. auf dem Bildschirm angezeigt. Drücken Sie daher die API, um Blockhöhen- und Knoteninformationen von außen abzurufen, und ein entsprechender Wert wird zurückgegeben. Lass uns nachsehen. Bitte lesen Sie die IP-Adresse als Ihre eigene Umgebung.
http://35.200.86.73:7890/chain/height
{"height":44967}
Da es kurz nach dem Start ist, können Sie sehen, dass die Synchronisation noch nicht abgeschlossen wurde und die Synchronisation nur an einer Stelle abgeschlossen wurde, die viel niedriger als die letzte Blockhöhe ist. Diese Zahl nimmt nach und nach zu, und wenn die neueste Blockhöhe erreicht wird, wird die Konstruktion der Knoten einmal getrennt.
Um die für diese Synchronisation erforderliche Zeit zu verkürzen, ist es ursprünglich möglich, die DB-Informationen der Blockchain bis zu einem gewissen Grad separat herunterzuladen und zu erweitern. Daher möchte ich diese Methode irgendwo hinzufügen. Ich bin.
http://35.200.86.73:7890/node/info
{
"metaData": {
"features": 1,
"application": null,
"networkId": 104,
"version": "0.6.97-BETA",
"platform": "Private Build (1.8.0_252) on Linux"
},
"endpoint": {
"protocol": "http",
"port": 7890,
"host": "35.200.86.73"
},
"identity": {
"name": "NBAKSE34ZOWCIZC4AUU2XXMNAANH7BSXMGV4AYEC",
"public-key": "79140632da5b00327bba8d5cb3b258d04843c10520cb757fde1a5a859f0ae567"
}
}
Wenn Sie außerdem auf die API für Knoteninformationen usw. klicken, vertiefen Sie Ihr Vertrauen in Ihre eigenen Einstellungen. Sie können sehen, dass die Netzwerk-ID 104 MAIN_NET angibt, das die NIS1- und Java-Versionen sowie das API-Protokoll, den Port und den Hostnamen angibt. Ein wenig interessant fand ich auch, dass ein NEM-Konto automatisch als Identität generiert wird, wenn der Knoten gestartet und als Kennung verwendet wird. (Ich frage mich, ob diese Konten mit den Ernteeinstellungen usw. zusammenhängen.)
Nachdem ich es durchgearbeitet hatte, dachte ich: "Läuft nur das Shell-Skript?" (Daher gibt es viele Teile, die nicht erklärt werden müssen ... und Sie können möglicherweise nicht viele Informationen finden, wie z. B. eine solide Prozedur ... Natürlich erfolgt dies intern nach dem Starten des Shell-Skripts. Ich habe den Eindruck, dass es sehr kompliziert ist, dort zu sein ...)
Starten Sie es vorerst und lassen Sie es in Ruhe! Wenn das Niveau gut ist (≒ dieses Artikellevel), habe ich einen einfachen Eindruck bekommen.
Wo ist jedoch die Korrektur des Maximalwerts des Speichers, der Punkt, an dem standardmäßig der Vordergrund ausgeführt wird, und der Speicherort des NIS1-Hauptprogramms? Ich habe das Gefühl, dass es einige "Suchtpunkte" gibt, daher habe ich mich für Benutzer gefreut, die in Zukunft NIS1 erstellen werden, wenn es standardmäßig keine solchen Suchtelemente gibt.
Ich möchte zu gegebener Zeit die folgenden Inhalte hinzufügen.
Ich bezog mich auf die folgenden Informationen. Vielen Dank an alle Pioniere.
--NIS1-Knotenkonstruktion des offiziellen NEM-Blogs: https://blog.nem.io/ubuntu-installation-guide-standalone/ --NIS 1-Knoten-SSL-Konvertierung des offiziellen NEM-Blogs: https://blog.nem.io/https-nis-node/ --NIS1-Knotenaufbau von Testnetz: https://blog.44uk.net/2018/02/12/up-nem-testnet-node/ --Mainnet NIS1-Knotenaufbau: https://mizunashi-rin.hatenablog.jp/entry/2017/02/15/002342 --NIS 1-Knoten-SSL: https://blog.44uk.net/2017/10/31/nis-with-https-by-dehydrated/