Safe Network Entwickler Update 🇩🇪 24. März 2022

Dies ist eine maschinelle Ăśbersetzung. Das Original in Englisch ist hier: Update 24 March 2022

Das Safe Network basiert auf dem Konzept, die Bausteine ​​einfach zu halten. Einzelne Elemente reagieren auf begrenzte und vorhersehbare Weise auf äußere Reize, verbinden sich jedoch zu einer Einheit, die in der Lage ist, komplexe Aufgaben in einer unvorhersehbaren Welt zu erfüllen und sich gegen Feinde zu verteidigen - die Ameisenkolonie-Analogie.

Damit dies funktioniert, sind jedoch subtile Feedback-Mechanismen erforderlich. Die einzelnen Ameisen müssen signalisieren können, dass sie unter Druck stehen und nicht mehr tragen können, sonst wird das System brüchig und die Kolonie bricht zusammen. @oetyng hat an einem System von Message Queuing und Backpressure gearbeitet, das eine Möglichkeit für Nodes ist, zu sagen: „Meine Güte, zieh dich zurück, ja? Ich komme rechtzeitig zu dir, aber ich habe nur sechs Beine, zwei Mandibeln und ein winziges Gehirn. Der Code ist noch nicht vollständig, aber Tests zeigen bereits beeindruckende Verbesserungen in Stabilität und Leistung.

Allgemeiner Fortschritt

Das Team MaidSafe setzt sich mit dem Entwurf des britischen Online-Sicherheitsgesetzes auseinander, das letzte Woche veröffentlicht wurde, und wie er sich auf uns als Unternehmen sowie auf das Safe Network als Projekt auswirken könnte. Unsere Bedenken bezüglich des Gesetzentwurfs, der immer versucht hat, das Internet rund um Facebook zu regulieren, wurden durch den neuen Entwurf sicherlich nicht zerstreut; wenn überhaupt, wurden sie noch schlimmer gemacht. Wir arbeiten also daran, zu verstehen, welche Haltungen wir möglicherweise einnehmen und welche Diskussionen wir möglicherweise führen müssen, um der Regierung zu helfen, zu verstehen, dass Projekte wie unseres weder Facebook sind, noch so behandelt werden sollten, wie wir es sind. Glücklicherweise befasst sich unsere Policy- und Governance-Managerin @Heather_Burns seit über drei Jahren in ihren vorherigen Jobs mit diesem Gesetzentwurf und versteht ihn so gut wie jeder andere. Sie ist derzeit in einem dunklen Keller mit über 500 Seiten Gesetzestext und einer Kiste Irn Bru eingesperrt und wird sich bald wieder melden.

Beim Durcharbeiten der DBC-Flows kamen @danda und @davidrusu zu der Erkenntnis, dass die Münze, wie sie ursprünglich spezifiziert war, nicht mehr benötigt wurde, da die Funktionalität – das Verifizieren und Signieren von Transaktionen – nun in das ausgegebene Buch eingebaut war. Wie einige scharfäugige Mitglieder der Community (hi @happybeing!) festgestellt haben, bedeutet dies, dass ganze Codeschwaden entfernt werden können, wodurch sowohl für den Client als auch für die Ältesten weniger Arbeit zu erledigen ist. Wir diskutieren jetzt, ob wir aus dem verbrauchten Buch einen separaten Datentyp machen sollen – und vielleicht, ob wir es in „mint“ umbenennen, um es der Konvention anzupassen.

@Chriso untersucht die Lizenzierung der Codebasis, die im Laufe der Zeit inkonsistent geworden ist. Die Idee ist, das Kernnetzwerk unter GPL3 zu lizenzieren, wobei nicht sichere Netzwerkkisten unter MIT/BDS lizenziert werden, um Client-Apps, die darauf aufbauen können, nicht einzuschränken.

@joshuef hat auch daran gearbeitet, den Funktionsverfolgungscode zu integrieren, der einige Fehler in der Abfragebehandlung des Knotens aufgedeckt hat. Vor diesen Fixes haben Knoten möglicherweise keinen gültigen Chunk an Clients zurückgegeben, wenn ein anderer Knoten schneller mit einem Fehler geantwortet hat. Möglicherweise haben sie keinen Peer in die Warteschlange gestellt, wenn für denselben Chunk bereits einer existierte, und wir haben möglicherweise keine erneuten Anfragen an Knoten überhaupt, wenn die ursprünglichen Nachrichten während der Übertragung aus irgendeinem Grund gelöscht wurden. Diese paar Commits beheben diesen Fluss und scheinen einen angemessenen Einfluss auf die Testergebnisse gehabt zu haben, was schön ist.

Gegendruck und Nachrichtenwarteschlangen

Aufgrund von Beschränkungen in ihrer CPU und ihrem Arbeitsspeicher können Knoten keine unendliche Anzahl von Anforderungen verarbeiten. Bisher haben wir sie, wenn sie unter der Belastung zusammengebrochen sind, einfach getötet, was zu viel Abwanderung, noch mehr herumfliegenden Nachrichten und schließlich zu einem Ausfall führt, aber Gegendruck - der es einem Knoten ermöglicht, sich zu beschweren, bevor der Knackpunkt erreicht ist - ist eine Möglichkeit, die Kurve zu glätten.

Knoten können also jetzt zurückdrängen und sagen: „Hey, ich gehe hier unter, gib mir eine Pause, sende mir nur 10 Nachrichten innerhalb der nächsten Sekunde“. Das Netzwerk wird proaktiv prüfen, wozu die Knoten zu einem bestimmten Zeitpunkt in der Lage sind, und sie nicht mit Nachrichten überschwemmen, wenn sie unter Stress stehen. Dadurch können sie sich erholen, sobald sie ihre Aufgabe erledigt haben.

Das Drosseln der Nachrichten auf diese Weise gibt uns auch Zeit, Nachrichten zu priorisieren. Wenn es also etwas gibt, das höchste Priorität hat, wird es trotzdem durchgehen, während weniger wichtige Nachrichten warten können.

Jeder Knoten hat jetzt eine Nachrichtenwarteschlange, die ungesendete Nachrichten enthält, solange der Knoten als aktiv betrachtet wird. Wenn nicht, werden die Nachrichten verworfen.

Mit diesem System kennen alle Knoten die Anzahl der Nachrichten pro Sekunde, die die anderen Peers in ihrem Abschnitt empfangen können, wie vom „back_pressure“-Modul berechnet, und Nachrichten werden priorisiert, so dass wichtige Infrastrukturnachrichten immer vor weniger wichtigen gesendet werdennt-Clientdienstmeldungen.

Dies ist noch nicht live, aber beim Testen haben die Ă„nderungen zu einigen wirklich beeindruckenden Ergebnissen gefĂĽhrt:

Speichern und Lesen von 5 MB von vielen Clients mit 50 Client-Lesegeräten ergab Folgendes auf dem Testzweig:

Zeit: 30 s
CPU: ~40 % (ganz kurz ĂĽber 50 %)
Speicher: ~60 MB / Elder (ganz kurz bis 125 MB)

im Vergleich zu den Ergebnissen auf main:

Zeit: 704 s
CPU: 100%, die ganze Zeit
Speicher: ~2 GB / Elder, die ganze Zeit

All das bedeutet glĂĽcklichere und gesĂĽndere Ameisen. :ant:


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!