vendredi 2 septembre 2016

Configuration d'un noeud Bitcoin sur Orange Pi Plus 2e

 

AVANT-PROPOS

Ce tutoriel permet de configurer le client Bitcoin Core v0.15 (ou une version ultérieure) sur un nano ordinateur Orange pi plus 2e ou au choix un Orange pi win Plus. Ce nano computer, très bon marché, possède 2Go de mémoire RAM, parfait pour un noeud bitcoin. Un wallet Bitcoin peut aussi être utilisé. La Blockchain sera stockée sur un disque dur externe 2,5" relié sur un port USB. C'est le meilleur compromis car le client bitcoin travaille sans arrêt sur le disque. Il faut donc éviter les cartes SD ou Clés USB qui sont limitées dans le nombre d’écritures possibles, elles seraient vite hors d'usage. Le nano ordinateur Orange pi+ 2e comportant 2Go de mémoire, toutes les options par défaut du bitcoin-core pourront être conservées, contrairement au raspberry pi qui ne comporte qu'un 1Go de mémoire vive. On s’intéressera aussi au coût à l'année que représente l'utilisation d'un tel dispositif qui devra fonctionner en permanence sur le réseau.



ÉQUIPEMENTS NÉCESSAIRES POUR L'INSTALLATION :

  • Un Orange pi plus 2e (Orange pi+ 2e chez Amazon pour 66€) OU
  • Un Orange pi Win Plus ( Orange pi win Plus à 35€50 avec bloc Alim chez Aliexpress)
  • Un boitier de protection
  • Une bonne alimentation 3A
  • Un disque dur externe 2,5" USB de 250Go (la blockchain représente environ 180go à ce jour 4/2018). Un disque dur externe 3,5" est possible avec une alimentation externe. Pour ma part, j'utilise un disque 2,5" récupéré dans un passeport western digital qui consomme peu (550ma contre 800ma pour les plus courants) :

    Disque dur usb pour le noeud bitcoin sur raspberry pi 

  • Un Câble HDMI
  • Un câble USB pour connecter le disque dur.
  • Un écran avec une entrée HDMI
  • Un clavier USB/souris USB
  • Une box reliée à internet
  • Un câble réseau RJ45.
  • Un PC avec un lecteur de carte SD/microSD. Lecteur de carte SD
  • Une carte microSD de 8Go ou plus. Carte microSd 8Go

   

INSTALLATION : 

Avant toutes choses, sur votre PC, formatez votre disque dur USB en système de fichiers NTFS et donnez lui le nom de volume (Label) : FullNode. En formatant le disque en NTFS, vous pourrez éventuellement récupérer facilement la blockchain pour la copier sur un pc windows par exemple et démarrer rapidement un client bitcoin sur celui-ci.

Récupérez la dernière image (.img) en date pour installer le système Ubuntu, déclinaison de linux, sur la carte microSD.
La dernière version de l'image système pour orange pi plus 2e se trouve ici :
Prendre la version "Ubuntu Xenial Desktop" (c'est un fichier compressé en 7zip qui contient l'image .raw à utiliser) :

Extraire l'image .img contenue dans le fichier téléchargé dans un dossier de votre choix (vous pouvez utiliser Winrar ou 7zip téléchargeable ici : http://www.7-zip.org/)

Téléchargez et installez sur votre pc l'utilitaire "Win32DiskImager" qui va permettre d’écrire l'image (.img) que vous venez de récupérer sur la carte microSD : https://sourceforge.net/projects/win32diskimager/
Insérez la carte micro sd dans votre lecteur de cartes, lancer Win32DiskImager puis sélectionnez l'image .img téléchargée, le lecteur où se trouve la carte sd et cliquez sur Write :

 Le processus d'écriture prend quelques minutes


Insérer la carte microSD dans le logement sd, branchez le câble HDMI, câble réseau ainsi que souris et clavier. Ne pas connecter le disque dur externe aux ports USB pour l'instant. Alimentez l'orange pi avec le câble d'alimentation.  Attendre le démarrage..

CONFIGURATION de l'Orange Pi :

Au premier démarrage, l'orange pi s'auto configure, le laisser démarrer jusqu'à ce qu'il se bloque plus de 15 secondes sur la ligne de demande du login (au 2eme démarrage automatique).

Entrez alors pour le login : root
Mot de passe : 1234 (directement sur les touches au dessus des lettres, pas sur le clavier numérique)

Le système vous demande alors de retaper ce mot de passe (1234) et d'en entrer un nouveau à confirmer 2 fois (Attention, clavier QWERTY) :


