Matériels requis
Avant tout il va vous falloir du matériel puisqu’un nœud est un serveur qui fourni un service. Ne vous inquiétez pas vous n’aurez pas besoin d’un serveur coûteux, bruyant et consommateur. Vous aurez besoin d’un nano-ordinateur, c’est petit, c’est silencieux et la consommation est basse, voilà la liste :
- Raspberry Pi 3 : ce matériel est peu coûteux et a les capacités optimales pour avoir un nœud LN efficace. Veillez à acquérir un pack contenant le Raspberry Pi, l’alimentation secteur et une carte SSD. Ces éléments sont compris dans le pack officiel ;
- Un disque dur SSD de 500go ou plus : vous devrez télécharger la blockchain de Bitcoin qui fait plus de 200 giga octects. Je recommande un disque dur SSD (électronique) à préférer au disque dur mécanique qui a une moins bonne tolérance à la panne. J’ai personnellement un disque dur mécanique ;
- Un écran port HDMI : ce sera nécessaire pour faire les premières configurations ;
- Un clavier USB : ce sera également nécessaire pour faire les premières configurations ;
- Un câble RJ45 : ce sera pour connecter votre Raspberry Pi à Internet. Il est possible d’avoir une connexion wifi en y connectant une antenne ou un dongle. Cependant je déconseille cette approche pour des raisons de sécurité et également pour éviter les contraintes d’installation de drivers pas toujours disponibles sur les distributions Linux ;
Installer Raspian Stretch Lite
Cette étape est optionnelle mais recommandée.
Avant d’entamer la configuration de votre Raspberry installez un nouveau système d’exploitation plus léger que celui installé par défaut : c’est Raspian Stretch Lite.
Stretch Lite est un système d’exploitation dans le but d’optimiser la consommation de ressources sur notre système.
Installez Raspian Stretch Lite sur la carte SD fournie avec le Raspberry Pi. Il vous faudra la formater. Avec Windows le logiciel Etcher est d’une grande aide. Sur Mac et distributions Linux préférez la ligne de commande.
Configurer le Raspberry Pi
Ici je vais considérer que vous êtes sur Raspian Stretch Lite, mais pas d’inquiétude vous pouvez tout suivre avec le système d’origine, veillez à ouvrir le terminal car nous allons travailler en ligne de commande, rien de mieux pour se familiariser avec l’environnement Linux.
Les accès par défaut sont les suivants
|
|
Si vous n’êtes pas habitué au terminal Debian, en tapant votre mot de passe rien ne s’affiche, c’est tout à faire normal, ce que vous tapez est quand même pris en compte. C’est une protection au même titre que les étoiles qu’on voit sur les formulaires web.
Activer et configurer SSH
Actuellement vous travaillez avec un écran et un clavier branchés sur votre petit Rapsberry… Et c’est peut-être pas pratique. J’ai une bonne nouvelle, on va pouvoir faire en sorte de gérer votre système sans avoir besoin d’y accéder physiquement. Vous allez le contrôler à distance grâce au protocole SSH !
SSH signifie Secure Shell, c’est un protocole de réseau ingénieux qui permet l’exécution de commandes à distance en bénéficiant de canaux cryptés. Il est possible d’utiliser SSH au sein d’un réseau local mais aussi en passant par Internet par exemple. Sachez que par défaut la configuration du SSH dans Raspian permet l’authentification par login et mot de passe.
Par défaut la connexion SSH est désactivée pour des raisons de sécurité, alors activez le en tapant ce qui suit
|
|
Un menu graphique peu charmant s’ouvre, sélectionnez Interfacing Options (Configure connections to peripherals)
puis ssh (Enable or disable ssh server)
ensuite sélectionnez Yes
, OK
et enfin Finish
.
Revenez sur le terminal et redémarrez le service ssh
|
|
Votre SSH est maintenant activé.
À la bonheur, vous pouvez dès maintenant vous connecter à votre Raspberry à distance, depuis un autre ordinateur. D’abord récupérez l’adresse IP de votre Raspberry vous en aurez besoin, utilisez la commande ifconfig
pour l’afficher. Voilà un extrait de mon ifconfig
|
|
Voyez en surligné mon adresse IP est 192.168.1.42
— puisque c’est la réponse à tous les mystères de l’univers. Vous la trouverez normalement sur le connecteur eth0
et en ipv4
qui est le format que j’ai sélectionné et que je vous recommande pour éviter des configurations futures.
Avec votre ordinateur favori, que ce soit sur MacOS, Windows, Ubuntu, Trisquel ou TempleOS vous pouvez utiliser un outil qui permet de vous connecter à votre Raspberry avec SSH. Le plus simple avec MacOS ou une distribution Linux. Si vous n’avez pas ssh
de disponible en commande, veuillez installer OpenSSH. Voilà comment procéder avec votre terminal sachant que mon IP est 192.168.1.42
|
|
Cette étape permet d’avoir une clé RSA pour initialiser une communication chiffrée avec votre Raspberry et de connecter ensuite.
Il existe des solutions avec interface comme PuTTY pour Windows. Vous devrez entrer l’adresse IP de votre Raspberry, le login pi
et le mot de passe raspberry
.
Créer un utilisateur
Afin de protéger votre installation du mieux que possible je recommande de créer un utilisateur prévu à cet usage. Nous l’appellerons “bitcoin”.
|
|
Vous pouvez désormais vous connecter directement à l’utilisateur “bitcoin” avec SSH en tapant par exemple
ssh bitcoin@192.168.1.42
Préparer le disque dur
Vous aurez besoin de télécharger l’entièreté de la blockchain Bitcoin qui fait 250go à l’heure où j’écris ces lignes. Cela signifie que la petite carte SD du Raspberry ne peut pas mémoriser tout ça. On va faire en sorte que toutes les informations relatives à la blockchain résident dans le disque externe.
Une fois que vous avez branché votre disque dur sur votre Raspberry, vous devriez le retrouver en tapant la commande df -h
. Cette commande va vous lister quelque chose qui ressemble à ce qui suit :
|
|
Vous devrez trouver un élément ayant la même capacité de stockage que votre disque. Mon disque fait 500go et on le trouve sur le chemin /dev/sda
. En général on le devine dans la mesure où c’est le seul disque ayant cette capacité. Notez ce nom quelque part, et retenez cette commande df
qui est pratique pour gérer ses disques.
Formater (optionnel)
Votre disque dur doit maintenant être vierge (à moins que vous y avez enregistré la blockchain, dans ce cas ignorez cette étape). Tapez la commande fdisk [votre disque]
où [votre disque] devient le nom de votre disque, dans mon exemple c’est fdisk /dev/sda
.
Monter le disque
Enfin il faut monter le disque sur le dossier de travail de Bitcoin, on va lui préparer sa maison et son nid douillet. Monter un disque signifie que nous allons associer un répertoire à un disque, octroyant une capacité de mémoire certaine à un répertoire. Et pour ce faire connectez vous à l’utilisateur que nous avions précédemment créé su bitcoin
, puis tapez mkdir .bitcoin .lnd
.
Il ne vous reste plus qu’à taper mount <votre disque> .bitcoin
où votre disque est le chemin trouvé avec df
.
mkdir signifie make directory, c’est pour créer un dossier et .bitcoin est le nom du dossier. Par défaut nous travaillerons avec ce dossier pour la blockchain et les portefeuilles. Le “.” est un moyen de cacher le dossier, cependant en aucun cas cela constitue sécurité suffisante.
Installer bitcoind et bitcoin-cli
Pour cette partie restez connecté à l’utilisateur bitcoin
en tapant su bitcoin
.
bitcoind
est le système central de Bitcoin, le “d” à la fin signifie “daemon” qui désigne un service exécuté et maintenu par la machine. bitcoin-cli
est une interface de commande qui permet d’interagir avec le service Bitcoin. Les deux s’installent ensemble, ce qui est super !
D’abord vous devrez chercher les fichiers d’installation de Bitcoin, je vous le donne ici : bitcoin-0.19.0.1-arm-linux-gnueabihf.tar.gz. Gardez ce lien vous en aurez besoin.
Je tiens à souligner que vous pouvez le chercher par vous même en vous rendant ici et en sélectionnant “ARM Linux 64bits”. Je vous conseille de le faire vous même car les versions sont mises à jour, ci-dessus vous avez la version 0.19.0.1 de Bitcoin Core.
Suivez les commandes ci-dessous pour installer bitcoind
|
|
Notez qu’on donne les droits uniquement à l’utilisateur bitcoin
. Désormais tapez les commandes bitcoind -version
et bitcoin-cli -version
. Si tout est bien installé vous verrez les versions s’afficher.
Démarrer bitcoind
bitcoind
est installé, il reste plus qu’à le démarrer pour qu’il puisse télécharger frénétiquement la blockchain en se connectant à des nœuds du réseau; automatiquement.
D’abord je vous recommande de vérifier si vous avez bien connecté votre disque dur, suivez l’exemple ci-dessous
|
|
On peut voir en surligné que /home/bitcoin/.bitcoin
est bien connecté au disque ayant 465.8Go d’espace. Si vous n’avez pas cela, revenez sur la partie Monter le disque.
Maintenant on peut écrire le fichier de configuration Bitcoin. Tapez nano .bitcoin/bitcoin.conf
, cela va vous ouvrir un éditeur directement dans le terminal, ce qui vous permet d’écrire les configurations. Voilà des configurations que je recommande :
|
|
Pour sauvegarder tapez CTRL + O et CTRL + X pour quitter.
Et enfin tapez sudo bitcoind
qui aura pour effet de lancer le service Bitcoin qui va rapidement commencer à télécharger la blockchain. Pour rappel cette dernière fait près de 200Go donc vous pouvez prendre une pause ici.
Pour observer l’avancement tapez la commande tail -f .bitcoin/debug.log
vous verrez des entrées qui ressemblent à ce qui suit
2019-04-15T22:54:29Z UpdateTip: new best=00000000000000000024f0048c611086130b387e6634d8e2617c261a0c44b6dd height=571800 version=0x20c00000 log2_work=90.545983 tx=402724776 date='2019-04-15T22:54:19Z' progress=1.000000 cache=14.5MiB(103309txo) warning='35 of last 100 blocks have unexpected version'
L’information intéressante ici est particulièrement progress=1.000000
. Cette valeur est en réalité la progression de la synchronisation de la blockchain, 1 signifie 100%, si vous avez par exemple progress=0.014
alors vous en êtes à 1.4%. Pour quitter le tail
tapez CTRL + C.
Installer LND et LnCLI
Pour cette partie restez connecté à l’utilisateur bitcoin
en tapant su bitcoin
.
lnd
est le service qui va transformer le RaspberryPi en un nœud Lightning Network. Il va se connecter automatiquement a l’interface de commande du service bitcoind
. Tout comme bitcoind
LND embarque l’interface de commande lncli
.
La procédure pour installer LND ressemble à l’installation de Bitcoin. La première chose à faire est de télécharger le service en vous rendant sur ce lien github.com/lightningnetwork/lnd/releases. Ici vous trouverez toutes les versions officielles de LND. Récupérez maintenant le lien de la dernière version “linux-armv7”, voici celle que j’ai à l’heure où j’écris cet article lnd-linux-armv7-v0.8.2-beta.tar.gz.
Notez bien que mon exemple s’applique pour la version que j’ai envoyée : v0.8.2beta.
|
|
Désormais tapez la commande lnd -version
. Si tout est bien installé vous verrez la version s’afficher.
Avant de démarrer LND créez son fichier de configuration en tapant nano .lnd/lnd.conf
. Trouvez ci-dessous une configuration que je propose, vous pouvez évidemment mettre ce que vous voulez pour certaines options.
|
|
“autopilot” vous intrigue peut-être. C’est un algorithme qui connecte automatiquement des nœuds présents dans le réseau décentralisé, typiquement des nœuds Bitcoin et Lightning Network. Autopilot intègre le modèle Barabási–Albert dans l’idée de produire un réseau pair-à-pair en théorie homogène. Personnellement je l’active mais en aucun cas cela est nécessaire.
Démarrer LND
Tapez simplement lnd
et voilà ! Votre nœud LN est en route. Il va d’abord synchroniser sa blockchain locale avec bitcoind. En attendant vous allez créer votre portefeuille. En effet LND ne va pas exploiter le portefeuille de bitcoind mais gérer le sien, cela veut dire que vous aurez un portefeuille relatif à votre nœud LN.
Laissez lnd
tourner, ne quittez pas en faisant CTRL + C, je vous suggère d’ouvrir un nouveau terminal et vous connecter à nouveau sur bitcoin
. Quitter votre terminal ne stoppera pas LND.
Une fois de retour suivez cette procédure ci-dessous :
|
|
TADAM ! Vous avez maintenant un tout nouveau portefeuille et LND sera capable de fonctionner… Après avoir tapé ces commandes
|
|
“lncli unlock” est important pour que LND puisse fonctionner car il aura besoin d’un accès à votre portefeuille, ce dernier est chiffré par défaut et il faut le déchiffrer en le déverrouillant. Le mot de passe à insérer est le premier mot de passe que vous avez mis lors de la création du portefeuille avec
lncli create
LND est maintenant prêt à fonctionner. Pour observer ce qu’il se passe tapez la commande tail -f .lnd/debug.log
.
Pour vérifier que votre nœud est bien recensé sur les internets allez chercher votre clé publique en tapant lncli getinfo
comme dans le terminal ci-dessous
|
|
Ma clé publique est 03a2c34daf010b3501daf704b5a321e82e1631421b7ffa18dd49014967eda82dc9
, elle sert d’identifiant au nœud. Maintenant si votre nœud est bien configuré et en route, vous pouvez le trouver sur ce site : 1ml.com en tapant dans la recherche la clé publique de votre nœud.
Vous êtes maintenant propriétaire d’un nœud Bitcoin et d’un nœud Lightning Network. Cela signifie que vous avez la capacité d’utiliser n’importe quel portefeuille supportant LN en passant par votre propre serveur. Félicitations et bienvenue dans la communauté de l’a… Bitcoin et LN. Dans un article suivant on va voir comment avoir une interface graphique pour gérer son nœud sans passer par les lignes de commande comme nous l’avons fait tout au long de l’installation. Pour l’heure vous pouvez découvrir les possibilités de LN en tapant lncli --help
et les possibilités de Bitcoin en tapant bitcoin-cli --help
.