Tutoriel : monter un nœud Bitcoin sous Linux.

Voici un tutoriel de Stéphane Traumat, serial entrepreneur spécialiste des nouvelles technologies, destiné à tous ceux qui souhaitent soutenir le projet Bitcoin en devenant un des précieux relais du réseau. Cet article a été publié initialement sur medium.

Qu’est-ce qu’un nœud Bitcoin ?

Un nœud bitcoin est une machine qui fait fonctionner un programme qui stocke, au fur et à mesure, l’ensemble de la blockchain de Bitcoin et donc l’ensemble des transactions depuis sa création. Chacun des nœuds est capable de vérifier de manière autonome l’ensemble des transactions et l’ensemble des blocs qu’il reçoit depuis le réseau.

Pour en savoir plus sur le fonctionnement de Bitcoin, je vous invite à lire mon introduction au Bitcoin.

Pourquoi monter un nœud Bitcoin ?

Le réseau Bitcoin est constitué de machines connectées entre elles en peer to peer ce qui signifie que toutes les machines qui y participent ne sont pas plus spéciales les unes que les autres. Il n’y a pas de serveur central, pas d’autorité et pas de hiérarchie.

La solidité, la rapidité et la sécurité du réseau dépend donc du nombre de machines honnêtes qui maintiennent la blockchain, valident et propagent les transactions. Monter un nœud, c’est donc participer au bon fonctionnement du Bitcoin.

Si vous désirez faire du minage, je vous invite à lire mon tutorial sur comment miner des bitcoins même si ce n’est plus trop rentable à l’heure actuelle.

Matériel et système d’exploitation.

A partir du moment où vous ne souhaitez pas faire de minage, n’importe quel ordinateur “classique” suffit. Il faut juste disposer d’un peu d’espace disque car la blockchain fait, à l’heure où j’écris ces lignes, plus de 40 GO.

Pour le système d’exploitation, j’ai choisi d’utiliser une Debian Jessie (installation basique sans interface graphique et juste un service SSH) mais vous pouvez choisir n’importe quelle distribution.

Ajout de dépôts.

Pour la gestion du porte monnaie, Bitcoin core a besoin de la version 4.8 de Berkeley DB. Le problème, c’est que cette version n’est plus disponible sur les dernières versions de Debian, nous allons donc devoir ajouter dans la liste des dépôts les liens vers les dépôts d’une ancienne version de Debian (Squeeze) qui dispose, elle, de la bonne version de Berkeley DB.

Pour se faire, rien de plus simple, nous allons taper ces deux lignes qui vont ajouter à “ /etc/apt/sources.list ” les dépôts Squeeze :

echo deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free >> /etc/apt/sources.list
echo deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free >> /etc/apt/sources.list

Pour mettre à jour la liste des paquets désormais disponibles sur notre serveur, nous allons utiliser la commande :

apt-get update

Installation des paquets nécessaires.

Nous allons maintenant installer l’ensemble des packages nécessaires à la récupération des sources de bitcoin core et à sa compilation (ainsi que Berkeley DB) :

apt-get install build-essential autoconf libssl-dev libboost-dev libboost-chrono-dev libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-test-dev libboost-thread-dev git libtool shtool autogen pkg-config libdb4.8++-dev libdb4.8-dev vim

Récupération des sources et compilation.

La raison principale pour laquelle j’ai décidé de compiler ma propre version de bitcoin core est que cela me permet d’avoir toujours accès à la dernière version. Si, par exemple, un problème de sécurité apparaissait, je n’aurai pas besoin d’attendre que quelqu’un fabrique une version compatible avec ma Debian, je pourrai instantanément construire ma version et la mettre en place rapidement.

Nous allons donc récupérer les sources de la branche 0.11 de bitcoin core depuis Github. Si vous souhaitez installer une autre version, vous trouverez la liste des branches ici : https://github.com/bitcoin/bitcoin/branches.

cd /root
git clone -b 0.11 https://github.com/bitcoin/bitcoin.git

Une fois les sources téléchargées, nous allons lancer la compilation et l’installation grâce aux commandes suivantes :

cd /root/bitcoin
./autogen.sh
./configure --without-gui
make && make install

Création d’un utilisateur système.

Nous allons faire fonctionner bitcoin en service (daemon), ce sera donc un programme qui sera lancé au démarrage et s’exécutera en arrière-plan.

Pour se faire, nous allons créer un utilisateur système “bitcoind” qui ne pourra pas se loguer mais qui sera propriétaire du processus Bitcoind et qui aura un répertoire home “/home/bitcoin” qui stockera la configuration, les fichiers utiles et la blockchain :

