SAFE Network Entwickler Update :deutschland: 25. Juni 2020

Zusammenfassung

Hier sind einige der wichtigsten Dinge, die seit dem letzten Entwickler-Update hervorzuheben sind:

  • @jimcollinson bietet einen weiteren faszinierenden Einblick in den Fortschritt der SAFE Network App UX.
  • Der Symlink support und die Sequence CRDT PR’s wurden in die safe-api Codebasis integriert.
  • Dem CLI-Benutzerhandbuch wurde ein neuer Abschnitt hinzugefügt, in dem beschrieben wird, wie die neuen sicheren Sequenzbefehle zum Speichern von Daten auf einem Datentyp „Public Sequence“ verwendet werden können. Diese neuen Befehle werden Teil der bevorstehenden Veröffentlichung der SAFE-CLI sein.
  • Die Arbeiten gehen zügig weiter, um SAFE Client Libs und SAFE Vaults AT2 fertig zu stellen, wobei nur noch einige wenige Teile des Puzzles fehlen.
  • Wir haben das XOR-Raummodul aus dem Routing in sein eigenes separate Repository extrahiert, so dass es von anderen Teilen des Projekts verwendet werden kann.

Vaults Phase 2

Projektplan

Diese Woche haben wir auf der Grundlage der Ergebnisse des letzten Testnetzes weiter an Verbesserungen gearbeitet. Wir haben den Vervielfältigungsprozess an den Knotenpunkt delegiert, der für die Aufbewahrung der neuen Kopie des Chunks verantwortlich ist. Dies entlastet die Elders, die zuvor für das Abholen der Daten und das Senden an den neuen Inhaber verantwortlich waren.

Wir haben auch die Zwischenspeicherung von vorzeitigen Antworten bei den Elders entfernt. Anstatt an diesen Antworten festzuhalten und sie zu bearbeiten, wenn der Antrag schließlich eintrifft, verwenden wir die angesammelte BLS-Signatur, um zu bestätigen, dass die Sektion den Antrag genehmigt hat, und bearbeiten ihn entsprechend. Diese Verbesserungen haben bereits eine Menge Verbesserungen in Bezug auf Speichernutzung und Leistung gezeigt, und wir freuen uns, sie mit euch teilen zu können. Doch zunächst gibt es noch ein paar weitere Funktionen, die wir vor der nächsten Iteration der Vaults aus dem home testnet hinzufügen möchten.

SAFE Network App UX

SAFE Network App: Screens, Flows and Feature Tracker (Figma)

Wir freuen uns, euch heute einen ganzen Fundus an Ansichten, Vorgehen und Dokumentationen präsentieren zu können.

Vieles davon werdet ihr bereits gesehen haben, aber es gab im Laufe der Monate viele hundert Änderungen, Optimierungen, Verfeinerungen und Iterationen.

Wir haben alles in einer Figma-Datei zusammengefasst, in die ihr euch sich neben dem Feature Tracker einarbeiten können - damit ihr über den ganzen Wirbel auf dem Laufenden bleiben. Einige Ansichten müssen noch eingesehen und einige noch vollständig dokumentiert werden, aber es handelt sich um eine lebendige Datei, die wir Woche für Woche veröffentlichen werden.

Wir hoffen, dass dies ein detaillierteres Bild von einigen der ersten Erfahrungen gibt, die wir für die Beta und höchstwahrscheinlich schon vorher sammeln.

Bitte zögert nicht, Fragen dazu hier oder direkt in den Kommentaren zur Figma-Datei zu stellen, wenn euch das leichter fällt, wenn ihr mit den Entwürfen vertraut sind.

SAFE API

Projektplan

Der Symlink support wurde diese Woche in die Codebasis integriert, nachdem ein Problem gelöst wurde, das Ende letzter Woche bei Tests auftauchte.

Im Anschluss daran wurde mit der Arbeit an einer Implementierung von glob() begonnen, die in einem FilesContainer arbeitet. Hierbei handelt es sich um eine experimental feature, die beim Aufrufen einer SafeUrl einen pattern matching (z.B. *.txt) ermöglicht. Dies könnte für die Filterung von Ergebnissen bei der Verwendung von safe-cli-Befehlen wie files ls oder files nützlich sein.

Eine Reihe von API- und CLI-Befehlen für das Sequence CRDT wurden diese Woche hinzugefügt und sind für die kommende CLI-Veröffentlichung bereit. Diese neuen Befehle ermöglichen es Benutzern, eine Öffentliche Sequenz im Netzwerk zu speichern und mit ihrer XOR-URL Elemente an sie anzuhängen. Ihr können einen Blick auf einen neuen Abschnitt werfen, der dem CLI User Guide hinzugefügt wurde und beschreibt, wie diese neuen sicheren Sequenzbefehle zum Speichern von Daten auf einem Datentyp Öffentliche Sequenz verwendet werden können.

Als Teil der Implementierung der Sequence API und der Befehle wurde die Verwendung von AppendOnlyData entfernt, und jetzt werden die FilesContainers und NRS-Map-Container im Netzwerk als Inhalt einer Public Sequence gespeichert. Dies hat keine Auswirkungen auf die CLI-Befehle oder APIs, da es sich lediglich um eine interne Änderung in der Implementierung handelt, die von einem Datentyp zu diesem neuen Datentyp wechselt.

CRDT

