De nombreuses personnes rencontrent le terme RPC lorsqu'elles ajoutent manuellement un RPC réseau dans des portefeuilles tels que MetaMask. Cependant, le RPC est une technologie fondamentale indispensable pour les applications blockchain telles que les Dapps, les Wallets et les CEX. RPC signifie "Remote Procedure Call" (appel de procédure à distance). Dans Web2, RPC est une technique de communication qui permet à un ordinateur d'appeler et d'exécuter un programme sur un autre. Grâce à la RPC, l'appelant n'a qu'à transmettre le nom du service et les paramètres pour communiquer, ce qui est un concept général. Dans le contexte de la blockchain, RPC est le protocole qui permet aux clients d'interagir avec la blockchain. Les utilisateurs peuvent interroger les informations relatives à la blockchain (telles que la hauteur des blocs, les détails des blocs et les connexions des nœuds) et envoyer des transactions par l'intermédiaire de l'interface RPC.
Page des ajouts au réseau de Metamask (Source : Metamask)
Il est essentiel de comprendre les trois rôles principaux de la CPR :
Graphique des appels RPC (source : Google)
L'architecture technique détaillée est présentée dans la figure ci-dessus. Pour vous expliquer plus clairement le processus d'invocation détaillé, nous prenons l'exemple du chef de projet qui remplit le rapport :
Pour élucider cette question à l'aide d'une analogie simple, imaginez que vous êtes un chef de projet qui a besoin d'un rapport complexe. Vous n'êtes peut-être pas compétent sur le plan technique, c'est pourquoi vous faites appel à un analyste de données. Vous :
Étant donné la nature décentralisée et distribuée des blockchains, les données sont stockées sur de nombreux nœuds. Notamment, pour faire fonctionner un nœud et participer à la validation des blocs, les ordinateurs doivent répondre à des critères matériels et logiciels spécifiques. Dans les réseaux tels que l'ETH et l'ADA, les nœuds en activité exigent également la mise en jeu d'un certain nombre de jetons.
Tous les nœuds ne peuvent pas utiliser le protocole RPC. En règle générale, seuls les ordinateurs exécutant un logiciel client de blockchain peuvent agir en tant que nœuds RPC. La plupart des projets ne peuvent pas supporter les coûts d'exploitation et de maintenance des nœuds, compte tenu du temps, de la main-d'œuvre et des ressources considérables qu'ils requièrent. Cela a donné naissance à des nœuds RPC dédiés et à des fournisseurs de services.
Il ressort de la section précédente qu'une fonction essentielle du RPC (Remote Procedure Call) est d'établir une connexion entre les applications terminales et la blockchain. Par conséquent, l'utilisation principale de RPC consiste, au cours du processus de développement, à choisir un fournisseur de services RPC approprié pour permettre aux utilisateurs d'exécuter des transactions et des requêtes sur la chaîne.
Pour l'utilisateur moyen de Web3, le cas d'utilisation le plus direct est de passer à une passerelle RPC avec une latence plus faible en cas d'encombrement du réseau, réduisant ainsi leur délai et accélérant l'exécution de la transaction. En théorie, le RPC peut être appliqué à tout projet nécessitant des transactions ou des requêtes d'informations sur la blockchain.
RPC privé
La grande majorité des blockchains offrent des RPC publiques gratuites pour tester les applications. Cependant, ils sont assortis de limitations tarifaires, ce qui a conduit à l'émergence de CPR privés. Un point de terminaison RPC privé a une URL unique, et seul son propriétaire peut utiliser cette URL pour envoyer des transactions au pool de mémoire public, offrant ainsi une connexion directe au fournisseur de nœuds. Les avantages de l'utilisation de CPR privés dans la pratique sont les suivants :
En ce qui concerne l'utilisation de RPC dans le cadre du développement, les développeurs doivent se référer à la documentation. Cet article utilise le commutateur RPC dans les portefeuilles, comme MetaMask, à titre d'illustration : Allez dans les paramètres, sélectionnez le réseau, cliquez sur le nom du réseau pour lequel vous souhaitez modifier le RPC, modifiez l'URL RPC sur la droite et enregistrez pour finaliser le changement. Les utilisateurs doivent tenir compte des niveaux de latence, car le passage à une RPC à forte latence peut ralentir la vitesse des transactions.
MetaMask a une page de changement RPC (source : MetaMask version web).
Lorsque vous l'utilisez, il est essentiel de comparer les niveaux de latence. Si vous passez à une RPC avec une latence plus élevée, la vitesse des transactions peut ralentir.
En raison de la complexité de la mise en place et de l'exploitation des nœuds, une catégorie d'entreprises spécialisées dans l'exploitation de ces nœuds a vu le jour afin de fournir des services tels que RPC/API aux projets. Les projets peuvent envoyer des demandes à ces fournisseurs via l'internet. Ces fournisseurs exploitent des nœuds entièrement synchronisés, toujours mis à jour et disponibles 24 heures sur 24, 7 jours sur 7, au lieu que les projets envoient des demandes à leurs nœuds locaux. De nombreux fournisseurs offrent plus que des services RPC ; ils proposent également divers services connexes tels que des API, des SDK, etc. Pour les développeurs et les utilisateurs individuels, lorsqu'ils choisissent un fournisseur, il est essentiel de prendre en compte des facteurs tels que la vitesse de transaction, le coût, le service clientèle et la gamme d'outils qu'il propose.
Les fournisseurs de services RPC proposent également les RPC privés mentionnés plus haut. La plupart des fournisseurs de RPC s'adressent aux opérations multichaînes et proposent souvent des versions d'essai gratuites et des versions publiques. Vous trouverez ci-dessous quelques fournisseurs de services RPC populaires :
Flashbots
Flashbots est une société de recherche axée sur la valeur extractible par les mineurs (MEV), visant à atténuer les externalités négatives et les risques que la MEV pose aux blockchains de contrats intelligents. Leur service RPC, Flashbots Protect, se compose à la fois d'un service RPC et d'une API. Les développeurs peuvent facilement l'intégrer dans leurs applications à l'aide de l'API. Les utilisateurs ordinaires peuvent ajouter sa RPC à leurs portefeuilles, en dirigeant leurs transactions vers les Flashbots. Ce processus consiste à envoyer les transactions directement aux mineurs plutôt qu'au pool public, ce qui permet d'éviter l'"attaque en sandwich" qui prévaut dans le MEV. Actuellement, Flashbots est une entité de premier plan dans l'industrie pour la recherche MEV.
Remarque : une attaque en sandwich est une tactique qui consiste à effectuer une transaction juste avant que la transaction d'un utilisateur ne soit confirmée, ce qui fait monter le prix, puis à vendre à prix fort après la fin de la transaction de l'utilisateur afin de réaliser un bénéfice.
Infura
Infura est un produit IaaS (Infrastructure as a Service) conçu pour faciliter l'accès aux données Ethereum pour les développeurs et les utilisateurs. Agissant comme un nœud Ethereum à part entière, il offre une interface API qui permet aux DApps d'être rapidement connectées à la plateforme Ethereum pour interagir sans avoir à exécuter un nœud Ethereum local. Elle compte parmi ses clients Metamask, Uniswap, Compound, etc.
Alchimie
Alchemy fournit des SDK et des API pour construire des DApps Web3 multi-chaînes, et forme les utilisateurs à l'utilisation de ces outils par le biais d'initiatives communautaires et universitaires. Alchemy a pris en charge plus de 100 milliards de dollars de transactions sur la chaîne, compte plus de 10 millions d'utilisateurs finaux et a généré plus de 1,5 milliard de dollars de redevances. Parmi ses principaux clients figurent Opensea, GMX et AAVE.
Ankr
Ankr propose différents services de nœuds, y compris des nœuds publics et privés, prenant en charge plus de 30 blockchains. Ankr fournit également des interfaces API basées sur les protocoles RPC et WebSocket, ainsi que plusieurs outils de développement et SDK, tels que Web3.js et Truffle, permettant aux développeurs de créer et de déployer facilement des applications blockchain. Leur base de clients comprend Binance, Sushiswap, Meta Apes, et bien d'autres encore.
Quicknode
QuickNode fournit des services API aux utilisateurs directement par le biais de nœuds dédiés. Il prend en charge différentes régions, plusieurs réseaux de test et nœuds d'archivage, offrant aux développeurs une meilleure performance d'accès à la blockchain et une plus grande stabilité. Les fonctionnalités comprennent un tableau de bord intuitif, une suite analytique et un rédacteur d'appels de procédure à distance, prenant en charge plus de 20 chaînes. Parmi ses clients figurent Nansen, Algofi et Dapprader.
BlocPI
BlockPI est un RPC avec une structure de réseau distribué, une couche d'accélération multi-chaîne distribuée participant à l'environnement Web3 décentralisé. Au début de l'année 2023, il a mis à jour avec succès son RPC public, offrant un service RPC gratuit plus stable et plus rapide. En théorie, son architecture résout fondamentalement le problème de l'encombrement des requêtes RPC et se targue d'une évolutivité infinie.
Avec la maturation continue de la technologie blockchain et l'adoption croissante du Web3, les services RPC, qui sont l'un des services fondamentaux, ont un avenir prometteur. La demande de services RPC de la part des développeurs va, comme on peut s'y attendre, augmenter. Du point de vue individuel, les opérateurs fréquents qui ont besoin d'une vitesse de transaction plus rapide pourraient bénéficier grandement de la sélection d'un CPR public moins utilisé ou de l'investissement dans un CPR privé, en particulier pour des activités telles que les largages d'argent ou la frappe de NFT.
De nombreuses personnes rencontrent le terme RPC lorsqu'elles ajoutent manuellement un RPC réseau dans des portefeuilles tels que MetaMask. Cependant, le RPC est une technologie fondamentale indispensable pour les applications blockchain telles que les Dapps, les Wallets et les CEX. RPC signifie "Remote Procedure Call" (appel de procédure à distance). Dans Web2, RPC est une technique de communication qui permet à un ordinateur d'appeler et d'exécuter un programme sur un autre. Grâce à la RPC, l'appelant n'a qu'à transmettre le nom du service et les paramètres pour communiquer, ce qui est un concept général. Dans le contexte de la blockchain, RPC est le protocole qui permet aux clients d'interagir avec la blockchain. Les utilisateurs peuvent interroger les informations relatives à la blockchain (telles que la hauteur des blocs, les détails des blocs et les connexions des nœuds) et envoyer des transactions par l'intermédiaire de l'interface RPC.
Page des ajouts au réseau de Metamask (Source : Metamask)
Il est essentiel de comprendre les trois rôles principaux de la CPR :
Graphique des appels RPC (source : Google)
L'architecture technique détaillée est présentée dans la figure ci-dessus. Pour vous expliquer plus clairement le processus d'invocation détaillé, nous prenons l'exemple du chef de projet qui remplit le rapport :
Pour élucider cette question à l'aide d'une analogie simple, imaginez que vous êtes un chef de projet qui a besoin d'un rapport complexe. Vous n'êtes peut-être pas compétent sur le plan technique, c'est pourquoi vous faites appel à un analyste de données. Vous :
Étant donné la nature décentralisée et distribuée des blockchains, les données sont stockées sur de nombreux nœuds. Notamment, pour faire fonctionner un nœud et participer à la validation des blocs, les ordinateurs doivent répondre à des critères matériels et logiciels spécifiques. Dans les réseaux tels que l'ETH et l'ADA, les nœuds en activité exigent également la mise en jeu d'un certain nombre de jetons.
Tous les nœuds ne peuvent pas utiliser le protocole RPC. En règle générale, seuls les ordinateurs exécutant un logiciel client de blockchain peuvent agir en tant que nœuds RPC. La plupart des projets ne peuvent pas supporter les coûts d'exploitation et de maintenance des nœuds, compte tenu du temps, de la main-d'œuvre et des ressources considérables qu'ils requièrent. Cela a donné naissance à des nœuds RPC dédiés et à des fournisseurs de services.
Il ressort de la section précédente qu'une fonction essentielle du RPC (Remote Procedure Call) est d'établir une connexion entre les applications terminales et la blockchain. Par conséquent, l'utilisation principale de RPC consiste, au cours du processus de développement, à choisir un fournisseur de services RPC approprié pour permettre aux utilisateurs d'exécuter des transactions et des requêtes sur la chaîne.
Pour l'utilisateur moyen de Web3, le cas d'utilisation le plus direct est de passer à une passerelle RPC avec une latence plus faible en cas d'encombrement du réseau, réduisant ainsi leur délai et accélérant l'exécution de la transaction. En théorie, le RPC peut être appliqué à tout projet nécessitant des transactions ou des requêtes d'informations sur la blockchain.
RPC privé
La grande majorité des blockchains offrent des RPC publiques gratuites pour tester les applications. Cependant, ils sont assortis de limitations tarifaires, ce qui a conduit à l'émergence de CPR privés. Un point de terminaison RPC privé a une URL unique, et seul son propriétaire peut utiliser cette URL pour envoyer des transactions au pool de mémoire public, offrant ainsi une connexion directe au fournisseur de nœuds. Les avantages de l'utilisation de CPR privés dans la pratique sont les suivants :
En ce qui concerne l'utilisation de RPC dans le cadre du développement, les développeurs doivent se référer à la documentation. Cet article utilise le commutateur RPC dans les portefeuilles, comme MetaMask, à titre d'illustration : Allez dans les paramètres, sélectionnez le réseau, cliquez sur le nom du réseau pour lequel vous souhaitez modifier le RPC, modifiez l'URL RPC sur la droite et enregistrez pour finaliser le changement. Les utilisateurs doivent tenir compte des niveaux de latence, car le passage à une RPC à forte latence peut ralentir la vitesse des transactions.
MetaMask a une page de changement RPC (source : MetaMask version web).
Lorsque vous l'utilisez, il est essentiel de comparer les niveaux de latence. Si vous passez à une RPC avec une latence plus élevée, la vitesse des transactions peut ralentir.
En raison de la complexité de la mise en place et de l'exploitation des nœuds, une catégorie d'entreprises spécialisées dans l'exploitation de ces nœuds a vu le jour afin de fournir des services tels que RPC/API aux projets. Les projets peuvent envoyer des demandes à ces fournisseurs via l'internet. Ces fournisseurs exploitent des nœuds entièrement synchronisés, toujours mis à jour et disponibles 24 heures sur 24, 7 jours sur 7, au lieu que les projets envoient des demandes à leurs nœuds locaux. De nombreux fournisseurs offrent plus que des services RPC ; ils proposent également divers services connexes tels que des API, des SDK, etc. Pour les développeurs et les utilisateurs individuels, lorsqu'ils choisissent un fournisseur, il est essentiel de prendre en compte des facteurs tels que la vitesse de transaction, le coût, le service clientèle et la gamme d'outils qu'il propose.
Les fournisseurs de services RPC proposent également les RPC privés mentionnés plus haut. La plupart des fournisseurs de RPC s'adressent aux opérations multichaînes et proposent souvent des versions d'essai gratuites et des versions publiques. Vous trouverez ci-dessous quelques fournisseurs de services RPC populaires :
Flashbots
Flashbots est une société de recherche axée sur la valeur extractible par les mineurs (MEV), visant à atténuer les externalités négatives et les risques que la MEV pose aux blockchains de contrats intelligents. Leur service RPC, Flashbots Protect, se compose à la fois d'un service RPC et d'une API. Les développeurs peuvent facilement l'intégrer dans leurs applications à l'aide de l'API. Les utilisateurs ordinaires peuvent ajouter sa RPC à leurs portefeuilles, en dirigeant leurs transactions vers les Flashbots. Ce processus consiste à envoyer les transactions directement aux mineurs plutôt qu'au pool public, ce qui permet d'éviter l'"attaque en sandwich" qui prévaut dans le MEV. Actuellement, Flashbots est une entité de premier plan dans l'industrie pour la recherche MEV.
Remarque : une attaque en sandwich est une tactique qui consiste à effectuer une transaction juste avant que la transaction d'un utilisateur ne soit confirmée, ce qui fait monter le prix, puis à vendre à prix fort après la fin de la transaction de l'utilisateur afin de réaliser un bénéfice.
Infura
Infura est un produit IaaS (Infrastructure as a Service) conçu pour faciliter l'accès aux données Ethereum pour les développeurs et les utilisateurs. Agissant comme un nœud Ethereum à part entière, il offre une interface API qui permet aux DApps d'être rapidement connectées à la plateforme Ethereum pour interagir sans avoir à exécuter un nœud Ethereum local. Elle compte parmi ses clients Metamask, Uniswap, Compound, etc.
Alchimie
Alchemy fournit des SDK et des API pour construire des DApps Web3 multi-chaînes, et forme les utilisateurs à l'utilisation de ces outils par le biais d'initiatives communautaires et universitaires. Alchemy a pris en charge plus de 100 milliards de dollars de transactions sur la chaîne, compte plus de 10 millions d'utilisateurs finaux et a généré plus de 1,5 milliard de dollars de redevances. Parmi ses principaux clients figurent Opensea, GMX et AAVE.
Ankr
Ankr propose différents services de nœuds, y compris des nœuds publics et privés, prenant en charge plus de 30 blockchains. Ankr fournit également des interfaces API basées sur les protocoles RPC et WebSocket, ainsi que plusieurs outils de développement et SDK, tels que Web3.js et Truffle, permettant aux développeurs de créer et de déployer facilement des applications blockchain. Leur base de clients comprend Binance, Sushiswap, Meta Apes, et bien d'autres encore.
Quicknode
QuickNode fournit des services API aux utilisateurs directement par le biais de nœuds dédiés. Il prend en charge différentes régions, plusieurs réseaux de test et nœuds d'archivage, offrant aux développeurs une meilleure performance d'accès à la blockchain et une plus grande stabilité. Les fonctionnalités comprennent un tableau de bord intuitif, une suite analytique et un rédacteur d'appels de procédure à distance, prenant en charge plus de 20 chaînes. Parmi ses clients figurent Nansen, Algofi et Dapprader.
BlocPI
BlockPI est un RPC avec une structure de réseau distribué, une couche d'accélération multi-chaîne distribuée participant à l'environnement Web3 décentralisé. Au début de l'année 2023, il a mis à jour avec succès son RPC public, offrant un service RPC gratuit plus stable et plus rapide. En théorie, son architecture résout fondamentalement le problème de l'encombrement des requêtes RPC et se targue d'une évolutivité infinie.
Avec la maturation continue de la technologie blockchain et l'adoption croissante du Web3, les services RPC, qui sont l'un des services fondamentaux, ont un avenir prometteur. La demande de services RPC de la part des développeurs va, comme on peut s'y attendre, augmenter. Du point de vue individuel, les opérateurs fréquents qui ont besoin d'une vitesse de transaction plus rapide pourraient bénéficier grandement de la sélection d'un CPR public moins utilisé ou de l'investissement dans un CPR privé, en particulier pour des activités telles que les largages d'argent ou la frappe de NFT.