useradd -s /usr/sbin/nologin -r -m -d /home/bitcoin bitcoind

Configuration du daemon.

La configuration du nœud Bitcoin se fait via un fichier “bitcoin.conf” dont vous pouvez trouver une version complète ici. Dans ce tutorial, nous allons nous contenter de mettre la configuration minimum nécessaire, c’est à dire l’identifiant et le mot de passe :

mkdir /home/bitcoin/.bitcoin
echo rpcuser=bitcoinrpc > /home/bitcoin/.bitcoin/bitcoin.conf
echo rpcpassword=JRkDy3tgCYdmCEqY1VdfdfhTswiRva >> /home/bitcoin/.bitcoin/bitcoin.conf

note : je vous invite à choisir un autre mot de passe que celui inscrit ci-dessus.

Paramétrage du service.

Nous allons maintenant créer le fichier “/etc/init.d/bitcoind” qui est le script de démarrage, d’arrêt et de rechargement du service :

Script de démarrage bitcoind dans /etc/init.d/bitcoind

Vous devez ensuite rendre ce script exécutable avec la commande :

chmod +x /etc/init.d/bitcoind

et enfin le rajouter comme script d’initialisation du système :

update-rc.d bitcoind defaults

Vérification.

Afin de vérifier que tout fonctionne parfaitement, nous allons redémarrer le système avec la commande :

shutdown -r now

Une fois redémarré, nous allons vérifier que le service bitcoin est bien en activité grâce à la commande :

bitcoin-cli -datadir=/home/bitcoin/ -conf=/home/bitcoin/.bitcoin/bitcoin.conf getinfo

Vous devriez avoir une réponse du système qui ressemble à ça :

bitcoin-cli getinfo
{
 “version” : 110200,
 “protocolversion” : 70002,
 “walletversion” : 60000,
 “balance” : 0.00000000,
 “blocks” : 1504,
 “timeoffset” : 0,
 “connections” : 2,
 “proxy” : “”,
 “difficulty” : 1.00000000,
 “testnet” : false,
 “keypoololdest” : 1448293929,
 “keypoolsize” : 101,
 “paytxfee” : 0.00000000,
 “relayfee” : 0.00005000,
 “errors” : “”
}

Parmi les résultats, la ligne “blocks” indique combien de blocks ont été récupéré jusqu’à présent.

Pour savoir précisément où vous en êtes, la commande suivante permet de comparer le nombre de blocks que votre serveur a récupéré avec le nombre de blocks existants actuellement :

echo `bitcoin-cli -datadir=/home/bitcoin/ -conf=/home/bitcoin/.bitcoin/bitcoin.conf getblockcount 2>&1` / `wget -O - http://blockchain.info/q/getblockcount 2>/dev/null`

Si après le redémarrage de votre serveur le service n’est pas lancé vous pouvez consulter les fichiers “/var/log/daemon.log” et “/home/bitcoin/debug.log” pour chercher d’où vient le problème.

Monitoring

Le problème des services Linux est que si ils tombent en panne, on ne s’en rend pas vraiment compte. Il y a bien sûr des outils pour traiter cette problématique mais pour faire simple, j’utilise https://bitnodes.21.co/.

Il s’agit d’une plateforme qui essaye d’estimer la taille du réseau bitcoin. Vous pouvez y ajouter votre nœud et ensuite vous abonner au monitoring de celui-ci. Vous recevrez désormais un email indiquant chaque changement de statut (up, down, stalled…) de votre serveur.

Page qui présente le statut de votre serveur

Conclusion.

Une fois votre serveur lancé, il faudra être patient car la récupération/vérification de l’ensemble des blocks du blockchain peut prendre plusieurs jours mais ensuite, vous aurez le plaisir de faire parti de ces bénévoles qui font que bitcoin fonctionne 🙂

À propos de l'auteur

Les deux tabs suivants changent le contenu au-dessous.

Stéphane Traumat

Entrepreneur dans les nouvelles technologies
Dirigeant de Scub, dirigeant de Square Solutions, dirigeant de Blockchain Inspector, solution de monitoring de blockchains utilisant l'intelligence artificielle, co-fondateur de Oak Invest, conférencier.

Derniers articles par Stéphane Traumat (voir tous)

QR Code pour faire un don en bitcoins à BitConseil

Cet article vous plait ?

Vous pouvez faire un don à .
Utilisez l'adresse Bitcoin suivante ou le QR Code pour envoyer votre don.

Bitcoin 3BiUVCq2LENiJWDeCS2xmiNLWdUuMG3MPa
Faire un don

Vous pourriez aussi aimer

Les derniers articles

Commentaires