Déployer un bridge crypto soi-même peut paraître complexe au premier abord. En revanche, l’industrialisation de l’écosystème blockchain a fait émerger des solutions d’interopérabilité de plus en plus simples d’utilisation. C’est le cas de Hyperlane, un framework de communication cross-chain notamment utilisé pour les transferts de cryptomonnaies entre différents réseaux. Voici un tutoriel à destination des développeurs qui souhaitent créer leur propre bridge à l’aide de la technologie de Hyperlane.
Objectif de ce tutoriel sur Hyperlane
L’objectif de ce tutoriel est de vous apprendre à déployer un bridge crypto simplement en utilisant Hyperlane, un framework d’interopérabilité permettant de connecter plus de 100 blockchains entre elles à travers la communication de messages inter-chaîne ou bien le transfert de tokens.
À la fin de ce tutoriel, vous saurez :
- Déployer un bridge ETH <> ETH entre 2 blockchains EVM
- Tester votre bridge avec une interface
- Étendre votre bridge à une nouvelle blockchain.
À titre d’exemple, les blockchains utilisées dans ce tutoriel sont les testnets des layer 2 Base et Optimism, mais le processus reste le même pour toute blockchain EVM.
Formez-vous avec Alyra pour intégrer l’écosystème blockchain
Publicité
Les prérequis avant de commencer
OS :
- Linux, Windows, ou WSL 2 ;
Logiciels :
- Node.js version 18 ou supérieure ;
- Un éditeur de code comme Visual Studio Code ;
- Un wallet de navigateur compatible EVM comme MetaMask ou Rabby ;
Autres :
- Clé privée ou phrase de récupération d’un wallet (utilisée pour le déploiement) ;
- Ce bridge étant entre les testnets Sepolia de Base et Optimism, votre wallet de déploiement doit être approvisionné en ETH sur ceux-ci pour couvrir les frais de réseau. Pour obtenir des ETH sur ces testnets, vous pouvez passer par le faucet officiel de l’écosystème d’Optimism (des faucets alternatifs existent comme celui d’Alchemy ou de QuickNode). Lorsque vous avez récupéré vos ETH, ajoutez ces testnets à votre wallet via Chainlist pour pouvoir visualiser vos soldes.
Préparez votre environnement de développement
Avant de débuter, vous devez installer la Command Line Interface (CLI) de Hyperlane. Ouvrez un nouveau terminal, déplacez-vous dans un dossier vierge pour votre projet, puis lancez la commande suivante :
npm install -g @hyperlane-xyz/cli
Ensuite, vous pouvez enregistrer la clé privée (ou phrase de récupération) de votre wallet en variable d’environnement. Cette étape est optionnelle mais vous permet d’éviter de rentrer votre clé privée lors des étapes suivantes.
Ce tutoriel a été réalisé sous WSL 2. Si vous utilisez aussi un système bash, voici la commande à effectuer pour mettre votre clé privée en tant que variable d’environnement au sein de votre terminal :
export HYP_KEY=’ ’
Votre environnement est prêt, vous pouvez maintenant passer à la création de votre bridge à l’aide d’Hyperlane.
Créez la configuration de déploiement d’une warp route
La technologie d’Hyperlane fonctionne à l’aide d’un composant nommé « warp route » pour le transfert de tokens entre blockchains. Une warp route est en quelque sorte l’ensemble des chemins qu’un token peut emprunter pour naviguer entre les blockchains. Cela signifie qu’une warp route peut prendre en charge plusieurs blockchains, mais seulement pour un seul token. Il existe donc une warp route par token.
Dans ce tutoriel, vous allez donc apprendre à créer une warp route entre les testnets des blockchains Base et Optimism pour la cryptomonnaie ETH. Dans votre terminal, lancez la commande :
hyperlane warp init
Il vous est demandé de sélectionner le type de réseau sur lequel vous souhaitez configurer votre warp route. Dans un premier temps, nous vous recommandons fortement d’utiliser les testnets pour éviter toute dépense financière.
Ensuite, vous vous retrouvez face à la liste de l’ensemble des testnets pris en charge par Hyperlane. Sélectionnez à l’aide de la barre espace les réseaux basesepolia et optimismsepolia.
Vous allez ensuite devoir configurer votre warp route sur chaque réseau.
Configurez votre warp route pour le testnet Sepolia de Base
Si vous avez mis votre clé privée en variable d’environnement, la CLI d’Hyperlane devrait détecter automatiquement votre adresse pour l’assigner en tant que propriétaire de la warp route. Tapez « Y » pour valider.
Il vous sera ensuite demandé si vous voulez utiliser un Proxy Admin, ce que vous pouvez refuser en tapant « N », puis si vous voulez utiliser un Interchain Security Module (ISM) de confiance, ce que vous pouvez accepter pour la simplicité de ce tutoriel.
L’étape suivante est la plus importante et consiste en la sélection du type de cryptomonnaie que vous voulez transférer à travers cette warp route. Pour ce tutoriel, nous avons choisi de transférer des ETH, qui correspond à la cryptomonnaie native du testnet Sepolia de Base. Vous pouvez donc sélectionner le type « Native » parmi les propositions.
Configurez la warp route pour le testnet Sepolia d’Optimism
Procédez de la même façon pour la configuration de la warp route du côté du testnet Sepolia d’Optimism. L’ETH étant également le token natif de cette blockchain, vous êtes en train de créer une warp route dite « native to native ». Pour plus d’informations sur les types de warp route, consultez la documentation officielle d’Hyperlane.
La configuration de votre warp route est maintenant créée ! Vous pouvez retrouver son fichier récapitulatif warp-route-deployment.yaml
dans le dossier configs de votre répertoire courant.
Déployez votre warp route
Votre configuration est opérationnelle et prête à être utilisée. Cependant, avant de déployer les smart contracts de votre warp route, vous devez vous assurer que vous détenez assez d’ETH pour couvrir les frais, même si votre warp route concerne des testnets.
Hyperlane déploie des smart contracts sur chaque blockchain sur lesquelles vous voulez déployer votre warp route. Par conséquent, votre wallet de déploiement doit posséder des fonds en token natif sur ces blockchains. Ici, votre wallet de déploiement doit détenir des ETH sur les testnet Sepolia de Base et d’Optimism.
Une fois votre wallet de déploiement approvisionné en ETH, vous pouvez lancer la commande suivante :
hyperlane warp deploy
Vous pouvez ensuite refuser les demandes d’utilisation des clés API, puis le terminal affichera un récapitulatif du déploiement que vous vous apprêtez à faire. Vous pouvez le relire puis le valider.
Ceci va lancer le déploiement des smart contracts responsables de votre warp route, puis vous afficher les données qui y sont associées, y compris les adresses des smart contracts.
La configuration de votre warp route déployée ainsi que les adresses de ses smart contracts sont accessibles dans le dossier .hyperlane respectivement sous les noms debasesepolia-optimismsepolia-config.yaml
etbasesepolia-optimismsepolia-addresses.yaml
.
L’emplacement du dossier .hyperlane peut varier selon votre OS, lisez le récapitulatif dans votre terminal pour connaître son emplacement exact, vous en aurez besoin pour la suite de ce tutoriel.
Félicitations ! Vous avez déployé votre première warp route avec Hyperlane.
Apportez de la liquidité à votre warp route
Afin de transférer des ETH entre les testnets de Base et d’Optimism en utilisant votre warp route, vous devez lui apporter de la liquidité. En effet, lors de l’utilisation d’un bridge, vos tokens ne sont pas réellement transférés d’une blockchain à une autre, mais ils sont plutôt bloqués sur la blockchain d’origine, puis le montant équivalent est libéré sur la blockchain de destination.
Ce mécanisme nécessite que les smart contracts déployés sur chaque blockchain disposent de leur propre réserve de tokens.
Pour ajouter de la liquidité à votre warp route, récupérez le fichier listant les adresses des smart contracts de votre warp route (ou bien le récapitulatif de votre déploiement affiché dans votre terminal), puis repérez les adresses des smart contracts déployés. Par exemple, voici comment les repérer sur le récapitulatif du déploiement dans le terminal.
Vérifiez sur un explorateur de blockchain que ces adresses pointent sur un smart contract dont vous êtes le propriétaire, puis utilisez votre wallet de déploiement (ou le wallet de votre choix), pour envoyer des ETH à l’adresse de ces 2 smart contracts. À titre d’exemple, vous pouvez envoyer 0.01 ETH.
Voici par exemple l’état du smart contract visible sur l’explorateur de blockchain du testnet d’Optimism sur une fois la transaction validée.
Faites attention de ne pas vous tromper de réseau lors de l’envoi de vos ETH. Ces smart contracts ont été déployés sur les testnets Sepolia de Base et Optimism. N’envoyez des ETH qu’avec ces réseaux, sans quoi vous perdrez vos fonds.
Testez votre bridge
Une fois que vos smart contracts sur les testnets de Base et Optimism sont approvisionnés en liquidités, il est temps de tester votre warp route.
Pour cela, rendez-vous sur l’application Superbridge que vous allez utiliser comme interface pour interagir avec votre warp route. En effet, ce protocole supporte les warp routes personnalisées.
Sur le site, cliquez sur les réglages (⚙️) puis sur le bouton « Customize ». Entrez ici la configuration de votre warp route déployée présente dans le fichierbasesepolia-optimismsepolia-config.yaml
.
Sauvegardez puis actualisez la page pour que Superbridge récupère les blockchains où votre warp route est déployée. Ensuite, connectez votre wallet, sélectionnez les blockchains d’origine (Base Sepolia) et de destination (Optimism Sepolia) si cela ne s’est pas actualisé automatiquement, puis exécutez une transaction pour tester votre bridge.
Attention, la quantité maximale de tokens que vous pouvez transférer via le bridge dépend de la liquidité disponible sur le smart contract de la blockchain de destination. Par exemple, si votre smart contract sur le testnet d’Optimism ne dispose que de 0.01 ETH, vous ne pourrez pas transférer plus que ce montant vers cette blockchain. Enfin, finalisez la transaction :
Félicitations ! Vous avez transféré des ETH entre 2 blockchains avec votre propre bridge ! N’hésitez pas à consulter les soldes en ETH de vos smart contracts une fois votre transaction validée, cela vous permettra de bien comprendre la gestion de la liquidité de votre bridge.
Étendre votre warp route
Cette étape est optionnelle et vous montre simplement comment étendre votre warp route pour ajouter d’autres blockchains à vos transferts d’ETH. À titre d’exemple, nous avons choisi d’ajouter le testnet Sepolia de la blockchain Ethereum à notre warp route.
Pour ajouter une blockchain à votre warp route, vous devez dans un premier temps mettre à jour sa configuration de déploiement. Pour ce faire, reprenez votre terminal et créez un nouveau fichier de configuration spécifique à Sepolia à l’aide de cette commande :
hyperlane warp init --out new-chain-config.yaml
Similairement à la section « Créez la configuration de déploiement d’une warp route », sélectionnez « Testnet » puis uniquement « Sepolia ». Refusez le Proxy Admin et acceptez l’ISM de confiance. Concernant le type du token, ETH est également le token natif du testnet Sepolia d’Ethereum donc vous pouvez sélectionner « Native ».
Ouvrez le fichiernew-chain-config.yaml
généré dans votre répertoire courant, puis copiez-collez son contenu à la suite de votre fichier de configuration de déploiementwarp-route-deployment.yaml
situé dans le dossier configs. Vous devriez obtenir une configuration similaire à cela (avec des adresses différentes).
Une fois votre fichier de configuration de déploiement actualisé avec votre nouvelle blockchain, vous pouvez lancer la commande de déploiement des smart contracts. Attention, avant de lancer la commande, vérifiez que votre wallet de déploiement possède des ETH (récupérables via les faucets cités précédemment) sur Sepolia pour couvrir les frais de transaction :
hyperlane warp apply --symbol ETH --config configs/warp-route-deployment.yaml
Sur votre terminal, sélectionnez votre warp route « ETH/basesepolia-optimismsepolia » puis refusez l’utilisation des clés API. Laissez ensuite la CLI de Hyperlane déployer les smart contracts nécessaires, ce qui peut prendre plusieurs minutes. Vous constaterez que 2 nouveaux fichiers de déploiement ont été générés dans votre dossier .hyperlane.
Ensuite, à l’instar des étapes précédentes, apportez de la liquidité à votre nouveau smart contract sur le testnet Sepolia d’Ethereum dont l’adresse est disponible dans votre fichierbasesepolia-optimismsepolia-sepolia-addresses.yaml.
Enfin, copiez-collez le contenu du fichierbasesepolia-optimismsepolia-sepolia-config.yaml
dans la section « Customize » de superbridge, actualisez la page, puis testez votre nouvelle route vers le testnet Sepolia d’Ethereum !
Aller plus loin dans le développement de votre bridge
Si vous souhaitez aller plus loin dans le développement de votre bridge avec Hyperlane, vous pouvez commencer par apprendre à transférer d’autres tokens. En effet, en plus du type « Native » qui a été utilisé dans ce tutoriel pour transférer des ETH, il existe également les types « Collateral » pour les tokens ERC-20 déjà déployés, ou bien « Synthetic » pour déployer un token encore non pris en charge sur une nouvelle blockchain. Vous pouvez explorer les différents types existants sur la documentation officielle d’Hyperlane.
Ensuite, vous pouvez faire évoluer votre bridge vers un environnement de production selon les recommandations d’Hyperlane. Cela passe notamment par la suppression de l’ISM de confiance, et le transfert de propriété de votre warp route vers un portefeuille multisig.
Enfin, vous pouvez également déployer votre bridge sur les mainnet des blockchains de votre choix. Les étapes à suivre sont identiques à celle de ce tutoriel et il suffira simplement d’approvisionner vos wallets de déploiement avec de véritables ETH.
Formez-vous avec Alyra pour intégrer l’écosystème blockchain
Publicité
La Newsletter crypto n°1 🍞
Recevez un récapitulatif de l’actualité crypto chaque jour par mail 👌
Certains liens présents dans cet article peuvent être affiliés. Cela signifie que si vous achetez un produit ou que vous vous inscrivez sur un site depuis cet article, notre partenaire nous reverse une commission.
Les investissements dans les crypto-monnaies sont risqués. Il n’existe pas de rendement élevé garanti, un produit présentant un potentiel de rendement élevé implique un risque élevé. Cette prise de risque doit être en adéquation avec votre projet, votre horizon de placement et votre capacité à perdre une partie de cette épargne. N’investissez pas si vous n’êtes pas prêt à perdre tout ou partie de votre capital