On passe ensuite, sur l'écran de création d'un compte (Toujours en mode clavier Qwerty) :


Pour le nom du compte, tapez : bitcoin puis <ENTREE>
Entrez ensuite un mot de passe personnel à confirmer 2 fois
Pour Full name, tapez bitcoin
Room number :
Information correct?, répondre Y puis <ENTREE>


La création du compte est confirmée et le système demande alors si vous voulez changer la résolution de l'écran par défaut (1280*720). Si vous répondez Y, vous prenez la main (sinon, le système démarre) :

Pour ma part, je suis passé en 1080p60 sur mon téléviseur HD.
Pour cela, j'ai tapé : h3disp -m 7

Après cela, tapez reboot pour relancer le système. Vous allez obtenir l’écran suivant :




Passez en clavier français : Applications Menu, Settings, Keyboard.

Allez dans l'onglet "Layout" et décochez "Use system defaults" :



Cliquez sur "Add" pour ajouter le clavier français (sélectionner "French" dans la liste déroulante) :


Sélectionnez le clavier Anglais et Supprimez le en cliquant sur le bouton "Delete" :



A partir de maintenant, tout ce qui est en noir&blanc devra être tapé dans une fenêtre terminal que vous pouvez lancer en cliquant sur "Terminal Emulator" dans le menu :



Dans la fenêtre terminal ci-dessus, tapez la commande "ifconfig" pour déterminer l'adresse ip qu'a prise l'orange pi :

Pour pouvoir effectuer les opérations ci-dessous plus facilement depuis un autre pc connecté au réseau local, Téléchargez l'utilitaire Putty sur cet autre ordinateur ici :  https://www.putty.org/

Et depuis ce pc, lancez Putty et renseignez l'adresse ip de l'orange pi, puis cliquez sur open :


A la première connexion, cliquez sur oui, vous êtes alors prêt pour effectuer les commandes ci-dessous par copier-coller dans la fenêtre putty :

On commence par la mise à jour de l'OS Armbian (environ 10 à 30mn). Ces mises à jours peuvent être répétées régulièrement pour mettre à jour le système unix :
sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade

Redémarrez l'Orange pi :  sudo reboot

** Installation des paquets et bibliothèques nécessaires pour le lancement du bitcoin-core :
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libzmq3-dev

** Installation de QT5 :
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

** Récupération, compilation et Installation de BerkeleyDB 4.8 utilisé pour le Wallet bitcoin :
mkdir ~/bin
cd ~/bin
wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz

tar -xzvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix/
../dist/configure --enable-cxx
make -j4
sudo make install

cd

** Récupération des sources de la dernière version du bitcoin core 0.18 et génération (pour mettre à jour en version ultérieure 0.18.1, il suffit de répéter cette opération en précisant toujours -b 0.18 qui permet de cibler la branche des versions 0.18.0 et versions ultérieures).
git clone -b 0.18 https://github.com/bitcoin/bitcoin.git
cd bitcoin/
./autogen.sh


** Vérification des sources bitcoin :
./configure CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include -O2" LDFLAGS="-L/usr/local/BerkeleyDB.4.8/lib" --enable-upnp-default --with-gui

** Compilation des sources. cette étape est très longue, environ 2h30 :
sudo make -j2
sudo make install


A ce stade, je vous conseille de désactiver le wifi et de n'utiliser que le port Ethernet RJ45 pour relier le nœud au réseau. Le nœud sera ainsi plus fiable et consommera moins si vous passez par un câble réseau relié à votre box. A vous de voir..

Donc, pour désactiver définitivement le wi-fi, taper :

sudo ifconfig wlan0 down && sleep 0.5 && sudo rmmod -f 8189fs 

Si par la suite, vous avez de nouveau besoin du wifi, taper : :
 sudo modprobe 8189fs && sleep 0.5 && sudo ifconfig wlan0 up

Nous allons aussi devoir définir une adresse ip fixe à l'orange pi. Pas obligatoire mais fortement recommandé. Ainsi il sera beaucoup plus aisé de pouvoir l'atteindre depuis l’extérieur par exemple avec un logiciel de prise en main à distance comme VNC que l'on va bientôt installer .

