Stardust Ready, erweitertes EVM und vieles mehr
Heute ist das IOTA Smart Contracts Team stolz darauf, die neueste Version von IOTA Smart Contracts (ISC), Version 0.3.0, zu veröffentlichen. Diese erste voll funktionsfähige Version von ISC ist kompatibel mit der neuesten Version von Hornet und ebnet den Weg für Mainnet-Unterstützung und Interaktion mit den neuen nativen Tokenisierungsfunktionen, die mit der Stardust-Version des Shimmer/IOTA-Protokolls eingeführt wurden.
Heute ist das IOTA Smart Contracts Team stolz darauf, die neueste Version von IOTA Smart Contracts (ISC), Version 0.3.0, zu veröffentlichen. Diese erste voll funktionsfähige Version von ISC ist kompatibel mit der neuesten Version von Hornet und ebnet den Weg für Mainnet-Unterstützung und Interaktion mit den neuen nativen Tokenisierungsfunktionen, die mit der Stardust-Version des Shimmer/IOTA-Protokolls eingeführt wurden.
Was hat sich seit der letzten Veröffentlichung getan?
Letztes Jahr haben wir eine voll funktionsfähige Version von IOTA Smart Contracts veröffentlicht, die auf GoShimmer basiert, unserer experimentellen Node-Software für das IOTA 2.0 DevNet, die nicht mit dem aktuellen IOTA Mainnet kompatibel ist. ISC wurde zusammen mit einer Testkette veröffentlicht, um mit der Unterstützung von Solidity Smart Contracts auf einer eigenständigen EVM-Kette zu experimentieren. Diese Veröffentlichung brachte eine Menge Aufregung mit sich, da es etwas gab, mit dem man in einem funktionierenden Netzwerk arbeiten konnte, was dazu führte, dass neue Projekte entstanden, die in Zukunft mit ISC arbeiten wollten. Wir haben viel aus dieser Veröffentlichung und dem Testnetz gelernt und die folgenden nächsten Schritte definiert:
- ISC muss mit dem Mainnet kompatibel sein.
- EVM-Ketten müssen in der Lage sein, auf ISC/L1-Assets zuzugreifen, anstatt komplett eigenständig zu sein.
- Wir brauchen bessere Werkzeuge für Wasm-basierte Smart Contracts.
- Wir brauchen einen universellen Weg, um gasbasierte Gebühren zu berechnen.
- Wir müssen sicherstellen, dass ISC jederzeit zuverlässig und wiederherstellbar ist.
Diese Schlussfolgerungen sind der Kern dessen, was wir für diese Version entwickelt haben, und wir freuen uns, sagen zu können, dass sie alle berücksichtigt worden sind.
Mainnet-Kompatibilität
Die größte Änderung in Version 0.3.0 ist die Umstellung von einem GoShimmer-basierten Netzwerk auf Kompatibilität mit einer Mainnet-fähigen Node-Software. GoShimmer ist eine experimentelle Knotensoftware, die von der IOTA-Forschungsabteilung entwickelt wurde und ursprünglich für ISC verwendet wurde, weil es im IOTA-Mainnet keine Unterstützung für die Verankerung von Smart Contracts gab. Aufgrund seines experimentellen Charakters änderte sich der Code von GoShimmer recht häufig, was zu Instabilität mit ISC führte. Da es sich bei GoShimmer jedoch um eine experimentelle Node-Software handelt und wir Smart Contracts auch im Mainnet verfügbar machen wollen, haben wir beschlossen, den Hornet-Node des Mainnets und den zugrunde liegenden UTXO-Ledger zu aktualisieren, um aufregende neue Funktionen zu integrieren, die zuerst auf GoShimmer implementiert wurden, wie z. B. Aliase und Alias-Ausgaben. Dieses Upgrade ist als Stardust-Upgrade bekannt.
Parallel dazu haben wir die Software des ISC-Knotens (bekannt als „Wasp“) aktualisiert. Während sich die Konzepte von ISC und die Architektur des Wasp-Knotens nicht wesentlich geändert haben, war ein erheblicher Aufwand erforderlich, um die VM (Virtuelle Maschine) zu implementieren und im Wesentlichen komplett neu zu schreiben, die jetzt als StardustVM bekannt ist. Die StardustVM enthält alle neuen Funktionen, die durch das Stardust-Protokoll eingeführt wurden: Aliase, NFTs, Foundries, native Token usw. Sie bringt auch die EVM- und Wasm-Unterstützung auf die nächste Stufe (mehr dazu unten). Außerdem mussten wir das Protokoll zwischen Wasp und dem L1 aufgrund der sehr unterschiedlichen Ansätze von Hornet und GoShimmer erheblich anpassen. Diese Version wird zuerst auf dem Shimmer Beta Network verfügbar sein, dann auf Shimmer und später, sobald Stardust auch auf dem IOTA Mainnet veröffentlicht ist, auch dort.
Erweiterte EVM-Unterstützung
GoShimmer fügte dem ISC eine experimentelle Unterstützung für EVM hinzu, die es den Entwicklern ermöglicht, bestehende und neue Solidity-Smart Contracts in bewährter Weise auf dem ISC auszuführen. Diese experimentelle Version war ein großer Erfolg und zog viel Aufmerksamkeit von Entwicklern und Nutzern auf sich, die einen Blick auf ein potentielles DeFi Ökosystem auf IOTA werfen wollten. Bei dieser Version handelte es sich um eine eigenständige EVM-Kette, die auf ISC aufsetzte und keine direkte Möglichkeit zur Interaktion zwischen GoShimmer (der ISC-Kette) und der darauf aufsetzenden EVM-Kette bot, was sie zwar interessant, aber nicht sehr nützlich oder einzigartig machte. Mit dieser neuen Version fügen wir eine Menge neuer Funktionen zu dieser Implementierung hinzu, um die EVM-Unterstützung zu einem erstklassigen Bürger in ISC zu machen.
Mit der Version 0.3.0 wird die EVM-Kette zusammen mit der ISC-Kette gestartet, und der JSON/RPC-Einstiegspunkt für sie ist direkt verfügbar, sobald Wasp läuft. Während die EVM-Kette immer noch als separate Kette über der ISC-Kette läuft, ist sie jetzt viel stärker miteinander verwoben. Ein „magischer Smart Contract“, der auf dieser Kette immer verfügbar ist, kann aufgerufen werden, um direkt mit der ISC-Sandbox zu interagieren, so dass Sie alle Vorteile, die ISC bietet, direkt in der EVM-Kette nutzen können (denken Sie an Dinge wie unvorhersehbare Zufallszahlen, ohne ein Oracle zu benötigen, und das Verschieben von IOTA/Shimmer-nativen Assets/NFTs aus EVM heraus, ohne sie umbrechen/überbrücken zu müssen). Diese Funktionalität ermöglicht es der EVM-Kette, außerhalb der Kette zu kommunizieren und über die IOTA/Shimmer-Schicht mit anderen Ketten und sogar mit Smart Contracts, die nicht zur EVM-Kette gehören, zu interagieren.
Neben dieser erweiterten Funktionalität haben wir auch Ethereum-Adressen zu Bürgern erster Klasse im ISC gemacht. Dies ermöglicht es Ihnen, ein natives Vermögen auf einer ISC-Kette zu halten, die von Ihrem Ethereum-Schlüsselpaar kontrolliert wird. In der Praxis bedeutet dies, dass Sie Ihre bestehenden Tools und Wallets wie Metamask verwenden können, um über den magischen Smart Contract auf die ISC-Funktionalität zuzugreifen, ohne ein spezielles IOTA-Schlüsselpaar/Wallet zu benötigen, was zur Benutzerfreundlichkeit dieser EVM-Ketten beitragen sollte.

