Safe Network Entwickler Update 🇩🇪 28. Januar 2021

Dies ist eine maschinelle Übersetzung. Das Original in Englisch ist hier: Safe Network Dev Update - January 28, 2021

Zusammenfassung

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

  • Heute ist Datenschutztag (in einigen Teilen auch als Datenschutztag bekannt). Wir ermutigen alle in unserer Community sowie alle, die mit anderen Projekten mit ähnlichen Zielen in Verbindung stehen, mehr denn je darauf zu drängen, diese gemeinsamen Ziele zu erreichen. Jeden Tag kommen wir alle einen Schritt näher. :raised_hands:
  • Die Belohnungs-PR wird derzeit einer Peer Review unterzogen und getestet - das Verdienen von Münzen ist sehr knapp!
  • Wir haben endlich den Fehler behoben, der uns seit einigen Wochen aus dem Weg ging.
  • Das Debuggen des Problems mit dem Hängen von Verbindungen hat einige Bereiche hervorgehoben, die verbessert werden müssen, um den Prozess zu vereinfachen, wenn wieder etwas Ähnliches auftritt. Daher wird daran gearbeitet, qp2p zu aktualisieren und die API zu vereinfachen.
  • Mit dieser PR, die jetzt zusammengeführt wurde, kann die CLI jetzt den Kontostand ihres eigenen SafeKey überprüfen.
  • Neue Versionen von sn_authd (v0.0.15), CLI (v0.17.2) und sn_node (v0.25.39) wurden veröffentlicht. CLI und authd wurden jetzt mit MUSL für Linux.

Noch kein öffentliches Testnetz …

