Juni 15, 2019

Clientbibliotheken und IRI mit Netzwerkaktualisierung

Clientbibliotheken und IRI mit Netzwerkaktualisierung

Viele Dinge sind in den letzten Monaten in unseren IRI- und Client-Lib-Entwicklungsbemühungen aufgetaucht, und ich denke, es ist Zeit für ein weiteres Update, um zu zeigen, was kommen wird. Wenn du ein IRI-Nodebetreiber bist, dann lies bitte weiter. Wir werden einige der wichtigsten Änderungen, die mit der Neuauflage des Netzwerks einhergehen, durchgehen.

Client libraries

Wir haben die stateful Versionen der Client-Bibliotheken bereits im April veröffentlicht. Seitdem haben wir an der Verbesserung der Dokumentation gearbeitet und in jüngster Zeit haben wir begonnen, das neue MAM-Protokoll zu entwickeln.

MAM wird auch in den kommenden Wochen im Mittelpunkt stehen. Alle Bibliotheken - Java, JS und Go - werden Wrapper für das neue MAM-Protokoll bereitstellen, das seit einigen Monaten in Arbeit ist. Hier kannst du dir die Alpha Version des neuen MAM ansehen.

IRI

Bei IRI ist viel passiert. Nächste Woche kommt eine neue Version 1.7.1. Diese Version führt eine große Anzahl von verschiedenen Korrekturen und Änderungen ein. Eine der Korrekturen, mit der wir glauben, dass sich das Problem, bei dem der Node bei der Reparatur eines beschädigten Meilensteins stecken geblieben ist, verbessern wird. Dieses Problem hat sich als sehr schwierig zu debuggen erwiesen.

Eine weitere wichtige Änderung in IRI ist ein neuer Timeout-Mechanismus für die Tipselection-Auswahl. Der Node stoppt den Tippauswahlprozess, wenn er nicht in der Lage ist, eine Antwort in einer bestimmten Zeit zurückzugeben. Dies wird durch den Konfigurationsparameter TIP_SELECTION_TIMEOUT_SEC gesteuert. Der Standard-Timeout beträgt 60 Sekunden.

Es gibt auch einige Änderungen, die durch die Vereinheitlichung des Verhaltens von booleschen Konfigurationsflags eingeführt wurden. Alle booleschen Flags müssen nun explizit einem Parameter übergeben werden, um ihr Verhalten klarer darzustellen. Außerdem war es in der Vergangenheit möglich, die Werte zu überschreiben, wennan den gleichen Wert sowohl in der Konfigurationsdatei als auch in CLI übergeben hat.

Viele Veränderungen gab es auch unter der Haube. Zum Beispiel haben wir die API wesentlich einfacher gestaltet, um mit dem Code besser zu arbeiten. Dies wird uns helfen, wenn wir unsere APIs erweitern oder ändern. Wir haben auch den gesamten Release-Prozess verbessert, da wir die Release-Zyklen in Zukunft verkürzen wollen.

Eine vollständige Liste der Änderungen wird wie gewohnt im Release auf GitHub verfügbar sein.

Ein Dank geht auch an unsere Gemeinschaft für ihre Mithilfe. So hat Viossat beispielsweise den Hash-Algorithmus für das Caching eingehender Transaktionen geändert.

Neuschreiben des IRI-Netzwerks und Vorbereitung auf das Upgrade

Ein weiterer großer Aufwand in IRI war die komplette Überarbeitung der Netzwerkschicht. Der Code wurde von Grund auf neu geschrieben, mit vielen wesentlichen Änderungen.

Teil des Prozesses zur Neufassung des Netzwerkprotokolls war die Einrichtung des Iota Community Committee (ICC). Eine Gruppe von Vertretern, die von der Gemeinschaft gewählt wurden. Die Mitglieder des ICC richteten dann ein Netzwerk ein, in dem der neue Code getestet wird.

Wir möchten IRI mit der neuen Vernetzung in der zweiten Juliwoche (8. bis 12. Juli) veröffentlichen.

Wie man sich auf die neue Vernetzung vorbereitet

Wenn du einen IRI-Node betreibst, dann gibt es Schritte, die du im Vorfeld unternehmen kannst, um für die neue Netzwerkversion bereit zu sein.

In erster Linie wird das refaktorisierte IRI die Unterstützung für das UDP-Protokoll einstellen. Das heißt, wenn du jetzt UDP verwendest, kontaktiere bitte deine Nachbarn  stattdessen über TCP.

Es wird weitere Änderungen an der Konfiguration des Nodes geben, die im Voraus wissenswert sind. Alle werden zum Zeitpunkt der Veröffentlichung in der Dokumentation sein, aber um dir bereits jetzt eine Vorstellung zu geben:

Diese Konfigurationsoptionen wurden entfernt.

  • UDP_RECEIVER_PORT
  • TCP_RECEIVER_PORT
  • MAX_PEERS
  • DNS_REFRESHER_ENABLED
  • DNS_RESOLUTION_ENABLED

Neue Konfigurationsoptionen

  • NEIGHBORING_SOCKET_ADDRESS— defines the socket address to bind the TCP socket to.
  • NEIGHBORING_SOCKET_PORT— defines the port of the TCP socket to use.
  • RECONNECT_ATTEMPT_INTERVAL_SECONDS— defines the interval at which to try to reconnect/disconnect wanted neighbors.
  • AUTO_TETHERING_ENABLED — controls auto-tethering, this was previously controlled via TESTNET true, default is false (also in testnet mode).
  • MAX_NEIGHBORS— rename of MAX_PEERS, defines the max number of connected neighbors.

Du kannst die neuen Konfigurationsoptionen bereits zu deiner .ini-Datei hinzufügen, damit die Werte mit deiner aktuellen Konfiguration übereinstimmen.

In diesem Pull-Request findest du eine Beschreibung der Änderungen beim Umschreiben von Netzwerken.

Hier kannst du dem IOTA Discord Server beitreten.


Quelle: https://blog.iota.org/client-libraries-and-iri-with-networking-rewrite-update-bf1dd4a8ba7