Il faut pouvoir déterminer l'adresse ip que vous allez pouvoir utiliser pour votre orange pi.
Pour cela, il faut vous connecter à votre box, perso je dois entrer l'adresse 192.168.1.1 dans un navigateur pour m'y connecter depuis mon pc. Parfois c'est 192.168.0.1. Dans la rubrique "Réseau", puis IP LAN, on peut voir que le serveur DHCP délivre des adresses IP qui vont de 192.168.1.10 à 50. On peut réserver une adresse IP que le serveur DHCP ne pourra pas prendre en ajoutant l'adresse MAC de la carte réseau de l'orange pi. Pour connaitre l'adresse MAC de la carte réseau de votre orange pi, tapez :

sudo ifconfig


ce qui renvoie plusieurs informations dont l'adresse mac de la carte réseau (entourée en rouge) :
 
Cette adresse MAC est à ajouter dans les "Infos de location/réservation DHCP" avec l'adresse IP de votre choix (entre 10 et 50 dans mon cas). Faites un ping 192.168.1.x pour vérifier que l'adresse IP choisie n'est pas déjà utilisée (la réponse doit être "unreachable").

La procédure est sensiblement la même sur les autres box des autres FAI.


Dans notre exemple, j'ai choisi l'adresse IP 192.168.1.16 une autre solution, plutôt que de définir l'adresse ip sur la box comme ci-dessus, est de définir cette adresse depuis l'orange pi, pour cela tapez :

sudo nano /etc/network/interfaces

Au début du fichier, mettre en commentaire les lignes suivantes :
#allow-hotplug eth0
#no-auto-down eth0

puis, modifier/ajouter les lignes comme ci-dessous :

Pour les DNS (dns-nameservers), j'ai mis ceux de google, mais vous pouvez mettre ceux que vous voulez. Vous pouvez mettre ceux de votre FAI (Voir ici : http://www.ariase.com/fr/guides/adresses-dns.html)

La passerelle (gateway) de ma box a l'adresse 192.168.1.1. Chez free, par exemple, cette adresse est 192.168.0.254 par défaut. Chez orange, c'est 192.168.1.1.. Vérifiez ces informations avant de changer l'adresse IP.

sudo reboot 

Après le redémarrage, vérifier que l'adresse ip prévue est bien correcte avec sudo ifconfig : 


PRISE EN MAIN A DISTANCE DE L'ORANGE PI :

