Installer un nœud Bitcoin sur un serveur Ubuntu 10


Hier on a fait Tor, pourquoi ne pas faire Bitcoin aujourd’hui ? (j’ai essayé freenet, mais je me suis gaufré sur une erreur Java, c’est con).

Faire tourner bitcoinqt sur son ordinateur personnel a plusieurs défauts :

  • Il télécharge toute la blockchain, ce qui est long et prend des Go de place sur le disque.
  • Ca bouffe de la ressource pour rien.
  • On aide pas tellement le réseau car on ferme le client dès que l’opération financière est terminée.

Bref, le client officiel Bitcoin n’est pas le plus ergonomique, et on lui préférera des alternatives légères comme Electrum.

Seulement puisque ces wallets “allégés” ne télécharge pas la blockchain, vous n’aidez pas le réseau. Or, personnellement, je participe à Bitcoin pour aider le mouvement.

J’ai donc décidé d’installer un nœud Bitcoin sur un de mes serveur, comme ça j’ai le meilleur des deux mondes. Évidement je ne recommande pas à Mme Michu de faire ça, mais en même temps je ne recommande pas à la vieille d’utiliser Bitcoin non plus.

Sur Ubuntu Server, ce n’est pas une opération complexe.

Créer un utilisateur nommé “bitcoin”

Ca permet d’isoler les fichiers de config (le wallet sera vide de toute façon, je suis pas fou).

sudo adduser bitcoin

Installer le daemon bitcoin

Cool, c’est dans les dépôts !

sudo apt-get install bitcoind

Faire un script de démarrage

Alors là, je m’attendais à une galère sans nom, mais c’est sans compter qu’Ubuntu utilise maintenant upstarts, qui rend la création de scripts de démarrage super simple.

Créer un fichier /etc/init/bitcoin.conf et mettre dedans:

# bitcoind upstart script for Ubuntu
 
description "Bitcoin daemon"
 
start on runlevel [2345]
stop on runlevel [!2345]
 
respawn
exec su -c "bitcoind" - bitcoin

Pouf pouf, on démarre le service :

service bitcoin start

Et voilà, bitcoind est maintenant un service de votre serveur, tournant vaillamment en tâche de fond, lancé à chaque reboot.

Ouvrir le port 8333

Sinon vous aurez un super service qui tourne pour lui tout seul.

sudo iptables -I OUTPUT -p tcp -m tcp --dport 8333 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 8333 -j ACCEPT

Vérifier si ça marche :

du -sH /home/bitcoin/.bitcoin

La taille devrait grossir avec le temps

Prochaine étape, faire son propre serveur de blockchain, histoire de ne pas dépendre de ceux d’electrum.

PS: passer l’option “-gen” à bitcoind si vous voulez miner. Ça vous servira à rien, mais c’est psychologique ^^

10 thoughts on “Installer un nœud Bitcoin sur un serveur Ubuntu

  • Sam Post author

    Et de loin. On est plus proche de la dizaine de Go maintenant. La block chain est en train de devenir un des problèmes majeur de l’adoption de Bitcoin.

  • Nadley

    Je veus bien des infos sur le serveur de blockchain. Si l’article n’est pas pour tout de suite un petit lien c’est pas de refus merci.

  • Sam Post author

    Je n’ai aucune info sur le sujet, j’ai balancé ça plein d’enthousiasme ^^

  • Réchèr

    Y’aurait pas moyen de faire un client “semi-égoïste” ?

    Au lieu de garder tout l’historique, le client crée une sorte de check-point : un état de tous les comptes bitcoin à un moment donné. Ça prend moins de place sur le disque. Le client enregistre les transactions à partir de ce check-point et les confirme. Au bout d’une certaine quantité (paramétrables) de transactions, il arrête les enregistrements et les confirmations. Avec plusieurs clients, qui ont chacun leur checkpoint déterminés aléatoirement, on peut reconstituer entièrement la blockchain.

    Je sais pas du tout si c’est possible, je connais pas vraiment le fonctionnement interne du réseau bitcoin.

  • Moustache

    Ah, petit problème de redirection sur le “je participe à Bitcoin pour aider le mouvement.” ;)

Leave a comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.