Oasis Technik Update für März 2023

Marvin
Oasis Foundation German
9 min readApr 16, 2023

Dieser Artikel ist eine inoffizielle Übersetzung der ursprünglichen Veröffentlichung. Die Übersetzung erfolgte durch Marvin, Oasis Labs Botschafter.

Zum Ende des ersten Quartals 2023 hat die Oasis-Entwicklungsabteilung in kurzer Zeit erneut eine Menge geleistet. So gab es im März bedeutende Fortschritte und Aktualisierungen im gesamten Oasis-Stack. Ungeachtet des technischen Fortschritts blieben die Netzwerkaktivität und die Zuverlässigkeit stark und stabil.

Dieser monatliche Engineering Brief gibt einen Überblick über:

  • Wallet- und CLI-Aktualisierungen
  • Netzwerk-Updates (Mainnet und Testnet)
  • Indexer- und Explorer-Aktualisierungen
  • Aktualisierungen der Entwicklerplattform und ParaTime
  • Oasis Core-Updates

Wenn ihr einen tiefen Einblick in die Arbeit des Oasis Engineering Teams im März erhalten wollt, lest einfach weiter!

Wallet und CLI Aktualisierungen

Im März wurde die Oasis Wallet — Web um einige Funktionen erweitert und wichtige Bugs behoben.

  • Die WebUSB-Probleme beim Verbinden von Ledger für erstmalige Wallet-Benutzer auf Chrome Version 110 oder höher wurden behoben (#1321, #1338).
  • Beim Kopieren des ROSE-Betrags an eine beliebige Stelle in der Wallet werden die Symbole ROSE oder TEST nun korrekt durch ein Leerzeichen getrennt (vorher sahen sie gleich aus, wurden aber ohne Leerzeichen eingefügt). Außerdem wird das Wort, das die Zahl enthält, vom Symbol getrennt, so dass Sie jetzt nur die Zahl kopieren können (#1337).
  • Die Unterstützung für mehrere Tabulatoren wurde verbessert. Das aktive Netzwerk wird nun korrekt übermittelt und über alle Tabs hinweg ohne Latenz synchronisiert. Auch die Liste der Konten wird synchronisiert, wobei jede Registerkarte ihr eigenes ausgewähltes Konto anzeigt. So kann der Benutzer mehrere Tabs oder Fenster verwenden, um die Konten zu erkunden und Token zu senden (#1343).
  • Eine Reihe von UI- und Usability-Korrekturen sowie Tests zu ParaTime-Operationen wurden zusammengeführt (#1346, #1347, #1352, #1353, #1362, #1365, #1306).

Insgesamt wurden 62 Pull Requests zusammengeführt.

Auch für die Oasis Wallet — Browser Extension gab es eine Reihe von Korrekturen!

  • Ein ähnlicher Fix wie das WebUSB-Problem bei erstmaligen Ledger-Nutzern auf Chrome wurde in die Wallet-Erweiterung implementiert (#301, #303).
  • Im Zuge der Abkündigung von Node.js 14 Ende April wurde die Erweiterung auf Node.js 16 migriert (#305).

Eine neue Version 1.10.0 der Erweiterung wurde erstellt und ist bereits im Chrome Web Store verfügbar.

Oasis CLI unterstützt nun als erste Wallet offiziell ParaTime-Transaktionen, die von der Ledger-Hardware-Wallet signiert werden (#11). Das Ausdrucken von grundlegenden ParaTime-Transaktionen (Einzahlungen, Abhebungen, Überweisungen) wurde ebenfalls implementiert (#24). Es wurden zusätzliche Sicherheitsvorkehrungen für Benutzer eingeführt, die versehentliche Token-Transfers an Ethereum-kompatible Adressen auf der Konsensschicht verhindern (#31). Sie können solche Überprüfungen jederzeit durch Hinzufügen des Flags -f außer Kraft setzen. Für nicht-interaktive Umgebungen wurde ein neues yes-to-all -y Flag eingeführt (#45). Oasis CLI wird nach und nach die Netzwerkinspektion und die Verwaltung von Entitäten/Token in der oasis-node-Binärdatei ersetzen, so dass letztere nur noch zum Betrieb des Netzwerks verwendet wird. Der neu eingeführte Befehl oasis registry ermöglicht die Registrierung oder Deregistrierung Ihrer Entität, einer neuen Runtime und den Zugriff auf bestehende oder historische Node-, Entity-, Runtime- und Validator-Datensätze in der Registry (#47, #48). Eine neue Version 0.2.0 wurde am 14. März veröffentlicht und enthält Linux amd64 Binärdateien. Insgesamt wurden 14 Pull-Requests in das CLI-Repository aufgenommen.

Netzwerk-Updates

Auch in diesem Monat liefen Emerald, Sapphire und Cipher ParaTimes im Mainnet und im Testnet stabil. Es wurden keine Ausfallzeiten oder Vorfälle im Netzwerk gemeldet. Das Web3-Gateway und die Explorer-Instanzen für Sapphire fielen aufgrund geplanter Wartungsarbeiten für einige Minuten aus.

Am 3. März wurde das Bugfix Oasis Core 22.2.7 Release für das Testnet und am 28. März für das Mainnet vorgeschlagen. Am 14. März wurde Sapphire 0.5.0-testnet für das Testnet vorgeschlagen. Um mehr über die Korrekturen von Oasis Core und die neuen ParaTime-Funktionen zu erfahren, lesen Sie die folgenden Abschnitte.

Mainnet Highlights

Die durchschnittliche Anzahl der täglichen Transaktionen auf Emerald ist im Februar leicht gesunken (13.525 Transaktionen im Vergleich zu 14.300 im Februar). Der Spitzenwert von 20.362 Transaktionen am 18. März war ebenfalls niedriger als im Vormonat — 25.358 am 8. Februar.

Im März ist die durchschnittliche Anzahl der täglichen Transaktionen auf Sapphire leicht gesunken (1.123 Transaktionen gegenüber 1.157 im Februar). Der Spitzenwert von 1.193 Transaktionen am 14. März war jedoch höher als im Vormonat — 1.174 Transaktionen am 16. Februar.

Aktive Oasis-Mainnnet-Knoten zum 31. März 2023:

  • 120 Validierungsknoten
  • 6 Schlüsselmanager-Knoten
  • 34 Cipher ParaTime-Rechenknoten
  • 55 Emerald ParaTime Rechenknoten
  • 26 Sapphire ParaTime-Rechenknoten

Testnet Highlights

Bei Emerald lag der Durchschnitt der täglichen Transaktionen bei 1.200–1.300, mit Ausnahme eines Anstiegs vom 21. bis 25. März, wo am 22. März ein Monatsrekord von 5.552 täglichen Transaktionen erreicht wurde. Der Höchststand im Februar lag bei 3.156 Transaktionen am 5. Februar. Der Tagesdurchschnitt im März war jedoch niedriger als im Februar (1.813 Transaktionen im Vergleich zu 2.271 im Februar).

Die Zahl der täglichen Transaktionen auf Sapphire hat sich im Vergleich zum Februar fast verfünffacht, was auf häufigere Gesundheitskontrollen durch die Stiftung Oasis zurückzuführen ist (9.622 Transaktionen gegenüber 2.341), und ist über einen Zeitraum von mehreren Monaten stetig gestiegen. Die Zahl der Transaktionen stieg in den Tagen nach der ETHDenver-Konferenz (6.-15. März) deutlich an. Ein weiterer bedeutender Anstieg wurde am 25. März verzeichnet, als die Oasis-Stiftung den nationalen slowenischen Programmierwettbewerb ACM RTK 2023 sponserte. Der Spitzenwert von 10.489 Transaktionen wurde am 29. März erreicht — verglichen mit dem vorherigen Spitzenwert von 3.672 Transaktionen am 28. Februar.

Aktive Oasis-Testnet-Knoten am 31. März 2023:

  • 45 Validierungsknoten
  • 4 Schlüsselverwalter-Knoten
  • 18 Cipher ParaTime-Rechenknoten
  • 31 Emerald ParaTime-Rechenknoten
  • 20 Sapphire ParaTime-Rechenknoten

Oasis Indexer und Explorer Aktualisierungen

Ein weiterer aufregender Monat ist für das Oasis Indexer Team vergangen. Leser, die das Oasis Netzwerk von Anfang an verfolgt haben, werden sich an die ersten Amber und Mainnet Beta Netzwerke im Jahr 2020, das Cobalt Upgrade im Jahr 2021 und das Damask Upgrade im Jahr 2022 erinnern. Die API und die Datenstrukturen haben sich in diesem Zeitraum erheblich verändert und der Chain Analyzer muss eine korrekte Sprache sprechen, um die Daten korrekt zu indizieren. Diesen Monat wurde eine neue Abstraktionsschicht über dem Chain Analyzer eingeführt, die es ihm ermöglicht, nach dem Cobalt-Upgrade mit dem Oasis-Knoten zu kommunizieren (#326, #356, #362, #358, #361). Die Gründe für das Scheitern von Transaktionen sowohl innerhalb von EVM als auch im Konsens werden nun gespeichert (#347). Die Anzahl der aktiven Rechenknoten pro ParaTime pro Epoche wird nun gespeichert (#354) und Statistiken für täglich aktive Konten werden nun berechnet (#329). Einige andere wichtige Fehlerkorrekturen wie Race Conditions, falsche Reihenfolge der EVM-Ereignisse, falsche ERC20-Token-Salden, Abstürze, wenn der Smart Contract nicht das war, was er vorgab zu sein, Parsing wurden behoben, Paginierung wurde korrigiert, falscher EVM-Ereignisnummer-Datentyp, fehlende Indizes (#340, #344, #368, #332, #346, #348, #359, #369). Insgesamt wurden 30 Pull Requests zusammengeführt.

Das Oasis-Explorer-Team hat ebenfalls rasante Fortschritte gemacht, von denen wir hier nur die bemerkenswertesten Änderungen nennen wollen. Da das Oasis Netzwerk eine öffentliche Blockchain ist, kann jeder eine neue ParaTime registrieren (mehr dazu hier), wenn er über genügend Guthaben auf dem Treuhandkonto verfügt. Wenn die Größe des Treuhandkontos unter den Schwellenwert fällt, wird die ParaTime ausgesetzt, obwohl es noch Rechenknoten geben könnte, die sie ausführen.

  • Um die Explorer-Benutzeroberfläche nicht zu überladen, werden jetzt nur noch aktive (nicht suspendierte) ParaTimes angezeigt (#143).
  • Da der Indexer das Parsen und Speichern von Transaktionsfehlermeldungen unterstützt (siehe oben), wurde dies nun auch in der UI implementiert (#163).
  • Ein wichtiger Fix zur Anzeige des Gaslimits und der Gaskosten wurde eingebunden (#182). Eine neue Ansicht der Transaktionsprotokolle wurde hinzugefügt (#224).
  • Das Stunden- und Tagesdiagramm wurde hinzugefügt (#193, #195).
  • Eine Reihe von Korrekturen für die mobile Version wurden eingearbeitet (#200, #236).
  • Wenn der Indexer es weiß, werden die Adresse und der Transaktionshash nun im ursprünglichen Hex-Format (Ethereum-kompatibel) angezeigt, im Gegensatz zu den nativen Bech32- und Base64-Formaten (#239, #244).
  • Um Unübersichtlichkeit zu vermeiden, bietet die Benutzeroberfläche nun maximal 100 Seiten zum Anklicken an (#249).

Diesen Monat wurden rekordverdächtige 84 Pull Requests zusammengeführt!

Updates für die Entwicklerplattform und ParaTime

‍Sapphire 0.5.0 wurde am 14. März veröffentlicht und brachte zwei wichtige Funktionen.

X25519-Unterstützung für das Signieren, Verschlüsseln und Entschlüsseln von On-Chain-Daten war bereits in Sapphire’s Solidity Precompile verfügbar. In dieser Version wurde der Helfer zur Erzeugung eines neuen x25519-Schlüsselpaares hinzugefügt (#116). Dies öffnet die Tür zu vertraulichen Schlüsseln, die vollständig auf der Chain generiert und gespeichert werden, ähnlich wie die Hardware-Wallets behandelt werden. Eine weitere fehlende Funktion war die Fehlerberichterstattung für fehlgeschlagene Transaktionen. Aus Gründen der Vertraulichkeit wurden alle Transaktionen mit ausreichenden Gasgebühren als erfolgreich markiert, auch wenn sie fehlschlugen. Nach reiflicher Überlegung entschieden wir uns, den Transaktionsstatus beizubehalten und ihn an den Benutzer weiterzugeben. Wir haben auch die Weitergabe von Fehlermeldungen über fehlgeschlagene Transaktionen hinter den Kulissen implementiert, aber dies erfordert noch einige letzte Anpassungen im endgültigen Typescript und den Go-Clients.

Der @oasisprotocol/sapphire-hardhat Wrapper implementiert nun “mocked hardhat tests” für vertrauliche Transaktionen (#108). Dies ist ein alternativer Ansatz zum Ausführen eines kompletten Oasis confidential Stacks innerhalb des sapphire-dev Docker-Images, wenn es darum geht, Smart Contracts lokal zu testen.

Dem Wrapper für das Tankstellennetz wurden umfangreiche Integrationstests hinzugefügt, die sowohl lokal als auch im Testnet (#1) funktionieren. Wir werden die offizielle Freigabe ankündigen, sobald der Wrapper gründlich getestet und die Entwicklerdokumentation verfügbar ist.

Die Dokumentation ist um einige Abschnitte reicher:

  • Bubblewrap Fehlersuche wurde hinzugefügt.
  • Die Seite mit den Standard Smart Contracts wurde hinzugefügt, auf der die offiziellen Adressen der allgemein verwendbaren Smart Contracts, wie z.B. der gewickelte ROSE, aufgeführt sind. Links zur Sourcify-Verifizierung sind ebenfalls vorhanden.
  • Im letzten technischen Bericht haben wir erwähnt, dass Docker-Images für Sapphire unter Localnet veröffentlicht wurden. Jetzt ist dokumentiert, wie man die Images erhält und verwendet. Die Sapphire-Beispiele verwenden nun auch die Standard-Erweiterungen _mainnet, _testnet und _localnet bei der Bestimmung des Netzwerks.
  • Dem Sapphire-Leitfaden wurde eine wichtige Warnung über das potenzielle Sicherheitsrisiko hinzugefügt, dass der Rechenknoten verfolgen kann, auf welche Speicherzellen zugegriffen wird, und dann versuchen kann, festzustellen, ob auf dieselben Schlüssel-Wert-Paare zugegriffen wird oder nicht. So könnte beispielsweise festgestellt werden, ob bei ERC-20-Transaktionen auf den Saldo derselben Konten zugegriffen wird.
  • Die Seite “Run your validator node” wurde überarbeitet. Wir hoffen, dass es für Neueinsteiger einfacher wird, ihren eigenen Validator Node zu starten und Teil des Oasis-Ökosystems zu werden!

Aktualisierungen der Kernplattform

Eine neue Patch-Version von Oasis Core 22.2.7 hat in diesem Monat die standardmäßige Überprüfung der “Halt-Epoche” entfernt (#5200). Die “Halt Epoch”-Prüfung wurde in der Vergangenheit verwendet, um Dump-and-Restore Netzwerk-Upgrades über einen bestimmten Zeitraum zu erzwingen und das Netzwerk zum Stillstand zu bringen, falls kein Konsens über den Upgrade-Vorschlag erreicht werden konnte. Da die On-Chain-Governance seit einiger Zeit gut getestet wurde und das Netzwerk ausgereift genug ist, kann die Halteepoche ignoriert werden und wird in der kommenden Version 23.x vollständig aus dem Genesis-Dokument entfernt.

Da wir uns der neuen Version 23.x des Oasis-Kerns nähern, konzentrierte sich die Arbeit auf Optimierungen, Anpassungen der Abhängigkeiten und Fehlerbehebungen.

  • Die Hauptarbeitsschleife des Key Managers wurde überarbeitet (#5212).
  • Die Initialisierung der Enklave des Key Managers wurde in eine separate Goroutine verlegt, um die Hauptschleife nicht zu blockieren. Außerdem ist die Initialisierung jetzt robuster, so dass die Enklave bei der Schlüsselrotation des Schlüsselmanagers einfach neu initialisiert wird, wenn der Schlüssel abgelaufen ist (#5218).
  • Die Richtlinien des Key Managers können nun auch in Nicht-SGX-Builds verwendet werden. Dies beschleunigt unser CI und vereinfacht das Testen (#5215).
  • Die Laufzeiten, die in SGX laufen, haben nun Unterstützung für begrenzte multiple Threads unter Verwendung der neuen Version der Tokio-Bibliothek, was die Leistung verbessert und mögliche Deadlocks mit der kommenden Implementierung der Master Secret Rotation beseitigt (#5214, #5220, #5223).
  • Ein wichtiger Bugfix wurde eingebunden, der es ermöglicht, dass der Knoten weiterläuft, auch wenn aesmd aktualisiert wird. In diesem Fall konnte sich die Quoting Enclave-Identität ändern, was eine Aktualisierung der Zielinformationen erforderte (#5239).
  • Docker-Images, die von CI verwendet werden, wurden zu ghcr.io migriert, da Dockerhub kürzlich angekündigt hatte, die kostenlosen Team-Pläne auslaufen zu lassen (#5224).
  • Die Ankündigung wurde später zurückgezogen, aber unsere Migration wurde bereits durchgeführt. Oasis Core ist nun kompiliert und getestet mit Go 1.20.x (#5228).

Schauen Sie sich alle 22 Pull Requests an, die im März zusammengeführt wurden, um eine vollständige Liste der Änderungen zu sehen.

Das war’s für den März und das erste Quartal des Jahres! Jetzt geht es weiter zum April. In der Zwischenzeit könnt ihr euch mit dem Oasis-Team austauschen, indem ihr uns auf Discord oder im Oasis-Forum besucht! Außerdem könnt ihr hier mehr über den Oasis Privacy Layer erfahren und euch für den Oasis Privacy4Web3 Hackathon anmelden.

--

--