Was ist IOTA.partners?

iota.partners ist eine interaktive Anleitung zum Installieren einer IOTA Node auf einem Linuxserver mit Erweiterungen aus der Community, wie z. B. Nelson oder Field. Für die Überwachung und Visualisierung der Node wird Prometheus mit Grafana verwendet. OpenResty wird zusätzlich als Proxy eingesetzt, der es erlaubt beliebige API-Befehle lokal und nicht öffentlich zugänglich zu machen. Außerdem wird ein Script installiert, dass die Node automatisch aktualisiert und es gibt die Möglichkeit eine bereits synchronisierte Datenbank herunterzuladen.

Die Anleitung ist so gestaltet, dass man sie auch als ein Nachschlagewerk für den Betrieb einer Node und darüber hinaus auch für verschiedene Lösungen rund um Linuxserver nutzen kann.

Zu der Anleitungsseite gehören auch 4 starke physikalische Server mit je einer Node (auf http://field.deviota.com gelistet) die es mir erlauben, jederzeit eine synchronisierte Datenbank zur Verfügung zu stellen. Dies hat den Vorteil, dass z. B. bei einem Bug in der IRI oder das Tangle nicht rund läuft, die restlichen Nodes es schwer haben synchronisiert zu bleiben. Zu Zeiten von IRI-Versionen um 1.4 ist das passiert und iota.partners war eine Zeit lang die einzige öffentliche Ressource, die eine synchronisierte Datenbank zum Download anbot.

An welche Zielgruppe ist das Projekt gerichtet?

Die Anleitung kann von allen verwendet werden die einen IOTA Node betreiben wollen und Grundkenntnisse im Umgang mit der Linux-Shell haben. Allerdings haben es auch dutzende Windowsanwender ohne Linuxkenntnisse geschafft mit dieser Anleitung einen Node zu installieren.

Auf welche Vision stützt sich das Projekt?

Ursprünglich sollte das Projekt dabei helfen viele Nodes online zu bekommen, um das Tangle zu stärken. Als ich vor etwa einem Jahr mit dem Projekt angefangen habe, gab es zwar schon einige Anleitungen aber diese sind meiner Meinung nach entweder unvollständig, zu kompliziert oder bieten dem Anwender nicht die volle Kontrolle über die Installation, bzw. nicht die vollständige Übersicht über die Installationsprozesse. Das ist insbesondere für Anwender wichtig, die eine Node auf bereits im Betrieb befindliche Server installieren wollen.

Abhängig vom Ausgang meiner „Development Fund“-Bewerbung, möchte ich den gesamten Installationsprozess in einem Programm (für diverse Linuxarchitekturen) zusammenzufassen, dass über eine API steuerbar sein soll. Das Programm (eine einzelne ausführbare Datei) wird auf einem Server (oder IoT-Gerät) installiert und ermöglicht es diesen anschließend komfortabel über eine Web-UI zu installieren und zu verwalten. Außerdem will ich die Webseite um Anleitungen (auch mit Videos) für IoT-Geräte erweitern. Für alle Geräte- und Servertypen soll es eigene Bereiche mit Austauschmöglichkeiten für die Community geben, so dass sich interessierte z. B. darüber austauschen können, welche Speichermöglichkeit man idealerweise z. B. für ein bestimmtes IoT-Gerät verwendet und wie man diese konfiguriert.

Somit habe ich die Vorstellung, dass iota.partners irgendwann mal die erste Anlaufstelle für die Community ist, wenn es um die Installation und um den Betrieb von IOTA Nodes/(IoT)-Hardware geht. Natürlich sollen dann all diese Geräte das Tangle schneller und stabiler machen.

Welche Hard- und Software verwendest du?

Wie schon weiter oben erwähnt, werden bei iota.parterns vier physikalische Server mit ausreichend starker Leistung eingesetzt um die Webseite zu betreiben. Auf diesen Servern ist dann jeweils noch einmal eine Node installiert, was es ermöglicht ein Abbild der Datenbank für die Community zum Download anzubieten. Dabei spielt natürlich die Bandbreite bzw. die Uploadgeschwindigkeit eine wichtige Rolle.

Wie läuft das Ganze technisch ab?

Der reverse proxy OpenResty ist der zentrale Teil in der Installation. Die IRI API resources werden nämlich nicht über die URL (z. B. “/api/node/info“) sondern über POST Befehle ({“command“: “getNodeInfo“}) gesteuert, was eine klassische Autorisierung anhand der URL/Ressource unmöglich macht. Wir brauchen aber eine Autorisierung pro Befehl, weil wir bestimmte API Befehle, wie z.B. “removeNeighbors“ natürlich nicht öffentlich verfügbar machen wollen. Damit könnte nämlich jeder aus dem Internet die Nachbarn eines Nodes entfernen, was wir nicht wollen. Hier kommt OpenResty zum Einsatz der auf Nginx basiert und um die Skriptsprache “Lua“ erweitert ist. Lua ermöglicht es uns den Proxy zu „programmieren“ und zwar so, dass der request body (z.B. {“command“: “getNodeInfo“}) der von einer externen Quelle (Internet) kommt analysiert wird und etwaige Befehle extrahiert werden. In unserem Beispiel erkennt OpenResty, dass der request den Befehl “getNodeInfo“ beinhaltet und gleicht diesen mit der whitelist “allowed_pub_commands“ für die öffentlich erlaubten Befehle ab. Bei einer Übereinstimmung wird der Befehl ausgeführt, bzw. die Ressource aufgerufen, ansonsten wird der code 405 “Method Not Allowed“ zurückgegeben.

Wer ist der Projektinitiator?

Man kennt mich vorallem im IOTA Discord unter dem Namen Zoran (Zoran#1227), dort bin ich Moderator und helfe der Community, gerade was den Betrieb einer IOTA-Node betrifft.

Welche Kenntnisse und Erfahrungen hast du?

Ich bin seit knapp 20 Jahren als Software- und Systems Engineer tätig und verfüge natürlich somit auch über die entsprechenden Kenntnisse, um das Projekt so aufzubauen und weiterzuentwickeln.

Was hat dich motiviert, das Projekt voranzubringen?

Ich habe das IOTA-Projekt seit den Anfängen beobachtet und glaube, dass IOTA in Zukunft eine bedeutende Rolle in der heutigen Welt spielen wird. Vor einem Jahr habe ich erkannt, dass ich einen Beitrag leisten kann und habe mich an die Arbeit gemacht. Daraus ist dann schlussendlich iota.partners entstanden.

Was motiviert dich dazu, das Projekt fortzuführen?

Ich bekomme laufend positives Feedback und sehe, dass das Projekt sinnvoll ist und etwas bewirkt. Außerdem habe ich natürlich die Hoffnung, dass ich mich in Zukunft diesem Projekt auch beruflich widmen kann. Abgesehen von iota.partners habe ich noch andere konkrete IOTA-Projekte, diese sind aber erst realisierbar, wenn Qubic einsetzbar ist.

Kann die Community dir helfen? Wenn ja, wie?

Mir kann die Community nur indirekt helfen, indem sie neue IOTA-Nodes installiert. Dies bietet zwar mir keinen Vorteil, hilft aber, dass das Tangle immer stabiler und besser läuft. Wer meine Arbeit direkt unterstützen möchte, der findet eine entsprechende IOTA-Spenden-Adresse auf der iota.partners-Webseite. 😀

Unsere Fazit vom einfachIOTA-Team

Wir von einfachIOTA sind der Meinung, dass der gute Zoran mit seinem Projekt einen sehr großen Beitrag im Ökosystem von IOTA geleistet. Er ermöglicht es, durch einfache Copy & Paste-Befehle eine eigene IOTA-Node aufzusetzen, ohne dabei den Nutzer selbst im Dunkeln stehen zu lassen. Zu jedem Befehl gibt es eine kleine Erklärung, wofür dieser nun gut ist (Achtung! Der Text ist auf „englisch“). Auch wir haben schon eine IOTA-Node mit dem Tutorial von iota.partners aufgesetzt und hatten damit keine Schwierigkeiten. Für die Zukunft hoffen wir natürlich, dass Zoran seine Planung für die Weiterentwicklung seines Projekts umsetzen kann.

Wir wünschen ihm dafür viel Erfolg und bedanken uns für das Interview!

Webseite: https://iota.partners

Twitter: https://twitter.com/iota_Partners

Ecosystem: https://ecosystem.iota.org/tut…rtners-full-node-tutorial