Safe Network Entwickler Update đŸ‡©đŸ‡Ș 25. August 2022

Dies ist eine maschinelle Übersetzung. Das Original in Englisch ist hier: Update 25 August, 2022

„Say hallo, wink auf Wiedersehen“, trĂ€llerte Marc Almond von Soft Cell in den 80ern und wie weitsichtig er war. Wir freuen uns, Mo diese Woche als neuestes Mitglied des MaidSafe-Engineering-Teams begrĂŒĂŸen zu dĂŒrfen. Mo ist Informatiker und Softwareentwickler. Er erreichte seinen Ph.D. in Informatik an der UniversitĂ€t Potsdam im Jahr 2020 und interessiert sich fĂŒr Forschung, Programmierung und Sicherheitstests fĂŒr verteilte Dienste und Standardsoftwaresysteme.

Gleichzeitig verabschieden wir uns leider von @yogesh, der seit einigen Jahren im Team ist und wirklich seine Spuren hinterlassen hat, indem er seine forensischen FĂ€higkeiten zur Problemlösung und sein Auge fĂŒrs Detail in allen Aspekten von einsetzt das Netzwerk. Als Profi war Yogeshs jĂŒngste Arbeit, sicherzustellen, dass der ELK-Server so lief, wie er es wollte, und die gesamte Dokumentation zu vervollstĂ€ndigen. Alles Gute Yogesh und viel Spaß bei deiner neuen Herausforderung.

Allgemeiner Fortschritt

@joshuef hat einen Teil des CmdCtrl-Moduls ĂŒberarbeitet, um die letzte verbleibende Sperre außerhalb der Node-Instanz selbst zu entfernen. Dies hat in Bezug auf die Einfachheit des Codes einen netten Anstoß gegeben, was immer ein Gewinn ist.

@qi_ma untersucht nun ein mögliches Speicherleck auf einem beitretenden Knoten und untersucht, warum einige Nachrichten an Knoten sehr langsam verarbeitet werden.

@roland hat das Refactoring der Abschnittskette als Merkle-Baum so gut wie abgeschlossen und aktualisiert nun die API, um sie so „drop-in-kompatibel“ wie möglich zu machen.

Und @anselme hat ein Schwellwertproblem in sn_sdkg, der synchronen DKG-Crate, behoben. Wir haben jetzt DKG, das ziemlich gut funktioniert, auch mit Abschnittsaufteilungen. Die Integration dieser geht weiter!