Si vous le souhaitez, vous pouvez installer un serveur pour la prise en main à distance de l'orange pi. Ainsi, plus besoin de clavier ou souris à raccorder. Vous pourrez vérifier le bon fonctionnement du noeud depuis votre pc ou votre téléphone portable/tablette.
Tout d'abord, il faudra configurer votre box pour accepter les connexions vers le port utilisé par le serveur VNC sur le raspberry. C'est ce qu'on appelle une redirection de port. Ce port d’écoute est le 5900 par défaut. 
Connectez vous à votre box (pour moi, je tape 192.168.1.1 dans mon navigateur puis mon nom d'utilisateur/mot de passe personnel). Pour une freebox, c'est http://mafreebox.freebox.fr par exemple. Dans la partie "Réseau", puis "Paramètres Avancés" et "Transfert de ports", il faut ajouter le port 5900 qui va être redirigé vers l'adresse IP de notre réseau local du raspberry (pour moi, 192.168.1.16) comme ci-dessous :


Ainsi, lorsque je me connecterai depuis internet via mon pc ou téléphone portable, j'entrerai l'adresse IP publique de ma box ainsi que le port 5900. Ce qui redirigera toutes les données vers l'adresse ip locale 192.168.1.16 et le port 5900 de mon orange pi.

Sur l'orange pi :
Installer le serveur vnc X11vnc : 

sudo aptitude install x11vnc
x11vnc -storepasswd 

=> Entrez un mot de passe personnel pour la connexion à distance (8 caractères).

Pour démarrer automatiquement le serveur vnc au démarrage de l'orange pi :

cd ~/.config 
mkdir autostart
cd autostart 
nano x11vnc.desktop 

Copier le texte ci-dessous, puis collez le dans le fichier :

 

Sauvegardez par CTRL-X et redémarrez l'orange pi.
sudo reboot  

Vérifier que le serveur vnc fonctionne correctement :

ps -ef | grep vnc


Doit retourner une ligne comme indiqué ci-dessous :  

Maintenant, sur votre PC, Tablette ou Téléphone portable, vous devez installer une application cliente pour vous connecter à l'orange pi. Sur PC, j'ai choisi le client Vnc Viewer (il en existe d'autres comme ultra vnc, real vnc..) :  


Vous pouvez le télécharger ici : https://www.realvnc.com/download/viewer/
Aucune installation n'est nécessaire, vous récupérez un programme que vous pouvez exécuter directement.
Cela donne ceci lorsque vous le lancez :

Client VNC sur pc

Au niveau de la ligne VNC Server, indiquez votre adresse ip publique puis le port sous la forme :
XX.XX.XX.XX:5900 ou sur votre PC, vous pouvez entrer l'adresse ip locale : 192.168.1.16:5900
(Vous pouvez trouver votre adresse publique en vous connectant sur le site http://www.mon-ip.com/ par exemple).

Connectez le disque dur externe sur un port USB de l'orange pi (sur le connecteur qui comporte 2 ports USB car ce sont ceux qui fournissent un courant suffisant pour un disque dur externe 2,5"). Après quelques secondes, un icône doit apparaitre sur le bureau, représentant le disque dur connecté avec son libellé (FullNode) :


Faire clic droit sur cet icône, puis 'Open', Notez le chemin sur lequel le disque est monté (ici : /media/bitcoin/FullNode. A noter : Lors d'un redémarrage de l'Orange pi, il faudra double cliquer sur cet icone pour monter le disque dur avant de relancer le client bitcoin.


Nous allons créer un raccourci sur le bureau, pour lancer le bitcoin core. Pour cela, faire clic droit sur le bureau, puis "Create Launcher" :

Entrez les informations suivantes.
Dans la case "Command", entrez : /usr/local/bin/bitcoin-qt  -datadir=/media/bitcoin/FullNode


Cliquez sur le bouton "No icon", la fenêtre suivante apparait après une vingtaine de secondes, cliquez sur la petite flèche en haut à droite :

 Sélectionnez "Image Files" :

 Puis descendez dans l’arborescence pour sélectionner au final, le chemin suivant :
 /home/bitcoin/bin/db-4.8.30.NC/build_unix/bitcoin/share/pixmaps :

Et sélectionnez le fichier icône : bitcoin256.xpm

Pour finir, cliquez sur "Create" :


 Voila, notre raccourci bitcoin, sur le bureau :

CONFIGURATION POUR LE CLIENT BITCOIN :

Avant de lancer le client bitcoin, nous allons configurer la box pour que le client puisse accepter les connections entrantes sur le port par défaut : 8333. Ainsi vous pourrez partager la blockchain avec d'autres.

Connectez vous à votre box (pour moi, je tape 192.168.1.1 dans mon navigateur puis mon nom d'utilisateur/mot de passe personnel). Dans la partie "Réseau", puis "Paramètres Avancés" et "Transfert de ports", il faut ajouter le port 8333 qui va être redirigé vers l'adresse IP de notre réseau local du raspberry (pour moi, 192.168.1.16) comme ci-dessous :


Une fois la box configurée, vous pouvez lancer le client bitcoin sur le bureau. Double cliquez sur l'icone bitcoin-qt sur le bureau :

La première fois, une fenêtre s'affiche, cliquez sur "Mark Executable" :

Le client bitcoin démarre :



Le client commence alors à se synchroniser avec le réseau et récupère la blockchain. Avec la version 0.13, la synchronisation prend environ 48h pour récupérer la totalité de la blockchain.


Je vous conseille d'ouvrir une fenêtre terminal et de lancer une petite commande pour vérifier dans le log que tout se passe bien :

cd /media/bitcoin/FullNode
tail -f debug.log

Ce qui donne :
debug.log bitcoin
la blockchain bitcoin en cours de récupération

Dans le menu "Aide" du client bitcoin, cliquez sur "Fenêtre de débogage", pour afficher l'état des connexions en cours :



Pour vérifier que votre noeud bitcoin est bien reconnu sur le réseau, rendez-vous sur https://bitnodes.21.co/

Entrez votre adresse ip publique et cliquez sur "Check Node". Si votre noeud est opérationnel, il doit apparaitre en vert :

Noeud bitcoin sur le site https://bitnodes.21.co

En cliquant sur le lien de votre noeud, vous pourrez obtenir des informations sur la disponibilité de celui-ci :

 Après plusieurs jours de fonctionnement non-stop, la mémoire utilisée de l'orange pi préserve encore environ 500mo de mémoire libre, donc, tout va bien :

CONSOMMATION DU DISPOSITIF :






Comme on peut le voir sur la photo, l'ensemble du dispositif coute en moyenne 6,47€ / an.

Tout cela reste négligeable : environ 0,54€ / mois pour faire tourner un noeud bitcoin chez soi.. Alors, à vous, maintenant, 
lancez vous !..
 

Aucun commentaire:

Enregistrer un commentaire