Hornet Full-Node

Hier begleite ich in Zukunft das Community-Projekt HORNET, welches sich derzeit am Anfang der Entwicklung befindet. (Stand Okt.’19)

 

HORNET ist ein Projekt welches aus dem IOTA Ecosystem-Development-Fund (EDF) mit 154.500 € gefördert wird. Die Förderung geht an die TangleKit GbR, einem Unternehmen, das speziell für die Herstellung von Produkten und Dienstleistungen auf Basis der IOTA-Technologie gegründet wurde. Die drei Gründer sind in der Community bekannt, es sind Sebastian Fuchs (IoTMOD), Maximilian Hase (muXxer) und Alexander Sporn (alexsporn). Das Unternehmen TangleKit GbR bietet bereits einen Service namens POWSRV.io für das IOTA Netzwerk an, dieser ermöglicht einen schnellen "Proof of work as a service" für Geräte mit begrenzter Rechenleistung.

Durch die Unterstützung bei der Entwicklung verschiedener Full-Node-Implementierungen wie IRI, cIRI und Hercules sowie durch die Entwicklung eines leistungsstarken IOTA-Transaktionsspammers mit mehreren Angriffsstrategien haben sich die drei Community Mitglieder in der Vergangenheit viel Wissen über die IOTA-Technologie angeeignet. Dieses Wissen soll nun in Form der optimierten Open-Source Full-Node Software HORNET dem IOTA-Ökosystem zugutekommen.

Hauptziel dieses neuen Projekts ist es, einen vollständig in der Programmiersprache Go geschrieben Full-Node namens HORNET für das Mainnet zu entwickeln. HORNET soll die Installation und den Betrieb eines Full-Node auf Low-End-Geräten wie einem Raspberry Pi mit deutlich gesteigerter Leistung ermöglichen. Bei der Entwicklung soll Funktionsparität mit der IOTA Full-Node-Software IRI v1.8.0 erreicht werden, darüber hinaus soll HORNET, die derzeit bekannten Engpässe in der IRI-Software beheben (z. B. Tip-Selection).

Meilenstein 1 - HORNET erwacht

Am 6. Oktober 2019 meldete das Team ihren ersten Fortschrittsbericht, nachfolgend sind die wichtigsten Punkte aufgelistet:

  • HORNET soll zu einer Full-Node-Software werden, die von der Community für die Community erstellt wird.
  • Nach vielen Diskussionen, sowohl intern als auch mit IOTA Foundation, wie man HORNET am effizientesten gestalten kann, wurde in den letzten Wochen eine solide Basis für HORNET geschaffen.
  • Als Basis für HORNET wurde das modulare Konzept von GoShimmer verwendet, es war nicht nötig, das Rad neu zu erfinden. Mit diesem Konzept sollte es in Zukunft auch möglich sein, Module von GoShimmer ohne viele Änderungen am Code auch in HORNET zu implementieren.
  • HORNET kann zum jetzigen Zeitpunkt bereits eine Verbindung mit IRI- oder HORNET-Nodes herstellen und mit ihnen kommunizieren, dazu wurde der Netzwerkcode intensiv optimiert.
  • Die Datenbank- und Cachestruktur sind bereits eingerichtet, so dass Transaktionen bereits bearbeitet und gespeichert werden können.
  • Die Compass (Koordinator) Meilensteine können auch synchronisiert und verfestigt werden.
  • Um eine vollständige Synchronisation zu ermöglichen, wurde die Möglichkeit implementiert, lokale Snapshots zu laden. Seitdem IRI die RocksDB (eine leistungsstarke eingebettete Datenbank für Schlüsselwertdaten) für die Ausgabe-Adressen verwendet, konnten leider keine IRI-Snapshots geladen werden, ohne diese vorher zu konvertieren. Dazu gibt es ein neues Tool, das die Konvertierung durchführt, so dass ggf. jede lokale IRI-Snapshot verwendet werden kann.
  • Um HORNET effizient testen zu können, wurde ein eigenes Testnetz (HORNET-Hive) eingerichtet. Hier kann das Team, ohne das Mainnet zu benutzen, verschiedene Szenarien wie hohes TPS, Angriffe und so weiter testen.
  • Aufgrund des frühen Stadiums der Entwicklung wurde entschieden, den Code vorerst noch nicht zu veröffentlichen. Der Quellcode ändert sich derzeit noch sehr häufig und teilweise bei mehreren Dateien gleichzeitig. Da die Web-API ohnehin noch fehlt, kann HORNET in diesem Entwicklungsstadium nicht mit den Clientlibs oder Trinity verwendet werden, daher macht das Testen von HORNET für die Community im Moment noch keinen Sinn.

 

Was kommt als Nächstes?

Im Meilenstein zwei soll die vom IRI bekannte Web-API (Anwendungsprogrammierschnittstelle) zusammen mit ZeroMQ und dem Ledger-Status implementiert werden. Nach Erreichen des zweiten Meilensteins wird es daher für die Community möglich sein, HORNET zu testen, es wird allerdings empfohlen, diesen Entwicklungsstand noch nicht im Mainnet zu verwenden.

 

 

 

 

 

