Safe Network Entwickler Update ­čçę­čç¬ 07. Oktober 2021

Dies ist eine maschinelle ├ťbersetzung. Das Original in Englisch ist hier: Update 07 October, 2021

Wir haben die Idee des Client Writing the Spentbook vor kurzem vorgestellt und haben seitdem den Kopf gesenkt, um zu trainieren der beste Weg, dies umzusetzen. Diese Woche werden wir unser bisheriges Denken erkl├Ąren.

Allgemeiner Fortschritt

Einige erfolgreiche Bug-Bashing diese Woche. @Chriso hat die CLI / API-Tests ordnungsgem├Ą├č funktionieren lassen, was bedeutet, dass die sn_cli / sn_api / safe_network-Kombination jetzt mehr oder weniger stabil ist. Tats├Ąchlich k├Ânnen CLI und API jetzt in das Hauptrepo zusammengef├╝hrt werden, was bedeutet, dass keine Probleme mehr mit der Kombination kompatibler Versionen bestehen. :tada:

In diesem Sinne ist es fantastisch zu sehen, wie sich Leute mit dem Community-Testnet besch├Ąftigen. Ein gro├čes Lob an @josh, dass Sie es auf den Weg gebracht haben. Es flog eine Weile, was gut zu sehen ist, und vor allem sind die generierten Protokolldateien eine gro├če Hilfe bei unserer Fehlersuche. Vielen Dank f├╝r das Teilen der Updates bisher!

@bochaco hat an einigen Debugging-Tools gearbeitet, die die Protokolle der Knoten lesen, um zu ├╝berpr├╝fen, ob jede empfangene Nachricht vollst├Ąndig verarbeitet wird. Beim Empfang eines Befehls sollte ein Knoten (a) wie angewiesen tun oder (b) einen Fehler zur├╝ckgeben, aber gelegentlich sitzen sie und tun nichts, was ┬ę ungerade Fehler verursachen oder sogar (d) den Knoten effektiv blockieren kann. Mit diesem Tool haben sie einige m├Âgliche T├Ąter ausfindig gemacht und behoben, und bis jetzt scheint sich die Situation erheblich verbessert zu haben. Dieselbe Analyse kann auch f├╝r den Rest der Fehlersuche des Teams verwendet werden, einschlie├člich @yogesh und @qi_ma, die ├Ąhnliche Vorkommen von Deadlocks (Endlosschleifen) mit internen Befehlen untersuchen. Wir planen, dieses Pr├╝ftool in den CI-Prozess zu integrieren.

Kunde schreibt Spentbook

Bevor ein DBC ausgegeben wird, muss der Client einen Spentbook-Eintrag erstellen. Dies ist ein unver├Ąnderliches Datenelement, das auf Adult-Knoten im Netzwerk gespeichert ist und Details der gew├╝nschten Transaktion enth├Ąlt und sicherstellt, dass nach der Transaktion (DBC-Neuausgabe) dieselbe DBC nicht erneut ausgegeben werden kann.

In unserem aktuellen Denken sieht der Ablauf so aus:

  • Der Kunde erstellt einen Spentbook-Eintrag und signiert ihn mit seinem ├Âffentlichen Schl├╝ssel
  • Der Kunde sendet den unterschriebenen Spentbook-Eintrag an alle 7 ├ältesten im entsprechenden Abschnitt
  • Die ├ältesten schreiben diesen Spentbook-Eintrag an die 3 Erwachsenen, die seiner Adresse am n├Ąchsten sind
  • Die 7-Sektions-├ältesten unterschreiben den Spentbook-Eintrag mit ihrem BLS-Schl├╝sselanteil und geben ihn an den Kunden zur├╝ck
  • Vorausgesetzt, der Kunde erh├Ąlt mindestens 5 solcher Nachrichten (eine Supermehrheit), kombiniert er die BLS-Schl├╝sselanteile, um ein Spentbook zu erstellen, das mit einem g├╝ltigen Abschnittsschl├╝ssel signiert ist. In diesem Stadium wird es als Spentproof bezeichnet
  • Der Kunde kann jetzt die ├ältesten (die auch die Mint-Software ausf├╝hren) bitten, seinen DBC neu auszugeben. Es schickt den DBC zusammen mit dem Spentproof zur├╝ck an die ├ältesten, die nun die Neuauflage unterzeichnen.

Dieser Prozess hat viele attraktive Eigenschaften: Das Netzwerk ist nicht in den komplexen Prozess des Haltens des Status (aktuelle Informationen ├╝ber Kontost├Ąnde usw.) involviert; der Kunde leistet die harte Arbeit; die Anzahl der Nachrichten hin und her ist akzeptabel; und es sollte relativ einfach zu implementieren sein, ohne gr├Â├čere Reorganisationen oder Refactorings.

Wir arbeiten noch an Fragen der Pr├╝fbarkeit (Zahlungsnachweis usw.) und Optimierungen, aber dies ist die Grundstruktur, wie wir Doppelausgaben vermeiden.


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!