Construire un réseau multichain via XVM

Introduction

Nous construisons un réseau multichain qui permet non seulement aux développeurs de créer des contrats intelligents en Solidity ou ink !, mais encourage également les développeurs à build entre EVM et WASM. La première étape consistait à démarrer Astar Network en créant un écosystème de dApps construit avec des contrats intelligents déjà éprouvés sur d'autres chaînes, mais nous ne pensons pas que ce soit la solution complète pour le succès à long terme d'Astar ou de Polkadot. Au lieu de cela, nous parions sur WASM et les contrats intelligents multichains. Notre équipe se concentre sur l'apport de WASM au réseau Astar. Récemment, nous avons franchi une étape importante dans la réalisation d'un réseau multichain : utiliser notre xvm_pallet pour interagir entre EVM et WASM.

Inspiration pour XVM

Le concept de Cross-Virtual Machine (XVM) a été conçu pour la première fois par notre équipe à l'époque où le framework Frontier (la couche de compatibilité EVM pour Substrate) introduisait des contrats précompilés pour l'interopérabilité avec les palettes Substrate de l'environnement EVM. À ce moment-là, Hoon pensait que, puisque les contrats intelligents WASM sont également une palette, c'est-à-dire des palettes de contrats, nous pouvions créer une interface pour cette palette en précompilé, afin que les contrats sur EVM puissent appeler les contrats WASM. Au début, ce n'était qu'une idée aléatoire et une partie d'une liste de souhaits, mais lors d'un Parity and Friends Crowdcast en 2021, cela est devenu un véritable objectif. Notre équipe a été invitée à parler et à partager ce sur quoi nous travaillions. Comme nous n'avions pas grand-chose à montrer à l'époque, nous avons décidé d'être ambitieux et de voir si nous pouvions créer un simple PoC d'un contrat précompilé pour la palette de contrats et lui donner un nom sympa, spécifiquement Cross-Virtual Machine (XVM). Notre développeur principal a rapidement construit une interface précompilée PoC et exécuté une exécution de contrat d'environnement virtuel croisé sans argument d'EVM à WASM. Après avoir présenté cette réalisation au Crowdcast, nous avons vu l’énorme potentiel pour une blockchain multi-virtual machine.

Il existe d'innombrables machines virtuelles de contrat intelligents basées sur WASM comme CosmWasm et Near, mais elles ont toujours du mal à rivaliser avec EVM. Nous considérons les dApps existantes sur l'environnement EVM comme un élément crucial des blockchains actuelles, et afin de stimuler l'adoption de WASM, nous ne devrions pas rivaliser avec EVM, mais travailler ensemble. C'est la vision derrière XVM.

La configuration du terrain sur Astar

Avant de discuter davantage de la machine virtuelle croisée d'Astar (cross virtual machine) et de la manière dont nous allons créer une nouvelle solution basée sur substrate, il est important de définir où nous en sommes actuellement sur Shiden et Astar.

