Safe Network Entwickler Update ­čçę­čç¬ 8. September 2022

Dies ist eine maschinelle ├ťbersetzung. Das Original in Englisch ist hier: Update 08 September, 2022

Sie richten ein Testnetzwerk ein, Sie laden einige Daten hoch, etwas geht schief. Was ist passiert und wo genau ist es passiert? Nachzuverfolgen, wo in Netzwerken Probleme auftreten, ist eine knifflige Herausforderung, insbesondere in dezentralen Netzwerken, in denen jeder Knoten ein Individuum ist. Diese Woche f├╝hrt uns @davidrusu durch statemaps, ein Diagnosetool, das uns genau zeigt, in welchem ÔÇőÔÇőZustand sich jeder Knoten zu jedem Zeitpunkt befindet. Es ist ein Blick aus der Gottesperspektive in das Netzwerk, der das Ausmerzen von Fehlern zweifellos viel einfacher machen wird.

Danke wie immer an alle, die mit lokalen Netzwerken und Komnets experimentieren. Wir sind ziemlich davon ├╝berzeugt, dass einige der Probleme beim Hochladen gro├čer Dateien auf der API-Ebene liegen, und wir sehen uns das jetzt an.

Allgemeiner Fortschritt

@bochaco verfeinert den Fehlerberichtsprozess weiter, um Kunden aussagekr├Ąftigere Nachrichten zu liefern.

@anselme befasst sich mit AE und Klatsch und wie einer bei Kommunikationsfehlern ein Fallback f├╝r den anderen sein kann.

Zur Dokumentation stellt @jimcollinson das von der Schweizer Beh├Ârde FINMA geforderte Haupt-Whitepaper fertig. Es ist eher ein ├ťberblick als ein technischer Tiefgang, also wahrscheinlich nichts Neues f├╝r die meisten Leute hier, aber das Ankreuzen dieser rechtlichen Kontrollk├Ąstchen ist dennoch bereit f├╝r den Start.

@Chriso und @bochaco r├Ąumen auf, was passiert, wenn ein DBC zur Neuausstellung eingereicht wird, und bei der ├ťberpr├╝fung dieses Prozesses wurde festgestellt, dass einige verbrauchte Proofs mit einem Abschnittsschl├╝ssel signiert wurden, der dem Abschnitt, der die Neuausstellungsanforderung verarbeitet, nicht bekannt ist.

Zustandskarten

In einem System mit hoher Nebenl├Ąufigkeit kann es sehr schwierig sein, zu sehen, was vor sich geht. Knoten bewegen sich unglaublich schnell durch Zust├Ąnde, und der Versuch, Nachrichten zwischen Knoten zu korrelieren, kann sich anf├╝hlen, als ob Sie versuchen, ein geschreddertes Dokument wiederherzustellen.

Mit Statemaps k├Ânnen wir nachtr├Ąglich ein Teilbild dessen erstellen, was in einem Netzwerk passiert ist. Sie waren ein sehr n├╝tzliches Werkzeug, um zu verstehen, wo Knoten ihre Zeit verbringen.

Wir haben die sn_node-Codebasis so instrumentiert, dass sie protokolliert, wenn sie in einen Zustand eintritt und wieder, wenn sie einen Zustand verl├Ąsst. Wir k├Ânnen diese Protokolle dann verarbeiten, um eine Statemap wie die folgende zu generieren:


Jede Zeile entspricht einem Knoten mit der Zeit auf der x-Achse. Die Rechtecke in jeder Zeile entsprechen dem Zustand, in dem sich der Knoten w├Ąhrend dieses Zeitintervalls befand.

Jedem Zustand ist eine Farbe zugeordnet:

Durch die Analyse dieser Zustandskarte k├Ânnen Sie beginnen zu verstehen, was hier passiert ist, lassen Sie uns die verschiedenen Phasen benennen und sie durchsprechen.

  1. Wir k├Ânnen sehen, dass die Karte mit 6 ├ältesten beginnt, die ├╝ber die Mitgliedschaft abstimmen (Lachs)
  2. Nach Abschluss der Mitgliedschaft starten sie sofort DKG (orange). Dies soll ein Hinweis darauf sein, dass es einen Ältestenwechsel geben wird.
  3. In der Zwischenzeit sehen wir, dass ein 7. Knoten online geht. Er erh├Ąlt ein AntiEntropy-Update (hellblau), das ihn dar├╝ber informiert, dass er in das Netzwerk aufgenommen wurde, und tritt dann dem DKG (orange) bei. Dies w├╝rde darauf hindeuten, dass dieser neue Knoten, der gerade beigetreten ist, in den ├ältestenstatus bef├Ârdert wird und dass dies der Grund ist, warum die urspr├╝nglichen 6 ├ältesten DKG gestartet haben.
  4. Jetzt sehen wir, dass DKG ins Stocken geraten ist. Dies liegt daran, dass DKG zur Vervollst├Ąndigung eine vollst├Ąndige Teilnahme erfordert. Die vorhandenen 6 Knoten haben alle ihre Teile beigesteuert, aber sie m├╝ssen den 7. Knoten einbringen, um ihren Anteil einzubringen, um den Abschnittsschl├╝ssel zu vervollst├Ąndigen.
  5. Schlie├člich holt der 7. Knoten auf und DKG wird abgeschlossen. Der n├Ąchste Schritt besteht darin, die alten 6 ├ältesten zu ├╝berpr├╝fen, ob der neue Abschnittsschl├╝ssel g├╝ltig ist, und die Kontrolle (dunkelblau) an die neuen 7 ├ältesten zu ├╝bergeben.
  6. Nachdem die ├ťbergabe abgeschlossen ist, sehen wir einen Ausbruch von Anti-Entropie, der vermutlich mit dem neuen SAP ausgesendet wird, was zeigt, dass die neuen ├ältesten die Kontrolle ├╝ber die Sektion ├╝bernommen haben.

Wir haben einige Tools rund um diese Statemaps entwickelt, die Readme-Datei zum sicheren Netzwerk enth├Ąlt Anweisungen zum Erstellen Ihrer eigenen.

Um die Entwicklung zu vereinfachen, haben wir CI auch so konfiguriert, dass Statemaps f├╝r jeden PR automatisch generiert und hochgeladen werden.

Wir hoffen, dass Sie diese Karten aufschlussreich finden, viel Spa├č beim Splunken!


N├╝tzliche Links

F├╝hlen Sie sich frei, unten mit Links zu ├ťbersetzungen dieses Entwicklungsupdates zu antworten, und die Moderatoren werden sie hier hinzuf├╝gen.

Als Open Source-Projekt sind wir immer auf der Suche nach Feedback, Kommentaren und Community-Beitr├Ągen. Seien Sie also nicht sch├╝chtern, machen Sie mit und lassen Sie uns gemeinsam das sichere Netzwerk erstellen!