Hornet Full-Node

Hier begleite ich in Zukunft das ursprünglich Community getriebene Projekt HORNET.

Update 15. Mai'20: Mit dem Crysalis upgrade wir Hornet vollständig die IRI ersetzen, inkl. des Koordinators, siehe hier.

 

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 - Kurz gehalten!

 

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.

 

 

 

Update 05. Jun‘20

 

HORNET 0.4.0 - Metamorphose

In den letzten Monaten haben wir HORNET buchstäblich umgeschrieben.
Mit der Version 0.4.0 verwendet HORNET jetzt einen Objektspeicher zum Zwischenspeichern von Daten. Dies macht die Dinge viel schneller als zuvor. Die Objektspeicherimplementierung wird auch von GoShimmer verwendet und ist Teil unserer gemeinsamen Codebasis hive.go.


Zusätzlich zum neuen Objektspeicher haben wir von BadgerDB auf BoltDB umgestellt . Dies führt zu einer viel geringeren RAM-Auslastung (etwa zehnmal weniger) im Vergleich zu HORNET 0.3.0.

Zahlenänderungen (im Vergleich zu HORNET 0.3.0):

  • 366 geänderte Dateien
  • 299 Commits
  • 26.229 Ergänzungen
  • 16.300 Löschungen

Der Wechsel zum Objektspeicher-Cache und zu BoltDB war nur eine Sache. Wir haben viele Dinge optimiert und hinzugefügt.

Das Dashboard verfügt über einige neue Tools wie JSON und Textansicht für den integrierten Tangle Explorer.

HORNET Tangle Explorer - JSON-Ansicht

Sobald eine neue HORNET-Version verfügbar ist, werden Sie benachrichtigt.
Wenn Sie mehrere Nodes ausführen, werden Sie den neuen Node-Alias lieben. Es wird in Ihrem Dashboard und - optional - in der getNodeInfo- Antwort angezeigt . Dies macht es einfach, den richtigen Node zu identifizieren.

Das neue integrierte Toolset macht es einfach, zB einen neuen Startwert für das Autopeering-Plugin zu generieren.

./hornet Werkzeugliste #Dies listet die verfügbaren Werkzeuge auf
 