Update 11. Dez‘19

Meilenstein 2 + 3 - WEN HORNET?  Ab sofort!

Es ist nun mehr als zwei Monate her, dass wir den letzten Meilensteinbericht veröffentlicht haben. Dafür gibt es einen Grund: Wir haben gleich zwei Meilensteine erreicht, damit Sie HORNET endlich richtig testen können. HORNET beta ist jetzt veröffentlicht!

Um die Entwicklung von HORNET noch schneller zu gestalten, freuen wir uns über ein neues Teammitglied. Von der IOTA-Foundation erhielten wir Unterstützung in Person von Luca Moser. Er fungiert auch als Brücke zwischen dem Entwicklungsteam der IOTA Foundation und uns.

In den letzten zwei Monaten haben wir die Implementierung der IRI-API abgeschlossen, so dass Sie HORNET nun zusammen mit den IOTA-Client-Bibliotheken und dem Trinity-Wallet nutzen können. Denken Sie daran: HORNET wird als Beta-Version und nur zu Testzwecken veröffentlicht und berücksichtigen Sie dies bei der Auswahl der IOTA-Beträge, die Sie versenden.

Wir übersprangen die triviale Tip-Auswahl und implementierten die Tip-Auswahl, die IRI verwendet. Dies wurde durch Meilenstein drei definiert. Dabei hat HORNET den gleichen Tip-Auswahlalgorithmus wie IRI verwendet, HORNET ist immer noch weitaus schneller als IRI, da Verbesserungen auf der Implementierungsebene vorgenommen wurden.

 

Wie in unserem zweiten Meilenstein definiert, haben wir auch die von IRI bekannten ZMQ (ZeroMQ) Themen umgesetzt. Auf diese Weise können Sie HORNET verwenden, um Tangle-Ereignisse zu sehen.

Dank der Community haben wir nun ein schönes Logo. Sie finden dieses Logo an verschiedenen Stellen im HORNET, z.B. im neuen Dashboard.

 

 

Mit dem Dashboard können Sie Ihren HORNET-Node und Ihre Nachbarschafts-Statistiken überwachen. Und obendrein hast du jetzt deinen eigenen Tangle Explorer. Der Tangle Explorer ist stark von TheTangle.org inspiriert und sollte nicht als Ersatz für TheTangle.org gesehen werden, sondern als Ergänzung. Das Dashboard-Design ist noch nicht abgeschlossen. Die IOTA Foundation arbeitete freundlicherweise an einem neuen Design, das in eine zukünftige Version von HORNET integriert werden könnte.

Der nächste Schritt, definiert durch Meilenstein vier, ist die Implementierung lokaler Snapshots zur Unterstützung von Nodes mit begrenztem Speicherplatz.

 

Aber kommen wir zu dem, worauf ihr alle gewartet habt. Ab sofort können Sie vorkompilierten Programmpakete für alle gängigen Architekturen und Betriebssysteme herunterladen oder wenn Sie HORNET noch selbst kompilieren wollen, so ist dies leicht zu bewerkstelligen, indem man einfach das Git-Repository klont und Go Build ausführt.

Sie finden unser GitHub-Repository und die neuesten Releases unter https://github.com/gohornet/hornet

 

 

 

Update 22. Jan‘20

 

Meilenstein 4 + 5 - Bitte kurz halten!

 

Seit der Veröffentlichung von HORNET als Beta-Version vor etwa einem Monat haben wir eine Menge Feedback erhalten. Vor allem positive.

Wir sind stolz darauf, dass die Gemeinschaft so gut in die Entwicklung des HORNETs eingebunden ist. Durch Testen, aber auch durch das Beheben von Fehlern und das Hinzufügen von Funktionen.

Besonderer Dank geht an die Gemeinschaftsmitglieder Dave [EF] für das ausgiebige Testen von HORNET auf verschiedenen Betriebssystemen und an Thoralf für die Fehlerbehebung.

Vielen Dank! So sollte ein Gemeinschaftsprojekt funktionieren!

 

Im letzten Monat haben wir hart daran gearbeitet, HORNET zu verbessern und neue Funktionen hinzuzufügen. Einige Zahlen:

  • 270 Commits (bestätigende Änderungen)
  • 61 pull requests merged (geänderter Code der in den Basiscode eingeflossen ist)
  • 27 issues closed (ein behobenes Problem wurde vom Team als behoben bestätigt)
  • 15 releases published (Freigaben veröffentlicht)

 

Einige neue Funktionen sind:

  • Das Spammer-Plugin: Automatische Ausgabe von Nullwert-Transaktionen mit HORNET
  • Das Monitor-Plugin: Mit diesem Plugin haben Sie Ihren eigenen tanglemonitor.com
  • Das Graphen-Plugin: Mit diesem Plugin haben Sie Ihr eigenes tangle.glumb.de
  • Das MQTT-Plugin: Dieses Plugin bietet alle von ZMQ bekannten Themen, verwendet aber MQTT

 