Aujourd'hui, nous ouvrons rapidement des canaux à d'autres parachains, facilitant le transfert d'actifs sur Dotsama. Les utilisateurs choisissent désormais où utiliser leurs actifs, n'importe où sur Polkadot. Par exemple, l'utilisation de vos actifs natifs dans le pool de liquidités d'une chaîne voisine vous rapporte ainsi un autre jeton de gouvernance précieux. Nous pourrions utiliser GLMR (pièce native de Moonbeam) sur ArthSwap (un Native Dex de Astar) pour gagner des récompenses en aUSD (jeton d'Acala). Astar devient un espace permettant aux équipes de lancer leur projet et de construire de nouveaux cas d'utilisation pour leur jeton.

L'activation de la palette de contrats sur Shiden permet pour la première fois à un développeur decréer des dApps WASM sur un layer 1 de Kusama. Ces dApps peuvent interagir directement avec d'autres contrats intelligents natifs de Shiden ou appeler des palettes qui exécutent des fonctions intégrées au framework Substrate. Le réseau Shiden devient modulaire, où différents dApps et projets peuvent s'exploiter mutuellement via des canaux ouverts et des contrats intelligents complexes. Tous sont sécurisés par la Kusama Relay Chain et sont évolutifs sans fork.

Apporter des contrats WASM à Shiden n'était que la première étape de la création d'une plate-forme de contrats intelligents pour les développeurs WASM. Nous avons également créé la première itération de Swanky Suite, notre outil tout-en-un pour la création de contrats intelligents WASM. Swanky est un outil basé sur des outils existants, tels que le contrat de fret CLI et polkadot.js, mais possède des fonctionnalités supplémentaires pour créer des contrats intelligents sur un nœud de test local (nœud Swanky). Ce sera un outil permettant aux développeurs d'utiliser les contrats intelligents existants afin de créer un environnement pour construire leurs projets, gagner du temps au stade du développement et faciliter la création de nouvelles dApps WASM sur nos réseaux.

Swanky permet :

  • Démarrage rapide d'un nœud de développement de contrat local avec finalité instantanée (Swanky Node)
  • Échafaudage d'un nouveau projet avec divers modèles pour les contrats intelligents et les dApps frontaux ("Truffle" pour ink!)
  • Compiler des projets avec différents langages (comme ink!, Ask-Lite, …)
  • Configuration des tests RPC et des tests d'intégration via npm pour interagir avec les contrats intelligents côté client
  • Déploiement de contrats intelligents sur des réseaux au sein de l'écosystème Dotsama qui prennent en charge les pallet-contracts
  • Gestion des comptes réseau
  • Faire des appels arbitraires aux contrats intelligents déployés

Au cours du second semestre 2022, nous élargirons les possibilités de développement en travaillant en étroite collaboration avec OpenBrush de Supercolony pour élargir la bibliothèque de Polkadot sur Rust. Notre objectif est de créer une grande bibliothèque de code et de continuer à se connecter aux parachains voisines afin que les builders sur WASM puissent créer efficacement des dApps qui se connectent aux liquidités et aux actifs de l'écosystème.

Bien qu'un développeur Shiden puisse désormais utiliser Swanky pour faire du WASM, il est toujours confronté à des limitations. Les dapps EVM et WASM ne peuvent interagir directement les uns avec les autres. Cela signifie qu'un développeur Solidity est obligé de développer uniquement sur EVM, même si le réseau prend en charge une croissance fulgurante de l'intégration inter-chaînes (avec Turing, Karura et Moonriver XC20s). Cela signifie également que les actifs et les dApps sont construits deux fois sur les deux couches du même réseau, sans jamais pouvoir interagir les uns avec les autres, créant une expérience utilisateur maladroite qui dissuadera, plutôt qu'attirera, de nouveaux utilisateurs vers Shiden et Astar.

Qu'est-ce que l’xvm_pallet ?

XVM est un outil puissant pour le développement expérimental, permettant l'interaction entre les contrats intelligents WASM et EVM. Le défi de la construction d'un module XVM est double. Tout d'abord, un contrat intelligent WASM (utilisant Substrate contracts_pallet) s'attend à ne recevoir et envoyer que des appels natifs (c'est-à-dire uniquement des interactions à partir d'une autre palette ou du runtime). Ainsi, notre xvm_pallet doit envelopper tout appel de contrat EVM afin d'interagir avec succès avec WASM. Nous appelons cela l'adaptateur EVM, et il est complet.

Akru, développeur principal chez Astar, a démontré avec succès une interaction EVM à WASM via notre palette XVM. Cela signifie qu'un événement dans notre environnement EVM peut désormais appeler un contrat WASM distinct, le tout dans l'environnement d'exécution Substrate.

L'inverse, c'est-à-dire l'interaction de WASM à EVM, nécessite également une traduction XVM, mais via une extension de chaîne. L'adaptateur XVM est ce que nous terminons et testons actuellement. Nous prévoyons de terminer cela et d'activer un XVM bidirectionnel sur Shiden d'ici le deuxième trimestre de 2023.

Le deuxième défi consiste à intégrer XVM dans l'environnement d'exécution Substrate ; C’est important car cela permet de simplifier la construction pour les développeurs tout en garantissant qu'ils bénéficient de tous les avantages des contrats ink!. Substrate utilise des macros de trame qui ne sont pas encore pleinement utilisées, où une seule ligne de code ink! accorde au développeur l'accès à plusieurs fonctions préchargées et écrit automatiquement des centaines de lignes de code.

Notre solution XVM doit s'intégrer facilement à la technologie inexploitée déjà présente sur Dotsama ; y compris Substrate SDK, nos chaînes EVM (c'est-à-dire Astar et Moonbeam) et d'autres parachains grâce à l'intégration cross-chain.

