Dies ist eine maschinelle Übersetzung. Das Original in Englisch ist hier: Safe Network Dev Update - December 3, 2020
Zusammenfassung
Hier sind einige der wichtigsten Dinge, die seit dem letzten Entwickler-Update hervorgehoben werden sollten :
sn_node
hat seit Juli seine ersten neuen Releases!sn_routing
hat seit August 2018 seine ersten neuen Releases!- Wir haben
sn_client
Tests, die funktionieren und scheinbar stabil laufen. - Wir haben das Hauptproblem beim Starten des Abschnitts in CI behoben.
- Wir haben die letzten verbleibenden fehlgeschlagenen sn_api-Tests erledigt.
- Der funktionierende Prototypcode für den Generation Clock-Ansatz zur dynamischen Mitgliedschaft wird bis Ende der Woche erwartet.
- Diese Woche wurden zwei wichtige „sn_routing“ -PRs zusammengelegt, eine Maßnahme zur Verteidigung gegen wichtige Verkaufsangriffe und Durchführung von Ressourcenprüfungen während potenzieller Neuheiten Node Bootstrap
Safe Client, Nodes und qp2p
Projektplan für sichere Netzwerkübertragungen
Safe Client-Projektplan
Projektplan für sichere Netzwerkknoten
Diese Woche war ein Meilenstein für sn_node
mit der ersten Veröffentlichung und veröffentlichen dieser Kiste unter ihrem neuen Namen und die erste seit Juli. In den Monaten seitdem hat sich dort viel geändert, wie das Changelog deutlich hervorgehoben, und wie wir versucht haben, Sie in diesen Updates auf dem Laufenden zu halten. Diese Releases bedeuten nicht, dass die Entwicklung in „sn_node“ abgeschlossen ist, sondern dass wir sie als stabil genug angesehen haben, um jetzt die zuvor erstellte Continuous Delivery Pipeline PR zusammenzuführen ). Die Entwicklung geht zügig voran, und jetzt führt jede zusammengeführte PR zu einer weiteren automatisch generierten neuen Version.
Wir haben die Arbeit mit verbesserte Fehlerbehandlung in sn_node zusammengeführt, wodurch der Pfad für den Fortschritt frei wird. Nachdem wir letzte Woche das Zwischenspeichern von Sequenzen entfernt entfernt hatten, haben wir den Client diese Woche einigen normaleren Netzwerkbedingungen ausgesetzt, was zu mehreren fehlgeschlagenen Tests führte. Mit einigen Änderungen an den Client-Tests, um dies zu berücksichtigen, sind sie jetzt wieder stabil. Darüber hinaus haben wir uns mit dem Start von Abschnitten befasst, die lokal einwandfrei gelaufen sind, aber CI hatte es ein bisschen schwer. Wir haben festgestellt, dass einige davon darauf zurückzuführen sind, dass die CI-Maschinen langsam sind, und dass zunehmende Zeitüberschreitungen zwischen den dort beginnenden Knoten zu zuverlässigeren Ergebnissen geführt haben. Es gibt noch einige Fehler, die hier ausgebügelt werden müssen.
Wir haben bei einigen fehlgeschlagenen Tests während der End-to-End-Tests des Netzwerks weitere Fortschritte erzielt, insbesondere in Bezug auf die Speicherung von Daten unter Verwendung des Blob-Datentyps. Wir haben einige Probleme identifiziert, die sich während einiger Refaktoren eingeschlichen haben, und mit den behobenen sehen wir jetzt, dass die Tests konsistent bestanden werden. Wir werden nun das Chunk-Replikationssystem wieder aktivieren, wenn Knoten das Netzwerk verlassen. Sobald dies erledigt ist, werden alle Blob-Flows in der überarbeiteten Implementierung von sn_node wieder aktiviert.
Ein weiteres Feature, an dem wir diese Woche gearbeitet haben, ist die Regulierung des Speichers in einem Abschnitt und letztendlich im Netzwerk über PR # 1153. Ab diesem PR überwachen die Datenspeicherknoten ihren Speicher bei jedem Schreibvorgang und warnen ihre Abschnittsältesten, wenn sie ihre maximale Kapazität erreichen. Die Ältesten führen dann ein Register dieser gefüllten Knoten und wenn sie einen Schwellenwert von gefüllten Knoten in demselben Abschnitt erreichen, würden sie dafür stimmen, neue Knoten zu akzeptieren, um sich ihrem Abschnitt anzuschließen, und die Tore schließen, sobald Angebot / Nachfrage erfüllt sind, wodurch ein Gleichgewicht aufrechterhalten wird im Netzwerk. Wir werden in den kommenden Tagen verschiedene Änderungen an den Metriken vornehmen.
Ein PR für Rust-CRDT wurde erstellt, um LSeq mit anderen CRDT-Typen in Einklang zu bringen, die zuvor einen Antrag stellen müssen Ändern des Datentyps selbst. Wir verwenden dies in unserem Datentyp „Sequenz“, um sicherzustellen, dass alle Vorgänge signiert sind.
Die Änderungen an sn_api und CLI wurden in der vergangenen Woche fortgesetzt und an neue sn_client
-APIs angepasst. Wie bereits letzte Woche erwähnt, wurde auch versucht, auf neue UX-Terminologien zu migrieren. Die meisten sn_api-Tests werden jetzt mithilfe eines lokalen Abschnitts bestanden, und wir versuchen nun, diese Änderungen abzuschließen und die fehlgeschlagenen Tests zu beheben. Dies sollte hoffentlich bedeuten, dass die CLI-Befehle und E2E-Tests wieder ausgeführt werden.
Und schließlich, um eine erhöhte Testabdeckung von Überweisungen, Zahlungen undd Belohnungsmodule, einige Umstrukturierungen dieses Codes und Änderungen an der Zugriffsgranularität wurden diese Woche eingeleitet.
BRB - Byzantinische zuverlässige Sendung
Die Arbeit am Generation Clock-Ansatz für eine dynamische Mitgliedschaft wird fortgesetzt. Der funktionierende Prototypcode wird bis Ende der Woche erwartet.
Auf einer parallelen Spur wird die bft-crdts-Kiste im Rahmen einer Modularisierung in separate Kisten aufgeteilt. Die Idee ist, drei Merkmale zu definieren: eines für die BRB-Implementierung, eines für zu übertragende und zu sichernde Datentypen und eines für die Netzwerkschicht.
Auf diese Weise können Implementierungen aller drei Merkmale gemischt und angepasst werden. Beispielsweise können wir ein In-Memory-Netzwerk für Testfälle verwenden, ein qp2p-Gerät für das Routing in Safe Network, und ein Drittanbieter verwendet möglicherweise eine TCP / IP-Sockets-Implementierung für etwas anderes. Auf der Datenseite haben wir bereits eine AT2-Bank-Implementierung und eine CRDT-Orswot-Implementierung.
Routing
Wie oben erwähnt, wurde sn_node
diese Woche zum ersten Mal in seiner aktuellen Form veröffentlicht und veröffentlicht. Um nicht übertroffen zu werden, hat das Routing-Team jetzt auch veröffentlicht und veröffentlicht sn_routing
, die erste Veröffentlichung seit fast 2,5 Jahren! Im Änderungsprotokoll finden Sie eine Übersicht über die vorgenommenen Änderungen. Wie bei sn_node
bedeuten diese Releases nicht, dass die Entwicklung in sn_routing
abgeschlossen ist, nur dass wir es als stabil genug angesehen haben, um jetzt die zuvor erstellte Continuous Delivery Pipeline PR. Die Entwicklung geht zügig voran, und jetzt führt jede zusammengeführte PR zu einer weiteren automatisch generierten neuen Version.
Diese Woche haben wir eine Maßnahme zum Schutz vor wichtigen Verkaufsangriffen implementiert. Ein Schlüsselverkaufsangriff liegt vor, wenn ein Knoten, der seinen Ruf aufgebaut hat, seinen geheimen Schlüssel an eine potenziell böswillige Entität verkauft, die dann seine Rolle übernehmen und Schaden anrichten kann. Diese Art von Angriff ist sehr schwer vollständig zu verhindern, aber wir haben es den Menschen zumindest schwer gemacht, auf den geheimen Schlüssel zuzugreifen, indem wir sichergestellt haben, dass der Schlüssel nicht offengelegt oder auf der Festplatte gespeichert ist.
Wir haben auch daran gearbeitet, den heute zusammengeführten Prozess Durchführen von Ressourcenprüfungen während des Bootstraps einzuführen. Dies fordert potenzielle neue Verbindungsknoten heraus, um sicherzustellen, dass sie ausreichend qualifiziert sind, um die Netzwerkarbeitslast zu teilen. Mit der Überprüfung der Ressourcenprüfung werden alle neu verbundenen Knoten sofort als „Erwachsene“ betrachtet - die Behandlung von „Säuglings“ -Knoten ist jetzt nicht mehr erforderlich.
Wir haben auch an Aktualisierung des Refactoring-Abschnitts gearbeitet, um die Codebasis für die DKG-Behandlung zu vereinfachen. Die beiden vorgeschlagenen Hauptänderungen, um dies zu erreichen, sind:
- DKG-Fehler werden nicht mehr an die aktuellen Abteilungsleiter gemeldet, sondern starten sich selbst neu.
- Der separate DKG-Ergebnisakkumulator wird entfernt, stattdessen wird der reguläre Stimmenakkumulator verwendet.
Nach den Diskussionen während des Überprüfungsprozesses wurden jedoch weitere Probleme festgestellt, die wir lösen möchten. Daher wurde die PR in den Entwurfsstatus geändert und wird voraussichtlich bald mit den Ergänzungen wieder zur Überprüfung bereit sein.
Nützliche Links
Fühlen Sie sich frei, unten mit Links zu Übersetzungen dieses Entwickler-Updates 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 schaffen Sie gemeinsam das sichere Netzwerk!