Mit der neuesten Version (0.3.0) ist HORNET nun in der Lage, lokale Snapshots zu erstellen und seine Datenbank zu bereinigen. Dies wurde durch den Meilenstein 4 definiert. Durch die Erstellung lokaler Snapshots und das Beschneiden der Datenbank ist es nun möglich, dass Geräte mit geringer Speicherkapazität (z.B. Raspberry Pi) am Netzwerk teilnehmen können, ohne ihre Datenbank manuell löschen zu müssen. Dies war ein großer Schritt. Und es war das letzte fehlende Stück, das die Funktionsparität mit IRI 1.8.0 erreichte. Durch das Erreichen der Feature-Parität mit IRI können Sie nun HORNET als Ersatz für IRI verwenden. Bitte beachten Sie jedoch, dass HORNET erst noch einige weitere Code-Reviews durchlaufen muss, um sicher zu sein, dass alles korrekt funktioniert. Dies wird im Laufe der nächsten Monate geschehen.

Zusätzlich zu diesem großen Meilenstein haben wir ein HORNET-Docker-Image veröffentlicht. Es ist auf dem Docker-Hub verfügbar. Auf diese Weise müssen Sie das Docker-Image nicht mehr selbst erstellen, sondern können es einfach aus dem Docker-Hub ziehen: https://hub.docker.com/r/gohornet/hornet. Docker kann die Bereitstellung von Anwendungen insbesondere auf einem Server vereinfachen.

In unserem neuen Wiki finden Sie FAQs und Tutorials, um HORNET so schnell und einfach wie möglich zum Laufen zu bringen. Wenn Sie etwas vermissen, öffnen Sie einfach ein issue (Problem) und wir werden den fehlenden Teil hinzufügen. Da das Wiki ein Repository ist, kann auch die Gemeinschaft dazu beitragen. Es sind keine Programmierkenntnisse erforderlich. Fügen Sie zum Beispiel ein Tutorial hinzu, um HORNET auf Ihrer Lieblingshardware zum Laufen zu bringen.

Ein weiterer Schritt, um die Einrichtung des HORNET noch einfacher zu machen, sind die mit HORNET 0.3.0 eingeführten DEB- und RPM-Pakete. Mit diesen Paketen brauchen Sie sich nicht mehr um die Einrichtung eines Systemdienstes oder das Anlegen eines Benutzers zu kümmern. Alles, was Sie tun müssen, ist, Ihre HORNET-Konfigurationsdateien zu bearbeiten und HORNET zu starten. Sie können diese Pakete auf unserer HORNET-Veröffentlichungsseite finden: https://github.com/gohornet/hornet/releases/latest. Ein großes Dankeschön an die Gemeindemitglieder nuriel77 und Brootux, die dies ursprünglich hinzugefügt haben.

Mit HORENT 0.3.0 wurde auch die Nachbarschaftskonfiguration Hot Reloading eingeführt. Auf diese Weise müssen Sie HORNET nicht mehr neu starten, um neue Nachbarn über die Nachbarschaftskonfiguration hinzuzufügen. Bearbeiten Sie einfach Ihre Nachbarschaftskonfigurationsdatei und speichern Sie sie. HORNET wird die Änderungen automatisch neu laden. Und wenn Sie die API verwenden, um Nachbarn hinzuzufügen oder zu entfernen, wird HORNET auch Ihre Nachbarschaftskonfiguration bearbeiten.

All diese neuen Funktionen machen HORNET einfach einzurichten und zu benutzen. Dies war das Ziel von Meilenstein 5.

 

Nachdem HORNET nun die Funktionsparität mit IRI erreicht hat, sind die nächsten Schritte die Optimierung von HORNET und die Behebung von Fehlern. Bitte testen Sie HORNET weiterhin so ausgiebig wie in den vergangenen Wochen und berichten Sie über Fehler oder fehlende Funktionen. Natürlich werden wir auch weiterhin eng mit dem großartigen GoShimmer-Team zusammenarbeiten. Durch die Zusammenarbeit an unserer gemeinsamen Code-Basis namens hive.go können wir das Beste aus beiden Projekten kombinieren, um GoShimmer und HORNET zu stärken.

Wir freuen uns wirklich auf die Veröffentlichung von GoShimmer 0.1.0, die Sie sich unbedingt ansehen sollten!

Wir möchten dem IOTA Ecosystem Development Fund (EDF) nochmals danken. Ohne den EDF wäre das HORNET-Projekt nicht da, wo es jetzt ist. Wenn Sie also IOTA-bezogene Open-Source-Projekte im Sinn haben, reichen Sie diese ein, vielleicht können Sie sie auch mit Hilfe des EDF realisieren.

 

Vielen Dank für das Lesen  und bleiben Sie dran!