Safe Network Entwickler Update đŸ‡©đŸ‡Ș 29. Juni 2023

Dies ist eine maschinelle Übersetzung. Das Original in Englisch ist hier: Update 29 June, 2023

Eine gute Woche voller Fehlerbehebungen und Optimierungen zur Vorbereitung auf unser nÀchstes Testnetz: NodeDiscoveryNet, in dem untersucht wird, wie Knoten einander im Netzwerk finden.

Wir haben eine Ursache fĂŒr ĂŒbermĂ€ĂŸige Speichernutzung gefunden. Wir gingen davon aus, dass die Knoten nur Nachrichten an die acht nĂ€chstgelegenen Knoten sendeten, wĂ€hrend sie tatsĂ€chlich Nachrichten an 20 Knoten sendeten. Wir sind uns nicht ganz sicher, was alle Folgeeffekte waren, aber bei jedem Anruf, bei dem wir von einer engen Gruppe ausgingen, gab es eine Menge verschwendeter Nachrichten – was sich in einer erhöhten Speichernutzung niederschlug und sich möglicherweise auch auf die Datenreplikation ausgewirkt hat.

Da wir in den Testnetzen viele Knoten pro Maschine betreiben, haben wir wenig Toleranz fĂŒr das Unerwartete. Wir haben gesehen, dass einige Knoten unerwartet abstĂŒrzten, und dass die erhöhte Speichernutzung ein möglicher Grund dafĂŒr ist.

Der andere Ort, an dem wir einen Knotentod sahen, war rund um die Replikation – das hatte damit zu tun, dass die standardmĂ€ĂŸigen „Kademlia/libp2p“-Prozesse Mist zur Routing-Tabelle hinzufĂŒgten, einschließlich Knoten, die sich hinter NAT befinden und nicht erreicht werden können. Dies bedeutete, dass die Knoten dachten, sie wĂ€ren mit dem Netzwerk verbunden, aber das war in Wirklichkeit nicht der Fall – eine wahrscheinliche Ursache fĂŒr das Problem „Ich bin beigetreten, habe aber keine Daten“ und auch fĂŒr den unerwarteten Ausfall von Knoten. Jetzt fĂŒgen wir manuell EintrĂ€ge zur Routing-Tabelle hinzu, anstatt uns darauf zu verlassen, dass Kademlia dies tut, wenn eine Verbindung erkannt wird. Manchmal muss man einfach die Ärmel hochkrempeln und es selbst tun. :roll_eyes: Es kann sein, dass Knoten, die in der Unterwelt stecken bleiben, neu gestartet werden mĂŒssen, um richtig in das Netzwerk zu gelangen, aber das sollte unserer Meinung nach nicht notwendig sein.

Allgemeiner Fortschritt

@Chriso hat die Woche damit verbracht, dank des Feedbacks aus dem letzten Testnetz an UX-Verbesserungen am Installations- und Protokollierungsprozess zu arbeiten.

@aed900 arbeitet an einer Batchdatei, um die Anzahl wichtiger Protokollmeldungen/-fehler aus Testnet-Knotenverzeichnissen zu extrahieren, Ă€hnlich wie @Shu es getan hat, um seine Diagramme zu erstellen. Er arbeitet auch mit @Chriso zusammen, um das Testnet-Tool nĂŒtzlicher zu machen, und bald wird es auch die Möglichkeit geben, Testnets ĂŒber die Github-BenutzeroberflĂ€che zu starten.

@Anselme hat die Implementierung von PUT- und GET-Operationen und der Replikation fĂŒr Register im Anschluss an seine vorherige Arbeit an Chunks und Spends so gut wie abgeschlossen. Große Neuigkeiten, da es die Infrastruktur fĂŒr DBCs bereitet! Er hat auch die zugehörigen Kisten umgestaltet und rationalisiert, um hier bei der zukĂŒnftigen Arbeit zu helfen.

@bzee entfernt unseren benutzerdefinierten Code fĂŒr die Verwaltung der Kommunikation mit Peers (im Fachjargon „WĂ€hlen“), ohne dass eine ID erforderlich ist, und ersetzt ihn durch die native „libp2p“-FunktionalitĂ€t, die das AnwĂ€hlen eines Peers verhindert, wenn die NachrichtenĂŒbermittlung bereits initiiert wurde. Er hat auch unsere APIs geĂ€ndert, sodass keine Peer-ID erforderlich ist.

Gemeinsam mit @joshuef hat sich Benno auch mit dem manuellen EinfĂŒgen von EintrĂ€gen in die Routing-Tabelle befasst, anstatt dies automatisch geschehen zu lassen. Wir haben festgestellt, dass dieser Prozess manchmal MĂŒll einfĂŒgt (siehe oben) mit unglĂŒcklichen Nebenwirkungen.

@qi_ma arbeitet an verschiedenen Szenarien darĂŒber, wer was ĂŒberprĂŒft, wenn ein Kunde fĂŒr StĂŒcke bezahlt. Wie immer wollen wir so viel wie möglich auf den Client laden, aber nicht so weit, dass es das System betrĂŒgen kann.

Und @bochaco und @roland entfernen Bulletproofs aus dem DBC-Code und integrieren diese in Zahlungsprozesse. Auf diesen Schritt können wir unserer Meinung nach jetzt verzichten, da er den erheblichen Vorteil hat, andere Prozesse zu vereinfachen (und einen zweifelhaften Vorteil, da die Ladenkosten bekannt sind und große Teile der Transaktionen im Netzwerk effektiv entlarvt werden).


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!