La solution consiste à créer une norme xvm_pallet et à l'intégrer aux outils natifs de Polkadot : Swanky Suite et la bibliothèque OpenBrush. De plus, nous rédigerons des contrats intelligents WASM de base, prendrons en charge le développement de l'interface utilisateur frontale et fournirons de la documentation pour encourager les développeurs qui souhaitent expérimenter WASM et XVM. Finalement, nous développerons le XVM et envisagerons d'ajouter la prise en charge des contrats Gear, Solana et des réseaux en fonction de leurs propositions de valeur et de leur écosystème. Mais construire au sein de Substrate est la façon dont nous faisons un pas en avant avec Dotsama, alors que développer sur d'autres plates-formes, comme CosmWasm, à notre avis, est un pas en arrière.

Une solution multichain pour les développeurs et les utilisateurs

L'objectif final de XVM est de supprimer les limites pour les développeurs sur Polkadot et Kusama. Créer l'espace pour construire avec le code que vous connaissez, EVM ou WASM, tout en expérimentant un nombre croissant d'outils et en s'intégrant à tout projet construit sur les réseaux Astar et Shiden. Nous avons déjà des projets, tels que ArthSwap, qui commencent à se tourner vers Shiden comme un espace pour lancer un DEX WASM . Alors que SiO2 Finance promet d'être la première plateforme de prêt multi-VM sur Astar, et potentiellement Polkadot.

Ces projets peuvent implémenter XVM dans leurs contrats intelligents et bénéficier de :

  • Interaction avec le code et les contrats déjà trouvés dans le framework Substrate et d'autres technologies parachain
  • Travaillez avec n'importe quel projet actuellement déployé en tant que dApp EVM
  • Construire efficacement des projets avec Swanky dans EVM ou WASM, via l'intégration xvm_pallet
  • Intégration des actifs de l'ensemble de l'écosystème Polkadot
  • Créez une expérience multichain pour les utilisateurs qui souhaitent interagir avec des dApps et des actifs trouvés en dehors de Dotsama via Astar

Nous sommes impatients de compléter notre palette XVM pour permettre aux projets de se développer à travers EVM et WASM, unissant les actifs et les dApps sur nos réseaux. Les utilisateurs interagiront avec une seule interface utilisateur, tout en bénéficiant des contrats intelligents multichain complexes écrits par les développeurs Astar. Avec XVM, Astar est le réseau pour créer des contrats intelligents révolutionnaires qui peuvent interagir avec les technologies trouvées sur Polkadot et créer de nouvelles dApps indépendantes de la chaîne pour vos utilisateurs.

Traduction d’un article de Jerad (Astar team)

0

Astar Network est une blockchain Substrate, hub de smart contracts évolutive sur Polkadot. Elle intègre des solutions Layer 2 et inter-chaînes. Astar prend en charge les environnements WASM (Polkadot) et EVM (Ethereum).

0 comments

Astar Network est une blockchain Substrate, hub de smart contracts évolutive sur Polkadot. Elle intègre des solutions... Show More