In der vergangenen Woche haben wir alle PRs des gesamten Stacks für eine erste Iteration der Sequenz CRDT fertiggestellt, während wir gleichzeitig den Typ AppendOnlyData entfernt haben.

Wie letzte Woche erwartet, ging es bei den letzten Schritten zur Erreichung dieses Ziels um die abschließende Bereinigung des Codes in den Safe-Client-Libs und Safe-APi-Repository sowie um die Erstellung von Tests für unsere CI-Testsuite. Wir haben auch all diese E2E mit unserer CLI-Testsuite mit einem Baby Fleming-Abschnitt getestet, und wir haben alle unsere Funktionstests bestanden.

Wir untersuchen auch ein Problem, das wir immer noch bei einigen der Vaults sehen, die manchmal keinen Inhalt zurückgeben. Wir sind uns immer noch nicht sicher, was die genaue Ursache dafür ist.

Einige der nächsten Schritte hängen nun damit zusammen, dass wir in der Lage sein werden, eine AT2-Zahlung an eine CRDT-Operation anzuhängen, und das ist es, womit wir uns jetzt befassen. Eine weitere anstehende Aufgabe besteht darin, unseren derzeitigen Datentyp MutableData in ein neues Karten-CRDT umzuwandeln, was unserer Meinung nach möglich ist, nachdem wir unsere erste Iteration des Sequenz-CRDT freigegeben und mit der Community gründlich getestet haben.

Transfers

SAFE Transfers Projektplan
SAFE Client Libs Projektplan
SAFE Vault Projektplan

In dieser Woche haben wir die Integrationsarbeit mit AT2 SAFE Client Libs und SAFE Vaults in Angriff genommen. Mit den Simulated-Payouts in Aktion, wie in der letzten Aktualisierung erwähnt, sind beide Module nun mit AT2 fertig, wobei neben den Integrationstests nur noch einige wenige Teile fehlen (Auswahl effizienter Wege für Zahlungen, Rückerstattungen usw.), die noch geschrieben werden müssen. Fast alle Geldflüsse (PUTs/Mutationen) wurden aktualisiert, um mit dem zugrunde liegenden AT2-Mechanismus zusammenzuarbeiten.

Wir evaluieren Optionen für die Bezahlung von Daten, die unter anderem festlegen, wie die Abschnitte den safe-transfers verwenden. In diesem Zusammenhang haben wir Fortschritte bei der Landwirtschaft gemacht. Es wurden Tests geschrieben, um die BFT-Eigenschaften der Belohnungsakkumulation zu überprüfen. Die Belohnungsakkumulation soll es ermöglichen, eine minimale Arbeitseinheit zu belohnen und es den oberen Schichten zu überlassen, zu entscheiden, was sie als „Arbeit“ betrachten.

Schließlich haben wir entsprechende Aktualisierungen in den SAFE Client Libs für diese letzten Änderungen des PUT/Mutationsprozesses vorgenommen. Sobald uns diese vorliegen, werden wir versuchen, alles mit den aktualisierten Vaults abzugleichen.

Routing

Projektplan

In dieser Woche haben wir endlich die Funktion gemeinsame Signaturen der Status zusammengeführt, die wir in früheren Entwickler-Updates diskutiert haben. Dann gingen wir auf eine weitere Anforderung des Vault-Teams ein - es stellte sich heraus, dass ein Vault manchmal die BLS-Signaturen auf eine Weise manipulieren muss, die nicht direkt von der Routing-API unterstützt wird. Wir beschlossen, dass wir, anstatt die API komplexer und möglicherweise komplizierter zu machen, diese Manipulationen direkt vom Vault ausführen lassen wollten. Um jedoch zu vermeiden, dass potenziell nicht-triviale Logik zwischen Vault und Routing dupliziert wird, beschlossen wir, einige niedrigrangige BLS-Helfer aus dem Routing herauszunehmen. Insbesondere implementierten wir einen Generic Signature Accumulator , der die wesentlichen Details der Sammlung von BLS-Signaturanteilen sammelt, sie validiert und zu einer vollständigen Signatur kombiniert. Der PR wurde erstellt und wird derzeit überprüft.

Die Arbeit am DKG-Ersatz schreitet gut voran. Eine Schlüsselfrage beim Umgang mit der DKG im Zusammenhang mit Spaltungen wurde in diesem PR gelöst - eine Zusammenfassung auf sehr hoher Ebene unseres neuen Ansatzes dazu ist, dass wir nun den neuen Elders erlauben werden, für die neue DKG zu stimmen. Der PR wird derzeit überprüft und gegen den neusten fleming branch getestet (aufgrund der jüngsten Änderungen dort wird dies etwas Zeit in Anspruch nehmen).

Wir haben auch das XOR-Raummodul aus dem Routing in ein eigenes separates Repository extrahiert, weil es eigentlich für andere Teile des Projekts nützlich ist. Dieses Repository definiert die „XorName“-Struktur, eine 256 Bit lange Zahl, die als eindeutiger Identifizierer von Knoten und Daten im Netzwerk dient. Es definiert auch die XOR-Metrik (Abstand zwischen zwei Namen), die beim Nachrichten-Routing eine wichtige Rolle spielt. Schließlich stellt es die „Prefix“-Struktur bereit, die den Kern des Konzepts der disjunkten Abschnitte bildet.

Nützliche Links

2 Like