samedi 30 novembre 2019

Configuration d'un noeud Bitcoin sur RaspBerry pi 4

AVANT-PROPOS

Ce tutoriel permet de configurer le client Bitcoin Core v0.18 (ou une version ultérieure) sur un nano ordinateur RaspBerry 4 avec une mémoire de 2Go ou plus. Un client Bitcoin sera aussi configuré. La Blockchain sera stockée sur un disque dur externe 2,5" relié sur un port USB du raspberry. 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 comportant 2Go de mémoire, toutes les options par défaut du bitcoin-core pourront être conservées. 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.

EQUIPEMENTS NÉCESSAIRES POUR L'INSTALLATION :

  • Un Rapsberry 4 (chez Amazon pour 54€ 
  • Un boitier de protection
  • Une bonne alimentation 3A en USB-C (Alimentation 3A pour raspberry)
  • Un disque dur externe 2,5" USB de 320Go (la blockchain représente environ 270go à ce jour 11/2019). 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) :

      













 

INSTALLATION : 

Avant toutes choses, sur votre PC, formatez le 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 Raspbian, déclinaison de linux, sur la carte microSD.
La dernière version de l'image système pour le raspberry se trouve ici :
Prendre la version "Raspbian Buster with desktop and recommended software" (c'est un fichier compressé en zip qui contient l'image .img à 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

Une fois l’écriture terminée, créer un fichier appelé ssh (sans extension) dans la racine de la carte sd.


CONFIGURATION du Raspberry :

Insérer la carte microSD dans le logement sd, branchez le câble micro HDMI sur la sortie hdmi 0, câble réseau ainsi que souris et clavier et disque dur externe au port(s) USB. Alimentez le raspberry avec le câble d'alimentation.  Attendre le démarrage..

Au premier démarrage, le raspberry pi s'auto configure, répondez aux différentes questions, donnez un mot de passe personnel au compte pi, acceptez la mise à jour du système :
 


A la fin des questions, Redémarrez le raspberry :

 

Après ce redémarrage, allez dans le menu "préférences", puis "configuration du raspberry", activez SSH et VNC :


Configurer VNC Server sur le raspberry. Pour cela, allez sur la page de téléchargement :
https://www.realvnc.com/fr/connect/download/vnc/
Télécharger la dernière version de vnc server, cliquez sur "Raspberry pi" dans la fenêtre qui s'affiche, puis sur le bouton "Télécharger VNC Server 6.6.0" :

Lorsque le téléchargement est terminé, installez le package debian puis rebootez le raspberry :

Après le reboot, cliquez sur l'icone VNC en haut à droite de l’écran, puis dans la fenêtre qui s'ouvre, cliquez sur les 3 traits et sélectionnez le menu "Options". Notez l'adresse IP de votre raspberry qui s'affiche (ici 192.168.1.44) :

Dans le menu "sécurité", sur la droite, sélectionnez "Mot de passe VNC" dans le combo "Authentification". Spécifiez alors un mot de passe personnel sur 8 caractères :


Vous pouvez alors télécharger, depuis votre plateforme personnelle windows ou autre, l'application VNC viewer ici : https://www.realvnc.com/fr/connect/download/viewer/ elle vous permettra de vous connecter à votre raspberry avec son adresse ip pour poursuivre l'installation facilement. Connectez vous avec VNC viewer avec votre adresse IP :

Lancer une fenêtre terminal :


Si vous n'avez pas effectué la mise à jour système au premier démarrage du raspberry, on commencera donc par la mise à jour de l'os raspbian (environ 15mn). Cette mise à jour peut être répétée régulièrement pour mettre à jour le système raspbian :

 sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade

Redémarrez le raspberry :  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 graphique pour bitcoin-core client :
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.19 et génération (pour mettre à jour en version ultérieure 0.19.1, il suffit de répéter cette opération en précisant toujours -b 0.19 qui permet de cibler la branche des versions 0.19.1 et versions ultérieures).
git clone -b 0.19 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 (en haut à droite de l’écran) et de n'utiliser qu'un câble réseau via le port Ethernet RJ45 pour relier le nœud à votre réseau. Le nœud bitcoin sera ainsi plus fiable et consommera moins si vous passez par un câble réseau relié à votre box. A vous de voir..


Nous allons créer un raccourci sur le bureau pour lancer le client bitcoin core. Pour cela, faire clic droit sur le bureau, puis "Créer un nouveau ficher" , "Fichier Vide"



 Appelez le nouveau fichier "Bitcoin.desktop" et collez y le texte suivant, et enregistrez le :

[Desktop Entry]
Type=Application
Name=Bitcoin Core
Comment=Lancer Bitcoin Core
Icon=/home/pi/bin/bitcoin/share/pixmaps/bitcoin256.png
Exec=/home/pi/bin/bitcoin/src/qt/bitcoin-qt -datadir=/media/pi/FullNode
Terminal=false
Categories=scripts
Comment[fr_FR]=Bitcoin Core



Vous obtiendrez un icone comme celui-ci :



Vérifiez que votre disque dur est bien connecté au raspberry pi via un port USB.
Pour lancer le client Bitcoin, cliquer sur cet icone puis "Exécuter" :

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

Dans le menu "Aide" du client bitcoin, cliquez sur "Fenêtre", puis "information" 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.earn.com/

Entrez votre adresse ip publique et cliquez sur "Check Node". Si votre noeud est opérationnel, il doit apparaitre en vert (Il faut auparavant avoir ouvert le port 8333 sur votre box) :


Pour surveiller le client bitcoin, on va créer un fichier appelé surveillance.sh :

nano surveillance.sh

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

 

Sauvegardez par CTRL-X 

Rendre le script exécutable :

chmod +x surveillance.sh


Pour lancer le script, taper : 

./surveillance.sh


Le script va alors lancer automatiquement le client bitcoin-qt en cas de plantage de celui-ci et surveiller la mémoire.





samedi 14 janvier 2017

Limitation de la bande passante du noeud bitcoin (Orange pi)


J'ai déniché un petit script en batch unix pour limiter la bande passante du client bitcoin qui est plutôt gourmand si on le laisse faire. Pour info, sans ce script, le noeud bitcoin consomme en moyenne 30-40go par jour pour une bande passante en upload de 10mbit pour moi. J'ai donc limité la bande passante en upload à 2mbit pour limiter la consommation de data à environ 12-14go par jour ce qui est plus raisonnable. Selon la vitesse de votre connexion, vous pourrez adapter la vitesse d'upload.

mercredi 19 octobre 2016

Watchdog - Script de surveillance de l'état du client bitcoin - orange pi


J'ai réalisé un petit script en batch unix pour surveiller le fonctionnement du client bitcoin et éventuellement le relancer automatiquement au cas où il se planterait ou que la mémoire occupée par le client dépasserait une taille trop importante pour la mémoire de l'orange pi.

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.

mardi 7 juin 2016

Installation de Munin sur le noeud bitcoin (statistiques graphiques)



INSTALLATION DE MUNIN ET CONFIGURATION DU RASPBERRY PI

Avant Propos 

Si vous avez suivi le tuto concernant l'installation et la configuration du noeud bitcoin, vous serez surement intéressé de pouvoir consulter à tout moment l'état du noeud de façon plus complète grâce à un serveur web consultable à distance. Pour cela, nous allons installer sur le raspberry un logiciel permettant d'effectuer un suivi via des graphiques de l'état du système et du fonctionnement du noeud en général.


dimanche 15 mai 2016

Configuration d'un noeud bitcoin sur raspberry Pi 2 ou raspberry Pi 3

AVANT-PROPOS

Ce tutoriel permet de configurer le client Bitcoin Core v0.12.1 (ou une version ultérieure) sur un Raspberry Pi 2 ou 3. Un wallet Bitcoin peut aussi être utilisé. La Blockchain sera stockée sur un disque dur externe 2,5" relié sur les ports USB. Ceci 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. Par ailleurs, nous devrons configurer le bitcoin-core pour que son utilisation H24 puisse s’accorder avec la petite mémoire ram du raspberry pi (1Go). 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.