@bochaco hat einige Probleme mit der Registerspeicherimplementierung entdeckt, was bedeutete, dass gleichzeitige SchreibvorgĂ€nge auf dieselben Daten einige Operationen verlieren können, und bei der Behebung dieses Problems haben wir auch ein weiteres Problem entdeckt, das möglicherweise main geplagt hat, wobei Ă€hnlich ` Die Register von xorname haben sich möglicherweise auch gegenseitig ĂŒberschrieben. DafĂŒr gibt es jetzt einen Fix.

Fortschrittsbericht

Nachrichten und Speicherspitzen
Wir sahen eine Flut von Nachrichten und einen Anstieg der Speichernutzung, insbesondere wenn ein neuer Knoten Älteste kontaktierte und darum bat, beizutreten.
Fortschritt: Viel verbessert. Es gibt immer noch ein paar Situationen, die zu einem Leck fĂŒhren, und diese werden debuggt, wenn wir darauf stoßen. Sie sind jetzt viel seltener und viel einfacher mit dem ELK-Dashboard zu verfolgen.
Todo: Bugs beseitigen, wenn wir Spikes sehen.

ELK-Dashboard
ELK (Elasticsearch, Logstash und Kibana) ist ein Stapel von Open-Source-Tools zum Aggregieren und Visualisieren von Protokolldateien. SpĂ€ter wurde Beats hinzugefĂŒgt, das Metriken von der CPU und anderswo sammelt, aber BELK klingt dumm, also bleibt der Name ELK.
Fortschritt: Fertig. Wir können jetzt Testnetze ĂŒberwachen und sehen, was jeder einzelne Knoten tut. Mehr hier https://github.com/maidsafe/sn_testnet_tool/tree/main/scripts/ELK
Todo: Finden Sie heraus, ob/wie wir dies sicher fĂŒr alle sichtbar öffnen können.

Datenverarbeitung
Das Sortieren der Abschnittszugehörigkeit war fĂŒr die ordnungsgemĂ€ĂŸe Datenverarbeitung, die Neuverteilung von Chunks, wenn ein Erwachsener offline geht, und den eleganten Umgang mit Splits erforderlich.
Fortschritt: Das ist fertig und sieht viel solider aus.
Todo: Warten auf den Abschluss der Mitgliedschaft, damit sie abgeschlossen werden kann. Weitere Tests werden hinzugefĂŒgt, um die zugrunde liegenden Speicherschichten abzustĂŒtzen.

AushÀndigen
Wenn ein Ältester bemerkt, dass die aktuellen Ältesten nicht die sieben Ă€ltesten Knoten sind, löst dies eine Abstimmung ĂŒber die Beförderung des/der Ă€ltesten Erwachsenen und die Herabstufung des/der jĂŒngsten Ältesten aus, um Platz zu machen. Handover ist der Algorithmus, der diesen Prozess steuert.
Fortschritt: Abgeschlossen, obwohl es mit Klatsch und Tratsch verfeinert wird – unten.
Todo: Sehen Sie sich das HinzufĂŒgen von Klatsch als Fallback an.

Mitgliedschaft
Dies ermöglicht es den Ältesten, die Kontrolle ĂŒber die Erwachsenen in ihrer Abteilung zu behalten.
Fortschritt: Die Mitgliedschaft ist jetzt in sn_node integriert und nutzt den Konsens, um die Ältesten dazu zu zwingen, sich zu einigen, welche neuen Knoten der Sektion beitreten können.
Todo: Bringen Sie Erwachsene dazu, Mitglieder genauso zu sehen wie die Ältesten. Viele der Entscheidungen, die Erwachsene treffen mĂŒssen, z. fĂŒr welche Daten sie verantwortlich sind, basiert auf dem aktuellen Mitgliedsstaat, aber derzeit haben sie nicht die gleiche Ansicht wie die Ältesten.

Tratsch
Gossip ist eine Art P2P-Protokoll, bei dem ein Knoten regelmĂ€ĂŸig Wissen an einen anderen Knoten sendet, der oft zufĂ€llig ausgewĂ€hlt wird, und dieser Knoten die Nachricht an einen anderen Knoten weiterleitet, und so weiter, bis es „allgemein bekannt“ wird.
Fortschritt: Wir fĂŒhren Klatsch an verschiedenen Stellen ein, an denen die Prozesse manchmal stecken bleiben können, wie z. B. DKG-Runden, Mitgliedschaften und Netzwerkaufspaltungen. Im letzteren Fall ermöglicht uns Klatsch auch, das Netzwerk nach einem katastrophalen Ausfall wieder aufzubauen.
Todo: Beginnen Sie mit der Implementierung.

DKG
Die verteilte SchlĂŒsselgenerierung wird verwendet, wenn Älteste Entscheidungen ĂŒber die Mitgliedschaft treffen mĂŒssen.
Fortschritt: DKG wurde mit einer saubereren, zeitgeberfreien Implementierung und einem Konsens ĂŒberarbeitet, um FĂ€lle zu beheben, in denen DKG aufgrund der Verwendung von ZeitĂŒberschreitungen beim Warten inkonsistent fehlschlug und es erneut versuchtenach Nachrichten suchen. Tests zeigen positive Ergebnisse.
Todo: Beheben Sie einen Fehler im Konsensprozess, der manchmal die Beendigung verhindert. Betrachten Sie das HinzufĂŒgen von Klatsch als Fallback-Kommunikationsebene.

Zahlungsablauf
Wenn der Kunde fĂŒr einen Upload bezahlt, erhĂ€lt er eine Quittung und die Ältesten und Erwachsenen in den Bereichen, in denen die Daten gespeichert sind, erhalten einen Teil dieser Zahlung. Beim Zahlungsfluss geht es darum, wie diese Verteilung funktioniert.
Fortschritt: Wir arbeiten an dem Algorithmus zur Verwaltung des Zahlungsflusses. Im Moment wird darĂŒber nachgedacht, alle BegĂŒnstigten in die Quittung aufzunehmen und ihnen die Möglichkeit zu geben, die Gelder zu beanspruchen, indem sie sich jederzeit eine DBC neu ausstellen lassen. EmpfĂ€nger können potentiell Klienten, Erwachsene und Älteste sein.
Todo: Detailliertes Design zur Abdeckung von Sicherheit, UX und wirtschaftlichen Anreizen. Testen.

Token-Emissionen
Nach der anfĂ€nglichen Verteilung von Token zu Beginn des Netzwerks werden die verbleibenden 70 % des Gesamtangebots als Folge des langfristigen Hochladens von Daten erstellt und sicher verteilt. SNT werden nicht bei jedem Upload erstellt, sondern bei ErfĂŒllung bestimmter Bedingungen. Diese Ereignisse mĂŒssen mit einer bekannten Wahrscheinlichkeit eintreten, aber unvorhersehbar sein, wann und wo sie eintreten werden.
Fortschritt: Wir erwĂ€gen derzeit Mechanismen, die Älteste belohnen, Erwachsene und Kunden einlagern und gleichzeitig das SchĂŒrfen durch Schurkenknoten unwirtschaftlich machen.
Todo: Entscheiden Sie sich fĂŒr eine Option und testen Sie sie.

Knoten-Refaktorierung
sn_node wurde umgestaltet, um so viele Instanzen von Multithreading wie möglich zu entfernen, um den Code zu vereinfachen und unerwĂŒnschte Sperren zu entfernen.
Fortschritt: Ziemlich fertig. Der Code ist erheblich einfacher, die Leistung wurde verbessert und es bleibt nur eine Knotensperre um den Speicher herum, was in Ordnung ist. Es gibt ein paar andere rund um die Gegendruckfunktion, aber das wird nicht standardmĂ€ĂŸig verwendet.
Todo: Überwachen Sie weiterhin die Leistung, RandfĂ€lle.

Abschnittsketten-Refaktorierung
Abschnittskette, die sicher verknĂŒpfte Liste, die AbschnittsschlĂŒssel bis zurĂŒck zu „Genesis“ verbindet, wird als Merkle-DAG umgestaltet. Es heißt jetzt SectionsDAG.
Fortschritt: Meistens erledigt.
Todo: Schließen Sie die Umgestaltung ab.

Funktionsstörung
RegelmĂ€ĂŸiges Testen, ob Knoten online sind, und Ergreifen von Maßnahmen, wenn dies nicht der Fall ist.
Fortschritt: Refaktoriert mit eigener Testsuite, wartet auf Fortschritte in anderen Bereichen.
Todo: Wird stĂ€ndig ĂŒberarbeitet, wenn andere Komponenten ausgereift sind.

DBCs
Digitale Inhaberzertifikate sind das Vehikel fĂŒr die Transaktion von Token im Safe Network.
Fortschritt: Die DBC-Integration und die GrundfunktionalitÀt sind weitgehend vorhanden. Die VervollstÀndigung der GrundfunktionalitÀt ist der nÀchste Schritt, insbesondere die Bereitstellung der Zahlungsströme, die weitaus solider sind als noch vor sechs Monaten.
Todo: Verbessern Sie die APIs und die UX in diesem Zusammenhang. Arbeiten Sie die DBC-APIs in die Zahlungsströme ein und testen Sie dort.

Namensauflösungssystem und Domainnamen
NRS-Karten sind Multimaps (Register unter der Haube), die die Zuordnung aller Unternamen zu URLs fĂŒr einen bestimmten Obernamen enthalten. Jeder Topname hat seine eigene Multimap.
Fortschritt: Die API wurde ĂŒberarbeitet, um den Code zu vereinfachen. Wir haben uns fĂŒr das Format „topname.subname“ (google.maps) als das intuitivste entschieden.
Todo: Änderungen an der NRS-Ordnung mĂŒssen implementiert werden.

Kunde / UX
„sn_client“ ist der Satz von APIs und der Befehlszeilenschnittstelle (CLI), die es GerĂ€ten ermöglicht, sich mit dem Netzwerk zu verbinden und mit ihm zu interagieren.
Fortschritt : sn_client wurde umgestaltet - Behebung von Nachrichten, die Benutzern zeigen, ob sie verbunden sind oder nicht, insbesondere wÀhrend des Bootstrappings.
Todo: Kontinuierliche Verbesserung der APIs und CLI im weiteren Verlauf.


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!