Zusammenfassung
Hier sind einige der wichtigsten Dinge, die seit dem letzten Entwickler-Update: hervorzuheben sind
Wir haben den SAFE-Browser mit einer neuen Betaversion aktualisiert.
Wir haben eine neue RC MaidSafe.SafeApp NuGet package veröffentlicht.
Es wird daran gearbeitet, die mobilen Browser- und Authenticator-Anwendungen mit den neuesten Vault- und CLI-Anwendungen kompatibel zu machen.
-
Nachrichtenbasierte Abstimmung wurde am Mittwoch erfolgreich zusammengeführt und ist ein wichtiger Schritt zur Beseitigung von PARSEC.
Die Testnet-Iterationen der letzten Woche haben uns geholfen, Speicherlecks an zwei Stellen zu schließen - die Arbeit an der Suche nach der genauen Quelle(n) und deren Behebung ist im Gange.
Wir haben das neue safe-farming repository :tada veröffentlicht: Dies ist noch eine Bibliothek im Frühstadium, die wir als Teil der AT2-Änderungen in den Vault benutzen.
Vault Phase 2
Letzte Woche haben wir ein paar Testnets mit einigen Verbesserungen veröffentlicht, an denen wir seit Testnet-Iteration 1 gearbeitet haben. Das erste Testnetz akzeptierte bis zu 22 Vault, die von zu Hause aus angeschlossen wurden. Das Netzwerk empfing 2956 Datenblöcke von 47 Konten, die in 414 Containern für eindeutige Dateien gespeichert waren.
Nach etwa 14 Stunden wurden die Ältesten des Netzwerks aufgrund der hohen Speichernutzung durch das Betriebssystem getötet. Dies schien den Problemen ähnlich zu sein, die wir im vorherigen Testnet identifiziert hatten, so dass wir das Testnet mit aktiviertem Speicher-Profiling neu starteten. Dank der Hilfe der Gemeinschaft waren wir in der Lage, aussagekräftige Ergebnisse zu sammeln, die uns geholfen haben, die Ursache des Problems zu identifizieren. Der Grund für diese hohe Speichernutzung ist auf Speicherlecks an zwei Stellen zurückzuführen. Wir untersuchen dies weiter, um die genaue Ursache zu ermitteln - im Moment sieht es nicht so aus, als seien die Speicherlecks auf unseren Code zurückzuführen, daher untersuchen wir auch einige unserer Abhängigkeiten und deren Nutzung. Wir werden Euch über alle Fortschritte an dieser Front auf dem Laufenden halten.
Um zu versuchen, uns dabei zu helfen, Fehler wie die oben genannten früher zu finden, bevor sie die Gemeinschaft erreichen, prüfen wir parallel dazu auch einige Möglichkeiten zur Verbesserung und Erweiterung unserer Testumgebung, indem wir die Umwälzung durch Droplets und/oder Container automatisieren. Wir befinden uns noch in einem frühen Planungsstadium, so dass wir zu gegebener Zeit mehr Informationen weitergeben werden, wenn die Entscheidungen getroffen werden.
SAFE-Netzwerkanwendung UX
Ein Wort der Warnung zu den Links in diesem Abschnitt: es gibt derzeit einen Fehler in Figma, der eine hohe Speicherauslastung verursacht, so dass sie möglicherweise nicht mehr reagieren oder nicht mehr vollständig geladen werden können.
Feature-Tracker / Bildschirme und Benutzerströme
In dieser Woche haben wir zusätzlich zur Arbeit an einer Liste von Mikro-Features und Snagging-Listen, die zu mühsam ist, um sie hier im Detail zu beschreiben, die screens and flows for Notifications veröffentlicht.
Diese mögen für sich genommen etwas unterwältigend erscheinen, aber wenn sie zusammen mit den Berechtigungen (und den Nutzungsregeln und der Datenkennzeichnung) verwendet werden, sind sie ein wirksames Mittel zur Schaffung eines Benutzersicherheitsmodells, das ein Gleichgewicht zwischen schnellen und reibungsarmen Arbeitsabläufen, Benutzerkontrolle und Ermüdung der Berechtigungen herstellt.
Passive Benachrichtigung, zum Beispiel in Kombination mit Standardberechtigungen, die so eingestellt sind, dass eine neue Anwendung nur für den Zugriff auf Daten mit ihrem eigenen Label verwendet werden darf, bedeutet, dass wir einen Benutzer nicht mit Vorabentscheidungen darüber unterbrechen müssen, welchen Grad an Fähigkeiten er einer Anwendung gewähren will. Er kann nahtlos damit beginnen, sie zu nutzen, wird aber nur auf Aktionen aufmerksam gemacht, die er noch nicht eingeleitet hat.
Natürlich gibt es direktere und direktere Inhaltsmodelle mit der Flexibilität, die diese Hebel bieten. Sie werden auch feststellen, dass wir die Optionen zu zwei verschiedenen Sicherheits-„Profile“-Optionen gebündelt haben, mit denen der Benutzer während des Einstiegs schnell beginnen kann.
SAFE-Browser (Desktop)
Wir haben [den SAFE-Browser mit einer neuen Beta-Version] (https://github.com/maidsafe/safe-browser/releases/tag/v0.18.0-beta.1) auf den aktualisierten safe-nodejs
aktualisiert.
Es gibt hier auch die Einfügung eines freizügigeren CORS-Headers, um bei Fetches in JavaScript zu helfen, ein Update, um unsere Electron-Abhängigkeit auf v8.4.0 zu bringen, und andere kleinere Updates der Browser-Abhängigkeiten.
Es ist uns gelungen, einige fehlerhafte CI-Tests in dieser Version zu beheben und unsere Ubuntu-End-to-End-Tests wieder zum Laufen zu bringen, was es uns nun ermöglichen sollte, automatisierte Sicherheitsupdates über Dependabot zu ermöglichen, sobald wir diese Änderungen in den Griff bekommen haben.
SAFE API
Wir haben einen ersten experimentellen Prototyp des in der letzten Woche erwähnten Tree-CRDT gemacht, um uns mit den in der Arbeit vorgestellten gleichzeitigen Bewegungsszenarien vertraut zu machen und sie zu testen. Der mengenbasierte Algorithmus funktioniert wie beschrieben, ist aber ineffizient. Die nächsten Schritte werden darin bestehen, eine Vektoruhr zu implementieren und einige im Papier beschriebene Optimierungen vorzunehmen.
SAFE-Anwendung C#
Heute haben wir ein neues RC MaidSafe.SafeApp NuGet-Paket veröffentlicht, das aktualisierte Authentifizierer-APIs enthält, die von safe-api/safe-ffi" aus zugänglich sind, wo wir bisher
safe-client-libs/safe-authenticator-ffi" verwendet haben.
Wir haben bereits damit begonnen, die mobile Authenticator-Anwendung so umzugestalten, dass sie dieses Paket verwendet. Die Authenticator-Anwendung hat ihren eigenen FFI-Wrapper, während für die Mock-APIs safe_app_csharp
eine separate Kopie desselben Codes hat. Mit dem neuen Paket können wir den überflüssigen Code leicht entfernen und die Authentifikator-APIs wiederverwenden. Durch das Refactoring wird die Anwendung auch mit den neuesten Vaults und der CLI kompatibel sein.
Parallel dazu arbeiten wir an der mobilen Browser-Anwendung, damit sie mit den neuesten Vaults und der CLI verwendet werden kann. Dazu wird auch die Unterstützung der aktualisierten Datei-APIs gehören, die jetzt CRDT-basierte Sequenzdaten verwenden.
CRDT
In der letzten Woche haben wir unserer Sequenzimplementierung einige weitere Einheitstests hinzugefügt, diesmal jedoch für einige spezifische Szenarien, in denen Datenmutationsoperationen gleichzeitig mit Policy-Mutationsoperationen an verschiedene Replikate gesendet werden. Durch das Hinzufügen dieser neuen Tests konnten wir für diese Szenarien eine Reihe verschiedener Alternativen zur Lösung untersuchen.
Wie bereits in früheren Entwicklungs-Updates erwähnt, ist die Unterstützung der Zugriffskontrolle auf CRDT-Daten etwas schwierig, und deshalb untersuchen wir Alternativen. Wir haben bisher zwei verschiedene Ansätze getestet, die unserer Meinung nach nicht optimal sind, oder zumindest nicht in der Art und Weise, wie wir sie bisher definiert haben, also versuchen wir weiterhin, einen besseren Ansatz zu finden und an einem der beiden bestehenden Ansätze die notwendigen Anpassungen vorzunehmen, damit er unseren Bedürfnissen entspricht. Was wir anstreben, ist nicht nur die Unterstützung dieser Szenarien, sondern auch eine möglichst einfache Umsetzung. Letzteres ist das, was noch einiger Anstrengungen bedarf.
Wir haben auch eine kleine Änderung bei der Umsetzung des Policy-Managements vorgenommen, indem wir den Eigentümer der Daten zum Bestandteil der Policy selbst gemacht haben, anstatt getrennte Teile des Inhalts für die Berechtigungen des Eigentümers und der Benutzer mit den Daten zu verknüpfen. Damit wollen wir vor allem vermeiden, dass wir uns einer weiteren Herausforderung stellen müssen, wenn es darum geht, gleichzeitige Mutationen für Daten, Berechtigungen und Eigentum zu unterstützen. Auf diese Weise machen wir die Richtlinie in sich geschlossen, indem wir nicht nur Benutzerrechte, sondern auch Eigentümerinformationen enthalten, was bedeutet, dass ein Wechsel des Eigentümers lediglich eine Mutation der Richtlinie bedeutet.
Transfers
Projektplan für SAFE-Transfers
SAFE Client Libs-Projektplan
SAFE Vault-Projektplan
SAFE-Projektplan für die Landwirtschaft
Wir haben in den letzten Wochen erwähnt, dass die Arbeit am landwirtschaftlichen Aspekt der SAFE-Netzwerk-Ökonomie im Gange ist - diese Arbeit können wir nun mit der Veröffentlichung des neuen safe-farming repository mit Ihnen teilen. Hierbei handelt es sich noch um eine Bibliothek im Frühstadium, die wir im Rahmen der AT2-Änderungen in den Vaults verwenden, um eine gewisse Logik für die Berechnung der Belohnungen zu liefern und es den Vaults zu ermöglichen, diese zu nutzen, um Auszahlungen aus ihrer Sektionsbrieftasche zu generieren.
In Erwartung noch ausstehender Änderungen an der Nachrichtenübermittlung ist die Hälfte des Teams, das an den Transfers arbeitet, diese Woche zu anderen Aufgaben übergegangen.
Der größte Teil der zweiten Iteration des Messaging-Refaktors wurde abgeschlossen, und damit wurden auch die letzten größeren Teile der Sektionsauszahlungen (d.h. die Landwirtschaft) eingeführt. Dies ermöglicht es uns nun, die Logik im Detail zu erläutern und auch an den End-to-End-Tests dieser Änderungen zu arbeiten.
Routing
Wie im Entwickler-Update der letzten Woche erwähnt, arbeiteten wir diese Woche an der Einführung der nachrichtenbasierten Abstimmung. Diese Arbeit wurde durch PR 2161 ersetzt, die am Mittwoch zusammengelegt wurde, und ist ein wichtiger Schritt zur Abschaffung von PARSEC. Sie gliedert die Konsensveranstaltungen & Mechanismus in zwei Teile (geordnet und ungeordnet) um und implementiert den Rahmen der nachrichtenbasierten Abstimmung unter Verwendung von BLS Signature Aggregation, wobei die Vorgänge, die keinen geordneten Konsens erfordern, von PARSEC weg verlagert werden, um BLS zu verwenden.
Eine weitere Anforderung des Testnet-Teams bestand darin, dass die Vaults einen Vorgang benötigten, um sie darüber zu informieren, dass sie zu einem Adult befördert wurden, damit sie sich zwischen Knotenpunkten für Infants und Adults unterscheiden können. PR 2162 löst dieses Problem, indem ein Ereignis ausgelöst wird, wenn Infants während der Durchmischung zu Erwachsenen altern. Wir haben auch damit begonnen, die Repositories zu verfestigen, indem wir weitere Tests ohne mocks hinzugefügt haben, die die Logik dieser sich schnell bewegenden Teile während der Überholung überprüfen. Als nächstes beschäftigen wir uns mit #2122 , das die Akkumulation von Nachrichtensignaturen innerhalb der Sektion von PARSEC wegbewegt.
Nützliche Links
Ihr könnt uns gerne Übersetzungen dieses Entwickler-Updates zusenden und wir werden sie hier auflisten:
:bulgarien: Bulgarisch
Als Open-Source-Projekt sind wir immer auf der Suche nach Feedback, Kommentaren und Beiträgen der Gemeinschaft - seien Sie also nicht schüchtern, machen Sie mit und lassen Sie uns gemeinsam das SAFE-Netzwerk aufbauen!