Safe Network Entwickler Update đŸ‡©đŸ‡Ș 14. Oktober 2021

Dies ist eine maschinelle Übersetzung. Das Original in Englisch ist hier: Update 14 October, 2021

Wir haben heute fast einen Mini-Meilenstein erreicht (90% des Weges!) Was bedeutet das und warum ist es wichtig? @ChrisO erklÀrt alles unten.

Allgemeiner Fortschritt

Wie Sie wahrscheinlich wissen, ist das Netzwerk mit Funktionen wie AE so konzipiert, dass es „CRDT-Ă€hnlich“ ist, mit garantierter Konsistenz. Das bedeutet, dass es egal ist, wenn wir eine Nachricht oder einen Datenblock senden und diese nicht sofort erhalten, da wir einfach warten oder sie erneut senden. Keine aufwendige Synchronisierung erforderlich.

Ein Großteil der Arbeit, die wir derzeit leisten, besteht darin, dieses CRDT-Ă€hnliche Verhalten richtig zum Laufen zu bringen. Das Looping-Verhalten, das wir beim Node-to-Node-Messaging gesehen haben, scheint jetzt grĂ¶ĂŸtenteils behoben zu sein.

AE-Nachrichten teilen dem Client mit, ob er sein VerstĂ€ndnis der Abschnitte, mit denen er spricht, aktualisieren muss. Wir haben dem Client ein paar Optimierungen hinzugefĂŒgt, damit er alle Bootstrap-Knoten vorab kontaktiert, um eine aktualisierte Ansicht des Netzwerks zu erhalten, bevor er zum Auslösen von Befehlen ĂŒbergehen kann. Wir haben auch eine winzige Wartezeit hinzugefĂŒgt, um Daten in das Netzwerk zu ĂŒbertragen, da der Befehl zuvor sofort zurĂŒckgegeben wurde, wĂ€hrend die AE-Nachrichtenverarbeitung im Hintergrund stattfindet. Dies war bei den Tests der safe_network-Bibliothek kein Problem, da sie alle den Client in der NĂ€he halten, aber die CLI nicht, so dass dies zu Problemen gefĂŒhrt haben könnte, bei denen ein Client einen Teil des Netzwerks nicht wusste. und verpasste die Bearbeitung/das erneute Senden des Befehls, als diese AE-Meldungen eingingen.

Wir sehen auch einige Anomalien bei den CI-Tests (Continuous Integration). Es kann schwer zu sagen sein, ob das Problem am Netzwerk oder an den CI-Tests selbst liegt. Testnets helfen uns dabei, das herauszufinden. Nochmals vielen Dank an alle, die mitgemacht haben. Es sollte in KĂŒrze einen weiteren Kandidaten geben, da wir API+CLI zusammenfĂŒhren. Wir erwĂ€gen auch Optionen fĂŒr einen Cloud-ELK-Cluster, um Community-Testnet-Protokolle zu speichern und durchsuchbar zu machen.

@Jimcollinson hat weiterhin n von m AuthentifizierungsablĂ€ufen unter Verwendung von BLS-SchlĂŒsselfreigaben untersucht. Um Ihren Safe zu entsperren, können Sie eine Kombination aus Passwort + Passphrase (oder QR-Code) mit einem GerĂ€teschlĂŒssel auf Ihrem Telefon als Reserve wĂ€hlen (2 von 3). Wenn Sie Ihr Passwort vergessen, können Sie die Passphrase und den GerĂ€teschlĂŒssel verwenden. Mit Ihren primĂ€ren Zugangsdaten (Passwort und Passphrase) können Sie auch neue SchlĂŒssel auf zusĂ€tzlichen GerĂ€ten erstellen. Wenn Sie also wirklich vergesslich sind, können Sie Ihren Safe mit mehreren GerĂ€ten entsperren oder Passphrasen sichern. Die Idee hier besteht darin, die FlexibilitĂ€t zu erreichen, verschiedene Sicherheitsbedrohungsmodelle zu berĂŒcksichtigen – und zwar mit Komfort – und dennoch tolerant gegenĂŒber dem Verlust von Anmeldeinformationen zu sein.

