Safe Network Entwickler Update 🇩🇪 10. Dezember 2020

Dies ist eine maschinelle Übersetzung. Das Original in Englisch ist hier: Safe Network Dev Update - December 10, 2020

Zusammenfassung

Hier sind einige der wichtigsten Dinge, die seit dem letzten Entwickler-Update hervorgehoben werden sollten:

  • sn_client v0.44.0 wurde diese Woche veröffentlicht, die erste Veröffentlichung des Kunden seit Juli.
  • Wir haben die Implementierung der Vervielfältigung von Blob-Chunks abgeschlossen und zusammengeführt, wenn ein Erwachsener das Netzwerk verlässt - jetzt in sn_node v0.25.9 veröffentlicht.
  • Unser Berater hat einen codierten, getesteten und funktionierenden Algorithmus für die dynamische Mitgliedschaft entwickelt.

Allgemeines Update

Ein kurzes allgemeines Update unserer Fortschritte auf dem Weg zum bevorstehenden Testnetz.

Wir sind alle sehr bemüht, alle Teile für das kommende Testnetz zusammenzureißen. Wie erwartet gibt es einige Fehlerjagden und einige Last-Minute-Ergänzungen. Eine Sache, für die wir keine Zeit haben, in dieses Testnetz aufzunehmen, ist die neue BRB-Mitgliedschaft (Byzantine Reliable Broadcast). Die BRB-Mitgliedschaft ist ein wirklich wichtiger Schritt, aber im Moment möchten wir so viele andere bewegliche Teile testen, dass wir uns darauf geeinigt haben, dass der Fokus darauf liegen sollte, diese Phase I so schnell wie möglich zu starten, damit wir uns voll und ganz auf BRB konzentrieren können.

Safe Client, Nodes und qp2p

Projektplan für sichere Netzwerkübertragungen
Safe Client-Projektplan
Projektplan für sichere Netzwerkknoten

Diese Woche gab es die erste Veröffentlichung und Veröffentlichung von sn_client seit Juli. Dieses Repository bestand früher aus verschiedenen Kisten zusammen unter dem Banner „Safe Client Libs“, aber wie regelmäßige Leser hier zweifellos wissen werden, haben wir es stark überarbeitet, was dazu führte, dass wir viele tausend Codezeilen entfernt haben, die wir als ineffizient und fehlerhaft empfanden oder unnötig. Dies ist jetzt eine einzelne „sn_client“ -Kiste, die zum ersten Mal unter diesem Namen veröffentlicht wurde. Dies verbindet sn_node und sn_routing in den letzten 2 Wochen in neuen bedeutenden Kistenversionen, und wir hoffen, dass dies die Fortschritte zeigt, die wir machen, wenn die Hauptstücke anfangen, sich zusammenzufügen. Diese Version bedeutet nicht, dass wir mit sn_client fertig sind, sondern nur, dass wir es für stabil genug halten, um eine Continuous Delivery-Pipeline einzuführen. 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 versucht, die Ursache eines Stapelüberlaufproblems aufzuspüren, das insn_node aufgetreten ist. Es scheint zunächst keine spezifische Quelle zu geben, aber die Stapelverwendung ist im Laufe der Zeit einfach gewachsen. Dies geschah ursprünglich nur unter Windows, wo wir festgestellt haben, dass die Standardstapelgröße 1 Megabyte beträgt, was im Vergleich zu Ubuntu mit 8 MB niedrig ist. Durch Verringern der Stapelgröße unter Ubuntu können wir dies replizieren, was gut ist. Daher haben wir dies weiter untersucht und Optionen, um dies zu verhindern.

Wir haben die Implementierung der Duplizierung von Blob-Chunks abgeschlossen, wenn ein Erwachsener das Netzwerk verlässt. Diese Funktion, die während einiger Refaktoren im Repo „sn_node“ vorübergehend deaktiviert wurde, um Landwirtschaft und Belohnungen zu erzielen, ist jetzt mit der neuen Struktur des Codes kompatibel, der getestet und zusammengeführt wurde. Diese Implementierung bildet auch die Grundlage für die nächsten Aufgaben auf unseren Karten - die Verteilung von Daten zu Elder Churn, Werbeveranstaltungen und Netzwerkaufteilungen. Wir haben bereits einige Ideen und werden bald mit der Implementierung beginnen.

BRB - Byzantinische zuverlässige Sendung

Gute Nachrichten! Unser Berater hat einen funktionierenden Algorithmus für die dynamische Mitgliedschaft entwickelt. Dies ist eine Originalarbeit, die eine Generationsuhr verwendet, bei der pro Akteur und Generation eine Join- oder Leave-Operation zulässig ist. Dieser Algorithmus wurde bereits zusammen mit einer Testsuite codiert, und alle Tests bestehen.

Der nächste Schritt wird darin bestehen, es in die bestehende DSB-Implementierung zu integrieren. Am Ende werden wir also ein Protokoll für die Aushandlung einer dynamischen Mitgliedschaft haben, das sich vom DSB-Protokoll für die BFT-Übertragung regulärer Operationen / Daten unterscheidet, aber dieses ergänzt.

Routing

Projektplan

Diese Woche haben wir uns entschlossen, das Routing auf tracing anstelle der log-Kiste umzustellen, um unsere Protokollierung zu verbessern und das Debuggen zu erleichtern . Dies ermöglicht es uns, strukturierte Protokollierung und Bereiche zu verwenden. Die PR für diesen Switch wurde jetzt zusammengeführt. Wir beabsichtigen, in den kommenden Wochen auf die Verwendung von „Tracing“ in anderen Kisten umzusteigen.

Nach weiteren Diskussionen darüber, wie und wann der Ressourcen-Proofing verwendet wird, haben wir entschieden, dass umgesiedelten Knoten vertraut werden sollte, sodass sie nicht dem Resou unterzogen werden müssenerneut prüfen. Die PR Keine Ressourcenprüfung von verschobenen Knoten erforderlich wurde jetzt zusammengeführt, um ein solches Verhalten zu überarbeiten. In derselben PR haben wir auch einige Fehler und Testfehler behoben, die wir dank der verbesserten Protokollierung durch die oben erwähnte „Rückverfolgungs“ -Kiste aufgespürt haben.

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 lassen Sie uns gemeinsam das sichere Netzwerk erstellen!

1 Like