Firefly ermöglicht die Hinterlegung von nativen Vermögenswerten an eine Ethereum-Adresse auf einer Kette und vereinfacht den Prozess, von einem IOTA/Shimmer-Guthaben in Firefly zu einem Metamask-adressierbaren Guthaben auf einer Smart Contract-Kette zu wechseln. Der Einfachheit halber wird der Token, der für die Zahlung von Gasgebühren konfiguriert ist, in Ihrem Metamask-Guthaben als „nativer Token“ angezeigt. Das bedeutet, dass Sie nur an einer Stelle überprüfen müssen, ob Sie über genügend Gas-Token verfügen, um Ihre Transaktionen zu bezahlen. (Die nativen Token auf der EVM-Kette sind derzeit nicht über die Metamask übertragbar; wir erwägen diese Funktionalität und werden sie möglicherweise zu einem späteren Zeitpunkt hinzufügen). Wir arbeiten daran, diese Erfahrung mit bequemeren EVM-Funktionen für eine spätere Version zu verbessern.
Verbessertes Tooling für Wasm-basierte Smart Contracts
Die Unterstützung für Wasm-basierte Smart Contracts hat auch ihren Teil an Liebe und Aufmerksamkeit erhalten. Es wurden zahlreiche Verbesserungen vorgenommen, darunter die Unterstützung für Gebührenzahlungen in Gas, eine stark verbesserte Schema-Tool-Unterstützung und eine neu generierte Client-Bibliothek für alle drei unterstützten Sprachen (Go, Rust und AssemblyScript). Die Wasm VM ist nun vollständig Stardust-fähig und kann auch die neue native Asset-Funktionalität nutzen. Wir werden diese Implementierungen weiter verbessern und dokumentieren.
Einführung von Gas und Gasgebühren
In der vorherigen Version gab es kein Konzept für Gas in der VM. Gleichzeitig war die Zahlung von Gebühren für die Ausführung von Smart Contracts eine Art Platzhalter, wobei Gasgebühren für die EVM-Kette und feste Gebühren für die Wasm-basierten Ketten verwendet wurden.
Wie bei jeder anderen Turing-programmierbaren Smart-Contract-Plattform muss ISC das Konzept des Gases und eines Gasbudgets anwenden, um Gebühren für die Ausführungszeit und andere während der Ausführung von Smart Contracts verwendete Ressourcen zu kontrollieren und zu berechnen. Die Stardust-Version von ISC implementiert Gas, ein Gasbudget und Gasgebühren konsequent und universell.
Das Bezahlen von Gas für Wasm- und EVM-basierte Smart Contracts ist kalibriert und die Operationen werden einen ähnlichen Gaspreis für ähnliche Arten von Ausführungen haben. Wir haben dem Governance-Vertrag eine Funktion hinzugefügt, mit der ein Kettenbesitzer entscheiden kann, in welchem Token die Gebühren erhoben werden (es kann der Basis-Token der verwendeten Kette (Shimmer oder später IOTA) oder ein beliebiger nativer Vermögenswert sein), wie viele Token pro Gaseinheit erhoben werden und wo die eingenommenen Gebühren landen (ein Verhältnis zwischen dem Kettenbesitzer und den Validatoren). Gas ist ein wichtiges Werkzeug in Smart-Contract-Ketten, da es die begrenzte verfügbare Rechenleistung schützt und Anreize für die Entitäten schafft, die die Kette betreiben: Wir glauben, dass wir mit dieser Implementierung nun eine gute Antwort darauf haben, die es jedem ermöglicht, Gasgebühren selbst zu definieren, konsistent und universell.
Verlässlichkeit und Wiederherstellbarkeit
Eine Erkenntnis aus der letzten Version und (in erster Linie) aus dem öffentlichen Testnetz ist, dass die Software der Smart-Contract-Knoten zuverlässig sein muss und in der Lage sein muss, sich von allen potenziellen Problemen zu erholen, die auftreten könnten, selbst wenn alle Knoten zur gleichen Zeit abstürzen. Wir hatten mehrere Fälle, in denen wir das Testnetz zurücksetzen mussten, weil wir auf ein sehr unerwünschtes Problem gestoßen sind.
In den ersten Wochen des Testnetzes haben wir mehrere Probleme gelöst und eine Arbeitsgruppe eingerichtet, die sich ausschließlich mit der Zuverlässigkeit und den Verwaltungswerkzeugen befasst hat. Diese Arbeitsgruppe hat erfolgreich „Write-ahead“-Protokolle implementiert (die sicherstellen, dass der Knoten auch dann wiederhergestellt werden kann, wenn der Zustand auf allen Knoten während eines Zustandsübergangs verloren geht), sowie verbesserte Protokollierung, zusätzliche Metriken, Klartextkonfiguration für Ketten, sichere Schlüsselspeicherung und viele andere kleine Verbesserungen, die auf die eine oder andere Weise zur Zuverlässigkeit und Verwaltung der Knoten beitragen.
Wir arbeiten ständig an Verbesserungen, die zur Zuverlässigkeit der Knoten beitragen, und wir hoffen, dass wir auf der Grundlage der Erfahrungen der Nutzer dieser Version weitere Verbesserungen vornehmen können.
Warum diese Version?
Mit dieser Version wollen wir die Entwickler in unserem Ökosystem auf das vorbereiten, was kommen wird. Nachdem Stardust fertig ist, ist es nur noch eine Frage der Zeit, bis sich das öffentliche Shimmer-Testnetz zu Shimmer selbst weiterentwickelt, und wir wollen bereit sein, dort Smart Contracts auszuführen. Wir befinden uns derzeit in einem Stadium, in dem alles funktioniert, sehen aber noch Raum für Verbesserungen in Bezug auf die Benutzerfreundlichkeit, die wir in kommenden Versionen angehen werden. Wir freuen uns über Ihre Verbesserungsvorschläge und Ihre Erfahrungen mit der öffentlichen Nutzung dieser Ketten. Auf diese Weise können wir die bestmögliche Version anbieten, sobald Shimmer und später auch Stardust für IOTA verfügbar sind.
In der Zwischenzeit werden wir uns weiter verbessern, basierend auf dem, was noch aussteht und Ihrem Feedback. Wir werden bald ein öffentliches ISC-Testnetz zum Tüfteln freigeben. In der Zwischenzeit kann jeder seine eigene Kette auf dem neuen öffentlichen Shimmer-Testnetz oder in seinem eigenen privaten Netzwerk betreiben; weitere Einzelheiten finden Sie in der Dokumentation. Bitte teilen Sie uns Ihre Erkenntnisse und Gedanken über GitHub Issues und Discord mit, damit wir Ihnen eine bessere Erfahrung bieten können, sobald wir bereit sind, Chains in einem Mainnet zu starten.
Wie geht es weiter?
Nachdem wir diese Version weiter verbessert und dokumentiert haben, werden wir alle angeforderten Funktionen durchgehen und evaluieren, was wir für diese und nachfolgende Versionen hinzufügen müssen. Unser Hauptaugenmerk liegt im Moment auf der Verbesserung der Benutzerfreundlichkeit und der Zuverlässigkeit. Sobald wir damit zufrieden sind, werden wir unsere Prioritäten neu bewerten und mit der Arbeit an aufregenden neuen Funktionen beginnen, die auf der Nachfrage der Community basieren. Lasst uns wissen, was ihr denkt und meldet euch auf Discord, wenn ihr Feedback oder Hilfe braucht!
Original by IOTA Foundation: https://blog.shimmer.network/iota-smart-contracts-release-030/
Schreibe einen Kommentar