Wir waren heute wirklich am Zaun, als wir überlegten, ob wir weiterhin Messaging reparieren, Belohnungen vornehmen und einige qp2p-Verbesserungen vornehmen sollten (alle weiter unten ausführlicher beschrieben) oder ein öffentliches Testnetz mit allem, was wir bisher hatten, einrichten sollten. Wir haben beschlossen, dass die richtige Entscheidung darin besteht, mit den Korrekturen und Verbesserungen fortzufahren, in denen wir uns gerade befinden, und so ein öffentliches Testnetz für einige Tage zurückzuhalten, von denen wir glauben, dass es noch einige Tage dauern wird. Wir haben beschlossen, dass das Team beim Einrichten und Unterstützen des Testnetzes zu viele Ablenkungen hat. Außerdem waren die Releases „* könnte *“ weniger stabil und schwieriger zu debuggen, als wir es uns wünschen würden, wenn die Messaging- und qp2p-Korrekturen und -Erweiterungen fehlen würden. Wenn wir es verzögern, haben wir auch die Möglichkeit, die unten beschriebenen Belohnungsflussarbeiten (Münzen verdienen: Augenzwinkern :slight_smile: in jedes öffentliche Testnetz aufzunehmen.

Wir arbeiten hier an einem Fix / Improvement-Pfad, der gut mit dem Team zusammenarbeitet, um eine einspurige Denkweise zu entwickeln. Daher fühlt es sich richtig an, die Veröffentlichung vorerst zurückzusetzen und noch ein paar Tage zu brauchen, um weitere Teile aufzuräumen. Es gibt einige großartige Engagements und die Beteiligung der Community, und alles hilft, es gibt einen eindeutigen Antrieb in die richtige Richtung.

Einige zusätzliche allgemeine Neuigkeiten in dieser Woche - wir haben einen Praktikanten der Indian Institutes of Technology eingestellt, der sich auf Kryptographie konzentriert. Die Absicht ist, dass er nächste Woche anfängt und sofort damit beginnt, die Sicherheit in so viel Codebasis wie möglich zu prüfen, zu stupsen und allgemein zu überprüfen. Wir werden diesen Aufwand in der nächsten kurzen Zeit erheblich steigern, wenn wir in den vollständigen Startmodus gelangen.

Safe Client, Nodes und qp2p

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

Belohnung

Die Arbeit mit Belohnungen wurde mit einer Vereinfachung des Abschnittsstarts in sn_node fortgesetzt, die nun die Mindestanzahl von Ältesten in der Sektion erfordert, bevor der verteilte Akteur - auch bekannt als Abschnittsakteur - instanziiert wird, der für die Abteilungsmittel verantwortlich ist.

Damit haben wir nun die Einleitung von Belohnungsauszahlungen erreicht. Der PR-Entwurf wurde in einen richtigen PR konvertiert und wird von einem Kunden P.O.V. vor dem Zusammenführen dieser Arbeit in Master, sobald die Tests bestanden sind.
Im Anschluss wird die Belohnungsauszahlung abgeschlossen. Zu diesem Zeitpunkt ist die Landwirtschaftsfunktion mehr oder weniger bereit, in ein Testnetz aufgenommen zu werden.

Community PRs

Wir haben diese Woche ein paar PRs zusammengeführt, @mav hat gesendet eine, die einige fehlende Client-Funktionen hinzufügt und eine weitere Verbesserung der Effizienz der sequence.in_range call.

Verbindung hängt

Wir haben letzte Woche das Debuggen unserer Verbindungsprobleme fortgesetzt und dort endlich die Hauptursache gefunden. Qp2p löschte fälschlicherweise Verbindungen, die einen Fehler zurückgegeben hatten. In diesem Fall war der Fehler gültig und rechtfertigte nicht das Löschen der Verbindung aus dem Pool. Mit diesem Fix jetzt zusammengeführt sehen wir keine langen Zeitüberschreitungen mehr aufgrund verlorener Verbindungen, was sich großartig anfühlt: erleichtert :. Es geht das Gerücht, dass @joshuef einen vollen Kopf hatte, bevor dieser Fehler auftrat!

Masterknoten / Client sind jetzt viel stabiler. Wir beschäftigen uns noch mehrGelegentliche Fehler, die beim Speichern von Blobs auftreten, bei denen es so aussieht, als könnten wir den Blob und / oder die mit dem Blob verbundenen Metadaten nicht speichern.

Einfachere qp2p-API

Das jüngste Problem mit der Verbindung in qp2p hat uns gezeigt, dass der Benutzer der API eine große Verantwortung übernommen hat, z. B. das Aufrechterhalten von Verbindungen und das Festhalten an Listenern und Streams, über die Nachrichten eingehen. Dies machte das Debuggen relativ komplex, da die Verbindungshandhabung Teil der Routing- und Client-Kisten war, die auf ihre eigene Weise mit zahlreichen Funktionen ausgestattet sind. Durch die Verlagerung der Wartung der Netzwerkkomponenten in die qp2p-Kiste können wir mehrere Szenarien isolieren und testen und sicherstellen, dass alle Verbindungen und Nachrichten korrekt verarbeitet werden. Dies vereinfacht letztendlich auch die qp2p-API und ist somit eine Win-Win-Situation. Wir haben diesen Refactor in qp2p als Proof-of-Concept gestartet, um eine einfache asynchrone API bereitzustellen, die Routing und Clients für die P2P-Kommunikation verwenden können.

API und CLI

Das Repo sn_api hat diese Woche viele Aktivitäten von Community-Mitgliedern erfahren. Dies ist eine hervorragende Nachricht, insbesondere, weil diese Anwendungen alle Benutzer sind und daher umso mehr Input erhalten Von echten Endbenutzern können wir sie umso besser verbessern, noch besser, wenn die Eingabe tatsächlicher Code ist!

@Latch arbeitet an einer neuen Funktion, mit der ein Befehl zum Zurücksetzen in die CLI eingeführt werden kann, mit dem wir alle Daten und Konfigurationsdateien bereinigen können, die in den CLI-, sn_authd- und sn_node-Anwendungen lokal gespeichert sind, wobei die tatsächlichen Anwendungsbinärdateien beibehalten werden unberührt. Wenn Sie daran interessiert sind, an den Diskussionen teilzunehmen und diese zu überprüfen, besuchen Sie bitte: https://forum.safedev.org/t/wip-feat-cli-implements-safe-reset-subcommand/2939/6.

Einige von @mav an unsere API übermittelte Verbesserungen wurden ebenfalls zusammengeführt. Es gab einige Tippfehler in Fehlermeldungen, die behoben wurden sowie Hinzufügen Validierungen für NRS-Namen, um Schrägstriche abzulehnen.

Einige Beispielanwendungen für „qjsonrpc“ werden von @scorch(https://github.com/maidsafe/sn_api/pull/690) entwickelt, um Benutzern zu helfen, zu verstehen, wie die API „qjsonrpc“ verwendet werden kann und wie Anwendungen JSON-RPC benötigen über QUIC Protokoll kann erstellt werden. Einige Hintergrund- und Kontextinformationen sind in diesem Beitrag für alle, die mehr über diese Bemühungen erfahren möchten, sehr detailliert.

Mit der Zusammenführung von dieser PR kann die CLI nun auch den Kontostand ihres eigenen SafeKey überprüfen, dh den Kontostand, der bei Autorisierung an sie übertragen wurde mit authd, das die CLI verwendet, um die Kosten aller von / mit ihr durchgeführten Operationen zu bezahlen. Durch Aufrufen von „$ safe keys balance“ ohne Angabe eines geheimen Schlüssels wird nun standardmäßig das aktuelle Guthaben des Schlüsselpaars / SafeKey der CLI überprüft.

Neue Versionen von sn_authd (v0.0.15), CLI (v0.17.2) und sn_node (v0.25.39) wurden für diejenigen veröffentlicht, die lokal mit ihnen gespielt haben. Da die CLI- und authd-Binärdateien jetzt mit MUSL für Linux-Plattformen erstellt werden, stellen Sie unter Linux sicher, dass Sie sie installieren, anstatt zu versuchen, sie mit dem zu aktualisieren CLI finden Sie vollständig Anweisungen zur Installation im CLI-Benutzerhandbuch.

BRB - Byzantinische zuverlässige Sendung

Diese Woche haben wir einige von BRB DataTypes zurückgegebene Validierungsfehler korrigiert und allen BRB-Kisten ausführliche Dokumentkommentare hinzugefügt. Diese Änderungen sollten es jedem erleichtern, der die Bibliotheken nutzen möchte.

Es gab einige Designdiskussionen über die Integration der BLS Distributed Key Generation (DKG) in BRB. Die Hoffnung war, dass die DKG die dynamischen Mitgliedschaftsoperationen der BRB (Beitritt / Austritt) in gewisser Weise huckepack nehmen könnte. Letztendlich haben wir jedoch festgestellt, dass dies nicht funktioniert, da die DKG eine 100% ige Beteiligung erfordert und nach der Einrichtung der BRB-Abstimmungsgruppe als separater Prozess stattfinden muss.

Routing

Projektplan

Diese Woche verlief im Hinblick auf die tatsächlichen Codeänderungen im Routing größtenteils ruhig, da ein Teil des Teams mit der Erörterung der BRB / DKG-Algorithmen beschäftigt war und der andere Teil dabei half, die Probleme mit Clientverbindungs-Hangs aufzuspüren. Wir haben auch die Arbeit zur Verbesserung der Fehlerbehandlung ausgesetzt, da wir entschieden haben, dass es dringendere Probleme gibt, die zuerst angegangen werden müssen.

Wir haben jedoch eine kleine PR zusammengeführt, die die Ereignisbehandlung verbessert. Wir hatten separate Ereignisse, wenn sich die Abteilungsältesten ändern und wenn der aktuelle Knoten befördert oder herabgestuft wird. Es stellte sich heraus, dass diese Dinge zur gleichen Zeit passieren und die getrennte Behandlung der Ereignisse in den oberen Schichten einige Verwirrung darüber verursachte, in welcher Reihenfolge sie behandelt werden sollten. Wir haben das Problem gelöst, indem wir diese Ereignisse zu einem einzigen Ereignis zusammengeführt haben, um die Verwirrung zu beseitigen.

W.Außerdem wurde Arbeit zur Vereinheitlichung der Bootstrap-Behandlung über Knoten und Clients hinweg gestartet. Es stellt sich heraus, dass die Logik zum Bootstrap genau dieselbe ist, sie wurde jedoch auf zwei leicht unterschiedliche Arten an zwei verschiedenen Stellen implementiert. Diese Arbeit entfernt diese Duplizierung, was zu einfacherem Code führt. Wir erwarten, es Anfang nächster Woche zu beenden.

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 „Gefällt mir“