An der DBC-Front hat sich @danda weiter mit Konfessionen befasst. Erwarten Sie weitere Details auf der ganzen Linie.

Ein einzelnes Repository

Im Juni hatten wir einige Arbeiten abgeschlossen, um mehrere Repositorys, die den Code fĂŒr das Netzwerk bildeten, zu einem großen einzigen Repository zusammenzufĂŒhren. Aufgrund der engen Verwandtschaft des Codes in diesen Repositories war es fĂŒr sie nicht sinnvoll, sich unabhĂ€ngig zu entwickeln, und tatsĂ€chlich war es fĂŒr sie problematisch, dies zu tun. Es erschwerte das Debuggen und Testen des Netzwerks, und es war eine erhebliche Aufgabe, alle Versionen auf dem neuesten Stand und synchronisiert zu halten. Das einzelne Repository kombiniert all diesen Code in verschiedenen Modulen derselben Kiste mit einer einzigen Versionsnummer.

Bei diesem Unterfangen blieben jedoch einige Repositorys zurĂŒck, nĂ€mlich sn_api und sn_cli. Die API und die CLI unterscheiden sich tatsĂ€chlich ein wenig von den zuvor erwĂ€hnten Repositorys, da sie keine Kernkomponenten des Netzwerks selbst sind, sondern vielmehr dazu dienen, uns die Nutzung des Netzwerks zu ermöglichen. Aufgrund begrenzter Ressourcen, die sich hauptsĂ€chlich auf die Entwicklung des Netzwerks konzentrierten, war der Code sowohl in der API als auch in der CLI veraltet, und es war ein erheblicher Aufwand, sie auf den neuesten Stand zu bringen. Obwohl wir sie auch zusammenfĂŒhren wollten, waren wir dazu nicht wirklich in der Lage.

Wir haben daran gearbeitet, die CLI und die API auf den neuesten Stand zu bringen. GlĂŒcklicherweise sind wir jetzt in der Lage, sie zusammenzufĂŒhren, und wir freuen uns, sagen zu können, dass dies fast so weit ist. sn_api und sn_cli werden neben dem Code fĂŒr das Netzwerk sitzen, so dass das safe_network-Repository aus drei Kisten besteht, die gleichzeitig aktualisiert und bereitgestellt werden.

Es ist wichtig zu wissen, dass dies tatsĂ€chlich eine erhebliche Änderung ist und nicht nur eine administrative Erleichterung. Einige der Vorteile:

  • Alles in derselben Kiste beseitigt die Verwirrung darĂŒber, welche Versionen der CLI und API mit welcher Version des Netzwerks kompatibel sind. Alle diese in jeder Version werden kompatibel sein.
  • Wenn der Code fĂŒr das Netzwerk mit Breaking Changes aktualisiert wird,r wird gezwungen, die API und CLI zu aktualisieren. Dadurch wird verhindert, dass der API- und CLI-Code wieder veraltet wird.
  • Neue Versionen des Netzwerks stehen ab sofort zum Testen mit einer netzwerkkompatiblen CLI zur VerfĂŒgung.

Zum letzten Punkt: Jetzt, da wir gesehen und begrĂŒĂŸt haben, dass die Community mehr an der EinfĂŒhrung von Testnetzen beteiligt ist und gleichzeitig eine CLI/API/Netzwerk-Kombination veröffentlicht wird, können wir einen viel kĂŒrzeren Test- und Release-Zyklus schaffen, bei dem im Grunde steht jede neue Version im safe_network-Repository sofort fĂŒr Community-Tests zur VerfĂŒgung. Letztendlich hat dies großes Potenzial, uns dabei zu helfen, schneller zu einem Startkandidaten zu gelangen.


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!