Qu'est-ce qu'un Remote Procedure Call (RPC) ?
Un RPC, ou Remote Procedure Call, est un protocole de communication fondamental du Web3 puisqu'il permet d'interagir avec les blockchains. Vous en avez sûrement entendu parler si vous avez déjà interagi avec des applications décentralisées ou avec le testnet d'une blockchain. Mais qu'est-ce qu'un RPC exactement ? Comment ce protocole est-il appliqué à la blockchain ? Y a-t-il des risques à utiliser un RPC ?
Qu'est-ce qu'un RPC ?
Un Remote Procedure Call (RPC), ou appel de procédure à distance en français, est un protocole de communication qui permet à un programme de lancer une procédure sur un autre programme hébergé sur un autre réseau, sans connaître les détails de ce dernier.
Le programme effectuant la requête est le client, tandis que le programme fournissant le service est le serveur. En d'autres termes, un RPC permet à un client de faire une requête à un serveur situé à distance, pour qu'il fasse quelque chose pour vous.
Pour simplifier au maximum, imaginons que vous êtes le client et que le serveur est votre ami. Vous demandez à votre ami de faire un gâteau puis de vous l'envoyer. Cela fonctionne comme un RPC.
Vous donnez au serveur quelques paramètres : l'ordre de faire le gâteau puis de l'envoyer. Ensuite, le serveur prend en charge la requête (faire le gâteau) et vous envoie les résultats (envoi du gâteau).
Ainsi, à l'instar d'un appel de procédure local, quand un RPC est lancé par le client, les paramètres de la procédure sont transférés sur le réseau vers le serveur, et la procédure est exécutée par ce serveur. Une fois la procédure accomplie, les résultats sont transférés en sens inverse vers le client.
Acheter des cryptos sur eToroL'application du RPC dans la blockchain
Le RPC est très utilisé avec la technologie blockchain. En effet, il s'agit du protocole qui permet aux applications décentralisées (dApps) d'interagir avec une blockchain. Si vous avez déjà utilisé un portefeuille numérique comme MetaMask, alors vous vous êtes déjà servi d'un RPC.
Lorsque vous utilisez une application décentralisée comme Uniswap, Aave ou encore Curve, vous devez y connecter un portefeuille prenant en charge un réseau compatible. Le portefeuille sert d'intermédiaire entre les actions que vous faites sur l'interface de la dApp et la blockchain.
Le RPC paramétré sur le portefeuille fait ce travail de communication entre la dApp et la blockchain. Même si vous ne touchez à rien, chaque portefeuille dispose d'un RPC paramétré par défaut pour les réseaux qu'il prend en charge, donc cela fonctionne sans votre intervention.
Au niveau de l'expérience utilisateur, vous cliquez simplement sur l'interface de la dApp pour faire l'action que vous désirez et vous confirmez l'action avec votre portefeuille.
Mais plus précisément, l'interaction avec la blockchain se fait via la communication avec un noeud RPC. Ces noeuds détiennent une copie du registre des transactions (la blockchain), ce qui permet d'y avoir accès en s'y connectant. Ainsi dans ce contexte :
- Application décentralisée : client ;
- Noeuds RPC : serveur.
Un RPC permet donc au client de faire une requête au serveur à distance. Ici, la dApp fait une requête à un noeud. Les noeuds sont opérés par des entités ou individus localisés n'importe où dans le monde, d'où l'utilisation du RPC.
Toutefois, il est nécessaire que le noeud soit capable de répondre à une requête RPC, il faut donc installer un logiciel le permettant. Ce type de noeud est à distinguer des noeuds de minage et des noeuds validateurs.
Enfin, une fois la dApp connectée au noeud, elle peut alors avoir accès à toutes les informations de la blockchain. Ainsi, lorsque la dApp initie une requête, le noeud récupère les informations nécessaires sur la blockchain et les envoie à la dApp. C'est de cette manière que sont exécutés les transactions par exemple.
Cryptoast Academy : 75% de réduction avant le Black Friday pour fêter le bullrunChanger de RPC pour se protéger
Les RPCs utilisés par défaut par les portefeuilles numériques traitent le plus grand volume de requêtes, ce qui peut causer un ralentissement du traitement. Pour cette raison, changer de RPC peut être utile.
Avant cela, sachez qu'il existe deux moyens principaux d'utiliser un noeud RPC :
- Monter son propre noeud RPC, que ce soit chez soi ou sur un serveur loué ;
- Se servir d'un fournisseur de RPC comme Infura ou Alchemy qui opère ses propres noeuds RPC.
Le risque principal de l'utilisation d'un fournisseur de RPC, c'est la censure de vos transactions. De plus, ces fournisseurs peuvent en théorie tracer chaque interaction qu'un individu fait avec la blockchain pour les monétiser.
Par défaut, si vous n'avez pas choisi de RPC sur votre portefeuille, vous utilisez celui d'un fournisseur qui prélève potentiellement vos données.
Même si tous les fournisseurs de RPC ne s'adonnent pas à ces pratiques, il s'agit néanmoins d'un risque à connaître.
Figure 1 : Aperçu du RPC par défaut du réseau Ethereum sur MetaMask
Vous le voyez sur la figure ci-dessus, ConsenSys, l'entreprise derrière MetaMask, a paramétré par défaut le RPC d'Infura pour le réseau Ethereum. C'est également le cas pour les autres réseaux que MetaMask prend en charge nativement, comme Polygon, Optimism ou Arbitrum One.
MetaMask a notamment été sous le feu des projecteurs en novembre 2022 puisqu'il a été découvert que ConsenSys prélèvait certaines données des utilisateurs du RPC d'Infura comme les adresses IP et adresses de portefeuille.
Si vous désirez éviter cela, vous pouvez utiliser votre propre noeud ou utiliser un autre fournisseur de RPC. Vous n'avez qu'à changer l'URL du RPC dans l'onglet « Réseaux » des paramètres de MetaMask, comme sur la figure ci-dessus.
Pour trouver d'autres fournisseurs de RPC sur un réseau compatible avec l'Ethereum Virtual Machine (EVM), vous pouvez par exemple vous servir de Chainlist, un site qui les répertorie par réseau. Parmi les fournisseurs de RPC les plus connus se trouvent Alchemy, Ankr et Pokt Network.
L'utilisation d'un testnet
Changer de RPC est également particulièrement utile dans le cadre de l'utilisation d'un testnet d'une blockchain. En effet, lorsque de nombreux individus utilisent un testnet en même temps avec le RPC paramétré par défaut, il se peut qu'il ne soit plus possible d'interagir avec la blockchain du testnet à cause du nombre trop élevé de requêtes.
Cela peut arriver notamment lors d'évènements qui demandent d'effectuer certaines tâches dans l'objectif d'être éligible à un airdrop, par exemple.
Dans ce cas, vous avez la possibilité de changer de RPC sur le réseau du testnet dans les paramètres de votre portefeuille. Vous pourrez alors continuer d'interagir avec la blockchain du testnet et finir vos tâches.
? Découvrez plus de 100 fiches synthétiques sur les cryptomonnaies
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