Autopeering ist eine große Neuerung, dass Einrichten eines Nodes war nie einfacher. HORNET ist die erste Node-Software, die im IOTA Mainnet ausgeführt wird und das von GoShimmer bekannte Autopeering-Plugin verwendet.
Auf diese Weise müssen Sie lediglich HORNET einrichten und starten. HORNET sucht automatisch nach Kollegen oder Nachbarn.
Da sich das Autopeering-Plugin in der aktiven Entwicklung befindet, empfehlen wir, einige statische Peers ( IOTA-Discord - #nodesharing) hinzuzufügen, sobald Ihr neuer Node ebenfalls betriebsbereit ist.

Wir haben das Feedback erhalten, dass es für neue Benutzer schwierig ist, einen Node einzurichten. Deshalb stellen wir unser APT-Repository vor.
Die Installation von HORNET erfolgt jetzt mit einer einfachen apt install hornet . Dies wird alles für Sie einrichten.
Und wenn es eine neue HORNET-Version gibt, wird das Update mit einem passenden Update durchgeführt.
Anweisungen zur Installation von HORNET mit APT finden Sie hier.

Deutsche Tutorials zur Installation gibt es hier.

 

Neu ist auch die healthz API-Route. Auf diese Weise können Sie Ihren Node auf einfache Weise überwachen. Sobald Ihr Node nicht mehr synchron ist, seine Nachbarn verloren hat oder der letzte Meilenstein zu alt wird, wird ein Fehlercode zurückgegeben.

Mit der neuen Warp-Synchronisierung wird HORNET in kürzester Zeit synchronisiert. Das spart Zeit und Nerven. In Kombination mit den anderen Verbesserungen und Ergänzungen wird Ihr Node in wenigen Minuten synchronisiert. Normalerweise in <3 Minuten (einschließlich der Suche nach Nachbarn).

Da HORNET ein Community-Node ist, freuen wir uns über das neue Comnet. Das Comnet ist ein Community-gesteuertes IOTA-Testnetzwerk, das von HORNET-Node unterstützt wird. Das Comnet wurde initiiert und wird von Mathieu, einem bekannten Mitglied der IOTA-Community, gewartet.

Comnet-Spam-Test

 

Sie können das Comnet erkunden, indem Sie auf https://comnet.thetangle.org/ zugreifen oder indem Sie Ihren eigenen Comnet HORNET-Node ausführen und auf Ihren im Dashboard eingebetteten Explorer für private Nodess zugreifen.

Mit der Version HORNET 0.4.0 haben wir das Ende unseres EDF-Zuschusses erreicht. Ein Ende kann aber auch ein Anfang sein.
Wir möchten der IOTA-Foundation für die weitere Unterstützung durch den EDF und das damit gezeigte Vertrauen in unsere Arbeit danken.
Mit diesem Zuschuss der zweiten Phase können wir die Änderungen von Chrysalis ( https://blog.iota.org/chrysalis-b9906ec9d2de ) in HORNET implementieren .
Um die beste Chrysalis-Erfahrung zu erzielen, arbeiten wir eng mit der IOTA Foundation zusammen.

Um die Chrysalis-Entwicklung zu beschleunigen, war unser erster Meilenstein das Hinzufügen eines Koordinator-Plugins zu HORNET.
Dies macht das Testen von Änderungen effizienter und schneller als bei einem Kompass- Setup.
Das neue Koordinator-Plugin erleichtert das Einrichten eines eigenen privaten Tangle und ist bereits in HORNET 0.4.0 enthalten. Wir haben ein kleines Tutorial zum Einrichten Ihres privaten Tangle geschrieben. Sie finden es hier .
Das Comnet verwendet den integrierten Koordinator bereits mit einem Meilensteinintervall von 10 Sekunden.

Wir halten Sie über den Fortschritt von Chrysalis auf dem Laufenden.

Bleiben Sie auf dem Laufenden und beginnen Sie mit der Bereitstellung von HORNET 0.4.0. Wie immer erhalten Sie Hilfe im offiziellen IOTA Discord # Hornet-Kanal.

 


 

Hornet 0.4.0 Release

Zusammenfassung von Autor Jakub Cech IOTA Foundation.

 

Nach fast 5 Monaten Entwicklungszeit freuen wir uns, Hornet Version 0.4.0 veröffentlichen zu können!

Hornet ist ein leichter Node, der in Go geschrieben und gemeinsam mit der Community und der IOTA Foundation entwickelt wurde. Diese neue Version der Node-software ist die erste Welle in einer Reihe von Protokollaktualisierungen, die als Chrysalis (IOTA 1.5) bekannt sind und zu einer erheblichen Steigerung der Netzwerkgeschwindigkeit, Leistung und Benutzerfreundlichkeit führen werden. Chrysalis verfolgt zwei Ziele: IOTA-Unternehmen vorzubereiten und einen nahtloseren Übergang zu unserer Coordicide-Implementierung (IOTA 2.0) zu schaffen.

 

Hornet 0.4.0: Funktionen

Neues Hornet Dashboard

 

Die Codebasis wurde größtenteils mit Änderungen umgeschrieben, die jede Datei des Repositorys berührten. Es gab 365 Dateiänderungen mit über 25.000 Hinzufügungen und 16.000 Löschungen.

Eine Liste aller neuen Funktionen, die hinzugefügt wurden, ist:

  • Autopeering-Modul: Durch das neue Autopeering-Modul findet HORNET 0.4.0 automatisch andere Knoten, zu denen ein Peer erstellt werden kann. Es ist jetzt einfacher als je zuvor, Peers zu finden und schnell einen Node einzurichten. Autopeering ist auch die erste Chrysalis-Funktionalität, die auf Mainnet verfügbar ist.
  • Einfaches APT-Repository: Die Installation von HORNET ist so einfach wie die Installation anderer Software unter Linux-Systemen über den Befehl apt install hornet.
  • WarpSync: Mit „WarpSync“ können Nodes bis zu 7-mal schneller synchronisiert werden, sich viel schneller verfestigen und dabei weniger Ressourcen verbrauchen.
  • Speichernutzung: Hornet 0.4.0 verbraucht 10x weniger Speicher als IRI und frühere Versionen von Hornet.
  • Neues Hornet Coordinator Plugin: Zusätzlich zu kürzeren Bestätigungszeiten können Benutzer und Unternehmen in wenigen Minuten private Netzwerke einrichten.

Alle kritischen Features und Funktionen in Hornet 0.4.0, wie die Auswahl von Tipps sowie die Validierung von Bundles und Status, wurden von einem Drittunternehmen professionell geprüft. Das Audit ist ein fortlaufender Prozess, der für jede Hauptversion durchgeführt wird.

 

Community Stresstest auf Comnet erreicht 600 CTPS und 1200 TPS

 

Die IOTA-Community führte ein sogenanntes "Spam-Ereignis" durch, um den Hornet-Node einem Stresstest zu unterziehen, um die Grenzen der Software zu testen, richten Community-Mitarbeiter Knoten ein und spammen mit Datentransaktionen, um die Stabilität des Netzwerks zu bewerten. In unserer letzten Veranstaltung konnten wir ein stabiles Netzwerk von mehr als 150 Nodes demonstrieren, die 650 bestätigte TPS erreichten. Obwohl beeindruckend, erwarten wir, dass diese Metrik weiter steigt, wenn wir mehr Funktionen implementieren und unseren Pool an Stresstestern erweitern.

 

Was kommt als nächstes

Hornet bietet enorme Verbesserungen für die Benutzererfahrung, Leistung und Stabilität des Netzwerks. Wir empfehlen der gesamten Community, die neueste Hornet-Version herunterzuladen und Ihre Nodes und Infrastruktur (einschließlich privater Testnetze) zu aktualisieren. Wenn es um das Mainnet geht, plant die IOTA Foundation, auch in den kommenden Wochen ihre gesamte Infrastruktur auf Hornet aufzurüsten.

 

Wir möchten dem Hornet-Team danken:

  • Maximilian Hase,
  • Alexander Sporn,
  • Sebastian Fuchs,
  • und Luca Moser (IOTA Foundation),

sowie die GoShimmer-Entwickler der IOTA Foundation und der gesamten Hornet-Community.

 

Halten Sie nach der offiziellen Veröffentlichung von 0.4.0 Ausschau nach unseren kommenden Chrysalis-Phase-1-Funktionen in den kommenden Wochen. Aufgrund der neuen Architektur unserer Node-Software erwarten wir, dass die zwischen den Hornet- und Bee-Teams entwickelte Arbeit schnellere Iterationen aufweist, sodass wir schneller als in der Vergangenheit veröffentlichen und innovieren können.

Wir freuen uns darauf, mit Ihnen allen dieses neue Kapitel in der Geschichte von IOTA zu beginnen.