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 testeten.
  • 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.