Aller au contenu principal
Réseau

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 :

  1. Bind localhost uniquement : rpcbind=127.0.0.1.
  2. Tunnel SSH plutôt que d'exposer le port.
  3. Whitelist IP : rpcallowip=192.168.1.0/24.
  4. Authentification cookie au lieu de mot de passe statique.
  5. Wallet séparé : disablewallet=1 sur 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

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.