RPC
RPC (Remote Procedure Call) est l'interface JSON-RPC de Bitcoin Core pour interroger ou commander un nœud. Utilisé par bitcoin-cli et tous les outils.
Définition
RPC (Remote Procedure Call) désigne, dans l'écosystème Bitcoin, l'interface JSON-RPC exposée par Bitcoin Core sur le port 8332 (mainnet) ou 18332 (testnet). Elle permet à un client externe d'envoyer des commandes au nœud — récupérer un bloc, signer une transaction, vérifier un solde — sous forme de requêtes HTTP POST contenant du JSON.
Structure d'une requête
{ "jsonrpc": "1.0", "id": "curltext", "method": "getblockchaininfo", "params": [] }
Le nœud répond :
{ "result": { "chain": "main", "blocks": 873421, "headers": 873421, "bestblockhash": "00000000000...", "difficulty": 109782329093796.0, ... }, "error": null, "id": "curltext" }
L'authentification se fait via Basic Auth (rpcuser/rpcpassword) ou cookie (~/.bitcoin/.cookie).
Principales méthodes
| Catégorie | Exemples |
|-----------|----------|
| Blockchain | getblockchaininfo, getblock, getrawtransaction |
| Mempool | getmempoolinfo, getrawmempool, getmempoolentry |
| Wallet | getbalance, listunspent, sendtoaddress |
| Mining | getblocktemplate, getmininginfo |
| Network | getpeerinfo, getnetworkinfo |
| Util | estimatesmartfee, validateaddress |
La liste complète tourne autour de 170+ méthodes documentées sur developer.bitcoin.org.
Outils qui en dépendent
- bitcoin-cli : le client en ligne de commande livré avec Bitcoin Core.
- Electrum Personal Server, electrs : servent des données RPC vers Electrum.
- BTCPay Server, mempool.space, Sparrow : reposent tous sur RPC.
- Lightning (LND, CLN) : nécessitent un nœud Bitcoin avec RPC ouvert.
- Scripts Python (
python-bitcoinrpc) ou JS pour automatiser.
Sécurité
Le RPC est puissant et dangereux : un attaquant qui y accède peut vider votre wallet. Bonnes pratiques :
- Bind localhost uniquement :
rpcbind=127.0.0.1. - Tunnel SSH plutôt que d'exposer le port.
- Whitelist IP :
rpcallowip=192.168.1.0/24. - Authentification cookie au lieu de mot de passe statique.
- Wallet séparé :
disablewallet=1sur un nœud serveur public.
REST en complément
Bitcoin Core expose aussi une interface REST (port 8332, chemins /rest/) en lecture seule, plus simple pour des explorateurs publics. Elle ne remplace pas le RPC pour les opérations sensibles.
À retenir
Le RPC est la porte d'entrée vers Bitcoin Core, la fondation sur laquelle reposent presque tous les outils de l'écosystème. Le maîtriser, c'est gagner en autonomie technique et arrêter de dépendre d'API tierces.
Termes lies
- bitcoin-clibitcoin-cli est l'outil en ligne de commande pour interagir avec bitcoind via RPC. Indispensable pour l'admin d'un nœud.
- Bitcoin CoreBitcoin Core est l'implémentation de référence du protocole Bitcoin, descendante directe du code de Satoshi. Open-source, maintenue par des centaines de contributeurs. Représente >95 % des nœuds. Le « consensus » du code Bitcoin.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.