Das 3. Quartal war ein weiteres arbeitsreiches Jahr für das Oasis Engineering Team.
Dieser Artikel ist eine inoffizielle Übersetzung der ursprünglichen Veröffentlichung. Die Übersetzung erfolgte durch Marvin, Oasis Labs Botschafter.
Mit der Einführung von Sapphire auf dem ParaTime-Layer im Testnet Ende Juli haben wir große Fortschritte gemacht. Es ist nun möglich, EVM-vertrauliche Smart Contracts für die Sapphire ParaTime im Testnet zu erstellen und zu implementieren — schauen Sie sich das Tutorial unten an!
Darüber hinaus hat das Team auch an der Wartung von Cipher und Emerald gearbeitet, so dass diese ParaTimes keine Ausfallzeiten zu verzeichnen hatten.
Die Oasis Wallet — Web, die künftige gemeinsame Codebasis für alle Oasis Wallets, hat ebenfalls einige große Upgrades erfahren, um die lokale Speicherung im Browser und ParaTime-Transaktionen zu unterstützen. Dies bringt uns näher an die Freigabe der Oasis Wallet — Browser Extension 2.0, die auf der gemeinsamen Codebasis aufbaut.
Im Laufe des Quartals wurden auch laufende Updates, Verbesserungen und drei Wartungsversionen des Oasis Core, der zugrunde liegenden Software, die die Oasis-Knoten antreibt, durchgeführt.
Wir freuen uns darauf, auf dieser geschäftigen Periode aufzubauen und in das vierte Quartal des Jahres zu gehen, in dem weitere große Aktualisierungen vorgenommen werden, insbesondere die Einführung von Sapphire im Mainnet.
Alle Details zu den technischen Updates finden Sie weiter unten.
WALLET UPDATES
Oasis Wallet — Web hat sich im 3. Quartal erheblich weiterentwickelt und unterstützt nun auch den lokalen Speicher des Browsers und ParaTime-Transaktionen. Wir planen, die Unterstützung für ParaTimes später in diesem Jahr zu veröffentlichen, gefolgt von der nächsten Generation der Oasis Wallet — Browser Extension, die auf dieser gemeinsamen Codebasis aufbaut. Wir haben 112 Pull Requests zusammengeführt. Einige der bemerkenswertesten Ergänzungen und Korrekturen (einschließlich der Arbeit am ParaTimes-Zweig):
- Liste der ParaTime-Transaktionen anzeigen (#849)
- Korrekturen für Browser-Erweiterungen (#904)
- Hinzufügen von Lint-Regeln, um unsere typsicheren Ersetzungen zu erzwingen (#911, #914)
- Standardmäßig Nullsaldo statt 0 (zeige ‘-’ für unbekannten Saldo) (#916)
- AddEscrowForm nur auf Ihren Konten anzeigen (#918)
- Fehlgeschlagene Transaktionen markieren (#925)
- Keine irreführenden Saldofelder aus RPC verwenden (#927)
- Schaltfläche “Alles zurückfordern” hinzufügen (#931, #932)
- UI ändern, damit sie der Oasis Wallet — Browser Erweiterung ähnelt (#933, #935, #936, #937)
- Verbesserung der numerischen Präzision mit BigNumber.js (#952)
- ParaTime Ein- und Auszahlungen (#962, #969)
- Anzeige der geschätzten Entbindungszeit in der Entbindungsliste (#963)
- Beschleunigung des Ladens der Netzwerkkonfiguration um 40% (#976)
- Fix für den Import von mehreren Konten aus Ledger (#980)
- Hinzufügen von Unterstützung für die Ableitung mehrerer Konten aus Mnemonic (#983)
- Erwähnung des richtigen Tickers in der Kontoübersicht (#1026)
- Verkleinerung der Paketgröße (7.2MB -> 5.4MB) mit konsistenten Tüllenimporten (#1038)
- Kleinere UI Korrekturen und Bereinigungen (#868, #879, #903, #919, #921, #922, #928, #946, #947, #949, #953, #958, #999, #979, #1019, #1049)
Während die Oasis Wallet — Web Codebasis bald die gemeinsame Codebasis für beide Wallets sein wird, haben wir die Oasis Wallet — Browser Extension weiter verbessert. Im 3. Quartal haben wir 9 Pull Requests zusammengeführt und die Version 1.8.0 veröffentlicht. Bemerkenswerte Änderungen sind:
- Hinzufügen von Sapphire im Testnet (#279)
- Verbesserung der numerischen Präzision in der Rückforderungshinterlegung (#281)
- Abfrage des Sapphire-Transaktionsstatus (Transaktionen sind jetzt indiziert) (#285)
- Behebung des “invalid nonce” Fehlers (#282)
- Kleinere UI-Korrekturen und Bereinigungen #280, #282, #286)
Die Oasis CLI — eine einheitliche CLI für die Verwaltung Ihres Kontos und der Smart Contracts auf Oasis — hat ebenfalls einige Verbesserungen erfahren:
- Hinzufügen von Unterstützung für das Dumping von bereitgestellten WASM-Verträgen (#1007)
- Hinzufügen der Unterstützung für den Dump des Vertragsstatus (#1034)
- Nachschlagen von Adressen nach Kontonamen, Unterstützung für Testkonten (#1038)
- Unterstützung für das Ändern der Vertrags-Upgrade-Richtlinie (#1052)
- Unterstützung für Adressbuch hinzufügen (#1087)
Für das Signieren von ParaTime-Transaktionen mit Hardware-Wallets wie Ledger wurde eine neue ADR-14-Spezifikation vorgeschlagen. Die Implementierung wird in Q4 beginnen.
PARATIME-AKTUALISIERUNGEN
- Die Emerald und Cipher ParaTimes liefen im Mainnet während des gesamten dritten Quartals stabil, es gab keine Ausfälle oder andere Vorfälle.
- Die Auswirkungen des Bärenmarktes auf die DeFi-Nutzung lassen sich am Transaktionsvolumen auf Emerald ablesen. Der Tageshöchststand für Q3 war Anfang Juli mit ca. 60.000 Transaktionen pro Tag, die stetig abnahmen und das Quartal mit 16.000–18.000 Transaktionen pro Tag beendeten.
- 52 Knoten betreiben Emerald ParaTime im Mainnet (Stand: 30. September).
- 29 Knoten betreiben Cipher ParaTime auf dem Mainnet (Stand: 30. September).
PARATIME ENTWICKLUNG
Im 3. Quartal gab es eine Reihe von wichtigen Entwicklungen für Oasis ParaTimes.
Ende Juli haben wir erfolgreich die neue vertrauliche EVM-kompatible Sapphire ParaTime im Testnet eingesetzt. Der Code ist in den GitHub-Repos sapphire-paratime und oasis-sdk verfügbar.
Der Einfachheit halber haben wir Unterstützung für das Dumping von eingesetztem Smart-Contract-Code auf der Cipher ParaTime und das Dumping des (optional verschlüsselten) Smart-Contract-Status hinzugefügt. Dies ebnet den Weg für die Verifizierung von On-Chain-Verträgen und sollte bei der Fehlersuche helfen.
Die Zusammenfassung der Änderungen im Runtime SDK:
- Verschlüsselungstransportbibliothek zu web-ts hinzufügen; derive_symmetric_key Tests für go, rust und typescript (#962)
- ORC-Werkzeug: Hinzufügen von Unterstützung für das Signieren von SGXS-Binärdateien (#1056)
- EVM: Erfordert keine Verschlüsselung von leeren Strings (#1064)
- Gas-Berechnungen korrigiert: Korrigiert den Versand von Unteraufrufen (#1066)
- EVM: Öffentliche Daten in signierten Abfragen offenlegen (#1069)
- EVM: Verschlüsselungs-Vorkompilierungen hinzufügen (#1102)
- EVM: Vertragserzeugungsausgabe nicht verschlüsseln (#1138)
- Verbesserte Tests und Dokumentation (#991, #1041, #1046, #1047, #1081, #1101)
AKTUALISIERUNGEN DER ENTWICKLERPLATTFORM
Es ist nun möglich, EVM-vertrauliche Smart Contracts auf der Sapphire ParaTime im Testnet zu erstellen und einzusetzen. Schauen Sie sich ein Tutorial an und geben Sie uns Feedback.
Das Emerald Web3 Gateway unterstützt nun sowohl Emerald als auch Sapphire ParaTimes. Andere Korrekturen beinhalten hauptsächlich Versionssprünge bei den Abhängigkeiten. In Q3 haben wir 9 Pull-Requests zusammengeführt. Es wurde eine neue Version v3.0.0 mit Korrekturen an Gasschätzungsfunktionen erstellt, und mit der Version v3.1.0-rc1 wurde Unterstützung für Sapphire hinzugefügt.
Unsere Dokumentation besteht aus Markdown-Dateien aus mehreren Repositories und wurde im dritten Quartal sowohl im Backend als auch im Frontend grundlegend überarbeitet. Die Frontend-Kategorien sind nun zielgruppenorientiert und nicht mehr komponentenorientiert:
- Nutzer des Oasis-Netzes (allgemeine Informationen über das Oasis-Netz und die Stiftung, Anleitungen für die Brieftasche)
- Gemeinschaftsbezogene Informationen
- Betreiber von Knotenpunkten (Mainnet- und Testnet-Netzwerkparameter, Einrichtung verschiedener Arten von Knotenpunkten und Diensten)
- dApp-Entwickler (Schreiben von Anwendungen für Smaragd-, Saphir- und Chiffre-ParaTimes)
- ParaTime-Entwickler
- Kern-Mitwirkende
Backend-Verbesserungen:
- Unterstützung für die Bearbeitung beliebiger Markdown-Dateien, unabhängig vom ursprünglichen Repository-Speicherort
- Nahtlose Verlinkung von referenzierten .md-Dateien und Doc-Cards aus anderen Repositories
- Unterstützung für den Import von Code-Snippets aus Dateien
- Aus Gründen der Abwärtskompatibilität wurden Weiterleitungen für alle früheren Dokumente eingerichtet
Die Dokumentation wurde von docs.oasis.dev in die docs.oasis.io Domain migriert. Wir hoffen, dass Sie die neuen Änderungen genießen werden. Fühlen Sie sich frei, Tutorials, Anleitungen und Korrekturen beizutragen, indem Sie https://github.com/oasisprotocol/docs besuchen und Pull Requests stellen!
ADR 17 führt ein Standardformat für ParaTime-spezifische Interoperabilitätsstandards für Anwendungen ein. Dies geht einher mit unserem ersten RFP, in dem wir einen vertraulichen Standard für fungible Token für die Sapphire ParaTime gefordert haben.
AKTUALISIERUNGEN DER KERNPLATTFORM
Im dritten Quartal wurden drei Wartungsversionen von Oasis Core 22.1.x veröffentlicht (v22.1.9, v22.1.10, v22.1.11). Parallel dazu begann die Entwicklung von Oasis Core 22.2.x mit Schlüsselfunktionen wie Intel SGX2, DCAP-basierte Attestierung, Verbesserungen der On-Chain-Governance und TEE-basierte Laufzeitsicherheit. Eine stabile Version ist für Anfang Q4 geplant. Insgesamt wurden im 3. Quartal 64 Pull Requests zusammengeführt. Bemerkenswerte neue Funktionen und Änderungen wie folgt (die meisten sind für Oasis Core 22.2.x vorgesehen, einige wurden nach 22.1.x zurückportiert)
- go/staking/grpc: Umbenennung der falsch benannten GovernanceDeposits Methode (#4652)
- go/runtime: Die Verwendung der Laufzeitsteuerung vorschreiben (#4665)
- Unterstützung für PCS-Attestierung hinzufügen (#4806, #4789, #4720, #4752)
- go/governance: Vorschlag für Änderungsparameter hinzufügen (#4938)
- Unterstützung für Archivmodus hinzufügen (#4539)
- go/control: Anzeige der Debug-Options-Status in der Kontroll-Ausgabe (#4634)
- laufzeit: Persistenter Transaktionsprüfstatus konfigurierbar machen (#4640)
- go/runtime/txpool: Ausstehende Transaktionen pro Absender begrenzen (#4665)
- go/control/status: Felder für schnellen Überblick über den Knotenstatus hinzufügen (#4669)
- go/worker/storage: Checkpoint-Sync-Peer-Auswahl intelligenter machen (#4671)
- runtime: Verifizierung der Epoche im Dispatcher mittels Konsens-Verifizierer (#4677)
- go/worker/compute: Sicherstellen, dass Trust Root vor der Registrierung verifiziert wird (#4678)
- go/worker/compute: Stapelauflösung für Backup-Worker früher starten #4679)
- go/runtime/txpool: Hinzufügen der Daten von eingehenden roothash-Nachrichten als Transaktionen (#4681)
- go/worker/registration: Knotenstatus-Metriken hinzufügen (#4686)
- Laufzeit: Dispatcher zur Überprüfung der Zustandsintegrität bei Abfragen aktivieren (#4694, #4830, #4904)
- go/worker/common/p2p: Unterstützung für persistente und blockierte Peers hinzufügen (#4713)
- go/worker/common: Korrekte Handhabung der dynamischen Schlüsselmanager-Konfiguration (#4715)
- go/runtime/txpool: Hinzufügen einer txpool-Metrik für abgelehnte Runtime-Transaktionen (#4724)
- Laufzeit: Überprüfen von RAK im Konsens-Zustand beim Servieren von Anfragen (#4741)
- Laufzeit: Unterstützung für das Berichten von EnclaveRPC-Peer-Feedback hinzufügen (#4757)
- archive-mode: Deaktiviere P2P zur Laufzeit, wenn der Archivmodus verwendet wird (#4775)
- go/consensus/tendermint: consensus.tendermint.halt_height hinzufügen (#4793)
- net-runner: Füge — fixture.default.runtime.version Flag hinzu (#4813)
- go/oasis-node: Erlaube km, private Peers zu haben (#4821)
- go/runtime/registry: Erlaubt Client-Knoten die Ausführung von sgx-Laufzeiten (#4832)
- go/worker/keymanager: Keymanager-Arbeiter-Metriken hinzufügen (#4877)
- go/control/status: Hinzufügen des Keymanager-Worker-Status zum Knotenstatus (#4883)
- Schlüssel-Manager: Unterstützung für ephemere Schlüssel hinzufügen (#4888)
- oasis-net-runner: Standard max_allowances setzen, Testkontostand erhöhen (#4902)
- runtime/consensus/verifier: Unterstützung von Upgrades der Vertrauenswurzel-Konsensusschicht (#4903)
- Laufzeit: Unterstützung von Konsens-Ereignis-Abfragen (#4904)
- Schlüssel-Manager: Validierung der letzten Vertrauenswurzelhöhe in Schlüsselmanager-Anfragen (#4910)
- Registrierung: Hinzufügen der ProveFreshness Konsensschicht Transaktion (#4916)
- Laufzeit: Hinzufügen der TEE-Frischheitsprüfung für Client-Knoten (#4922)
- Schlüssel-Manager: Überprüfen, ob die Richtlinie in der Konsensschicht veröffentlicht wurde (#4925)
- Binden von TEE-Bescheinigungen an Knoten und Erzwingen von Freshness (#4926)
- go/genesis: Zwischenspeichern des berechneten Genesis-Dokumenten-Hashes (#4919)
- go/oasis-node/cmd: unsafe-reset bewahrt standardmäßig lokalen Speicher (#4700)
- go/oasis-node/cmd: unsafe-reset prüft die Gültigkeit des Datenverzeichnisses (#4702)
- Laufzeit: Laufzeitprotokolle als Oasis-Knotenprotokolle ausgeben (#4709, #4924)
Der neue Oasis Indexer, der die Indizierung sowohl von Consensus-Layer- als auch ParaTime-Transaktionen unterstützt, wurde als Open-Source zur Verfügung gestellt. Im 3. Quartal lag der Fokus hauptsächlich auf dem Ausbau der grundlegenden Funktionen, dem Hinzufügen von Caching, dem Beheben von Fehlern und der Verbesserung der Einsatzwerkzeuge. 25 PRs wurden zusammengeführt. Wir planen, die Oasis Wallets zu aktualisieren, um den Oasis Indexer in Zukunft zu nutzen.
ADR 15 wurde vorgeschlagen, um Schwachstellen im Verfahren zur Auswahl der ParaTime-Blockproposer zu beheben. Der Blockproposer wird derzeit über einen Round-Robin-Algorithmus ausgewählt, wodurch es trivial ist, den Proposer für einen bestimmten Block im Voraus zu bestimmen. ADR 15 schlägt einen Mechanismus vor, der die Reihenfolge der Paratime-Blockvorschläge nach dem Zufallsprinzip bestimmt.
ADR 16 schlägt einen effizienteren Prozess für die Aktualisierung der Konsensparameter im Oasis-Netzwerk vor. Um Konsensparameter zu ändern, müssen derzeit die Oasis-Knoten aktualisiert, neu gestartet und mit der neuen Version des Konsensnetzwerks synchronisiert werden. ADR 16 fügt einen neuen Governance-Vorschlag ChangeParametersProposal hinzu, der Ausfallzeiten verhindern und die Robustheit des Netzes verbessern kann.