Electric Coin Co. (ECC) arbeitet seit Juni daran, Leistungsprobleme der Zcash-Brieftaschen zu lösen, die Benutzer der Drittanbieter-Apps Edge, Nighthawk und Unstoppable betreffen.* Alle drei dieser mobilen Brieftaschen verwenden das ECC-SDK.
Unsere Ingenieure haben Fortschritte gemacht, aber es bleibt noch Arbeit – einschließlich weiterer Updates für zcashd, lightwalletd, die ECC-Wallet-SDKs und die ECC-Prototypen-Wallet – um die gute Benutzererfahrung in den betroffenen Apps vollständig wiederherzustellen.
Die Lösung dieser Probleme ist unsere oberste Priorität und hat sogar Vorrang vor unserer langfristigen Roadmap. Intern nennen wir das „Emergency Mode“.
Das Synchronisationsproblem
Ab Juni 2022 verzeichnete das Zcash-Netzwerk einen enormen Anstieg des abgeschirmten Transaktionsvolumens. Diese zusätzliche Netzwerklast verursachte einen „Datenstau“, der einige Wallets daran hinderte, in angemessener Zeit zu synchronisieren. (Der aktuelle Wallet-Synchronisierungsprozess erfordert das Scannen der gesamten Blockchain, bevor Gelder ausgegeben werden können.) Wenn ein Wallet nicht synchronisiert wird, kann ein Benutzer nicht auf sein Geld zugreifen oder es ausgeben.
Es ist eine komplizierte Herausforderung, die angegangen werden muss, und es erfordert mindestens die Entwicklung und Implementierung (1) eines schnelleren Algorithmus, der keine lineare Synchronisierung aller Blöcke in der Kette erfordert, und (2) Werkzeugmodifikationen, die den Benutzern die Möglichkeit geben, Geld ohne auszugeben mit einer vollständig synchronisierten Kette. Wie bereits erwähnt, umfasst die Lösung Änderungen an jeder Komponente des abgeschirmten mobilen Wallet-Stacks: zcashd, lightwalletd, die ECC-Wallet-SDKs und die ECC-Prototyp-Wallet.
Was wir bisher gemacht haben
Innerhalb weniger Wochen nach der Identifizierung des Problems veröffentlichte ECC zwei Updates für zcashd, die Probleme mit vollständigen Knoten lösten, und die Arbeit an den SDKs war im Gange. Im Oktober haben wir zcashd 5.3.0 veröffentlicht, um Probleme mit unzureichendem Arbeitsspeicher zu beheben, aber weitere öffentliche Veröffentlichungen, die speziell für diese Synchronisierungsprobleme relevant sind, verzögerten sich, da ECC-Ingenieure von der Aufgabe abgezogen wurden, zcashd 5.3.3 und 5.4.2 zu erstellen – kritisch Updates, die von Bitcoin Core geerbte Schwachstellen behoben haben.
Hier ist eine Zusammenfassung dessen, was wir bisher getan haben, um Probleme mit der Brieftaschenleistung zu beheben:
Veröffentlichung von zcashd 5.1.0 und 5.2.0 im Juli, um die Leistung in vollständigen Knoten zu verbessern. Veröffentlichung von zcashd 5.3.0 zur Behebung einer Reihe von zeitweise auftretenden Problemen mit unzureichendem Arbeitsspeicher. Abschluss der meisten Codeaktualisierungen und Tests für zcashd 5.5.0, das implementiert Gebührenänderungen und gibt Benutzern die Möglichkeit, Geld auszugeben, bevor eine Brieftasche synchronisiert wird. Einen Teil der Back-End-Arbeit abgeschlossen, die erforderlich ist, um die nächste Version der iOS- und Android-SDKs zu unterstützen, die die erste Phase einer verbesserten Synchronisierungsfunktion enthalten wird.
Notfallmodus verlassen
Unsere oberste Priorität ist sicherzustellen, dass Benutzer auf ihre ZEC (Zcash-Coins) zugreifen und diese ausgeben können. Dies ist grundlegend für unsere Mission der wirtschaftlichen Freiheit und eine Voraussetzung für echtes privates digitales Bargeld.
Geschwindigkeit und Zuverlässigkeit sind ebenfalls entscheidend für die Benutzererfahrung von Zcash, daher erstellen wir Updates, die es Benutzern ermöglichen, neue eingehende Gelder schneller zu erhalten und auszugeben**, und wir implementieren Funktionen, die den Synchronisierungsfortschritt sichtbar machen.
Erst nachdem diese Funktionen bereitgestellt wurden – und wenn wir sicher sind, dass Wallets nicht durch häufige Abstürze oder inkonsistentes Verhalten beeinträchtigt werden – werden wir in Betracht ziehen, den Notfallmodus zu verlassen und unseren Fokus auf andere Initiativen auszudehnen.
Die folgende Tabelle stellt einen geschätzten Veröffentlichungszeitplan dar, um die Probleme mit der Wallet-Synchronisierung zu beheben. Jede Version soll innerhalb eines halbmonatigen Fensters bereitgestellt werden, um Dutzende von inhärenten Abhängigkeiten zu berücksichtigen. Zwischenversionen können basierend auf bestimmten Anforderungen oder Abhängigkeiten während dieses Prozesses erfolgen. Die aufgeführten Versionsnummern können sich auch aufgrund von Notfällen oder anderen ungeplanten Auswirkungen ändern.
Es ist wichtig zu beachten, dass Drittentwickler nach der Bereitstellung dieser Versionen möglicherweise einige Tage oder Wochen zum Implementieren und Testen benötigen.
Die Verbesserung der Verfügbarkeit von Geldmitteln bietet die Möglichkeit, Geldmittel auszugeben, bevor eine Brieftasche vollständig synchronisiert ist.
Obwohl diese Version keine unmittelbaren positiven Auswirkungen auf die Benutzererfahrung von Wallets haben wird, ist dies ein notwendiger Schritt, um den Notfallmodus zu verlassen.
Zweite Aprilhälfte 2023lightwalletd 0.5Partner, die derzeit lightwalletd-Server betreiben, müssen dieses Update anwenden, damit die zukünftigen SDK-Funktionen ordnungsgemäß funktionieren und eine verbesserte Benutzererfahrung über die mobilen Wallets bieten.
Unterstützt das zukünftige zcash 5.6.0-Update.
Zweite Hälfte des AprilECC-Prototyp-WalletDiese erste Version der App wird mit einem minimalen Funktionsumfang als Testplattform entwickelt, um die aktuelle Zcash-Funktionalität zu validieren und als Prototyp für die zukünftige Funktionsentwicklung zu dienen.
Die anfängliche Verteilung wird mit einer breiteren Produkteinführung später im Jahr 2023 begrenzt sein.
Zweite Maihälfte 2023zcashd 5.6.0DAGSync-Fähigkeit, die eine schnelle Synchronisierung und Überprüfung der Blockchain ermöglicht
Benutzer werden die Änderungen an der UX nicht sehen, bis das SDK-Update 0.6 (unten beschrieben) herauskommt.
Zweite Maihälfte 2023Mobile SDK-Updates 0.6 (iOS & Android)Dieses Update umfasst die Unterstützung für den Zugriff von Drittanbieter-Apps auf die Verfügbarkeit von Fonds und verbesserte Synchronisierungsfunktionen.
Sobald dieses Update live ist, liegt es an den einzelnen Wallet-Entwicklern, die neuen Funktionen in ihre Anwendung zu integrieren, die es den Benutzern ermöglichen, problemlos auf ihre Gelder zuzugreifen und die allgemeine Zcash-Benutzererfahrung zu verbessern. Dadurch wird der Notfallmodus beendet.
* Basierend auf Community-Feedback hat Ywallet gut funktioniert und scheint von hoher Transaktionslast im Netzwerk nicht betroffen zu sein.
** Der Geschwindigkeits-Benchmark, den wir für die Herabstufung vom Notfallmodus festgelegt haben, ist, dass ein typischer Zcash-Benutzer in einer Stunde Gelder mit einer Transaktionsrate von einem Monat empfangen und ausgeben kann. Dies ist weder ein perfektes Maß (Anwendungsfälle können sehr unterschiedlich sein), noch ist es unser Endziel (wir wissen, dass eine großartige Benutzererfahrung mehr erfordert), aber wir glauben, dass es wichtig ist, ein Referenzziel für die interne und Community-Anpassung festzulegen. Zukünftige Geschwindigkeitsverbesserungen werden geplant, sobald die kritischen Probleme behoben sind.