NXTER MAGAZINE

Comment: Configurer un nœud Nxt sur un Raspberry Pi 2

nxt-raspberry-pi2

Nxt est l’un des réseaux peer-to-peer les plus impressionnants et les moins appréciés sur Internet. Il s’agit d’une plateforme open-source décentralisée qui a introduit un nouvel algorithme de consensus de preuve de participation et qui a survécu dans la nature depuis plus de 2 ans. Aujourd’hui, la technologie initiée par Nxt est utilisée dans des projets bien financés comme Ethereum, alors que Nxt reste sous le radar.

Mais les développeurs Nxt ont été très occupés, la dernière version apporte un autre ensemble de fonctionnalités de pointe. L’API continue à se développer, alors que le logiciel nécessite des ressources système minimales pour fonctionner. Un «noeud complet» générateur de blocs peut fonctionner sur un Raspberry Pi 2 et ne coûte que 50 $ en pièces, et si vous lisez ce post, vous voulez probablement configurer le vôtre, alors commençons.

Vous aurez besoin de ce qui suit:

  • Raspberry Pi 2
  • 8 Go + carte microSDHC (Classe 6 ou supérieure recommandée)
  • Câble micro USB pour l’alimentation
  • Câble réseau Cat 5 ou adaptateur wifi USB
  • Clavier USB, moniteur + câble HDMI (configuration initiale uniquement)

Installation du système d’exploitation

Une fois votre carte microSDHC prête, vous pouvez démarrer votre Raspberry Pi 2 pour la première fois. Insérez la carte mémoire, branchez votre clavier USB, câble Ethernet et connexion HDMI d’abord, puis allumez le Raspberry Pi 2 en branchant le câble micro USB. Beaucoup de routeurs grand public vendus aujourd’hui offrent un port USB qui devrait pouvoir alimenter le Raspberry Pi 2, mais si vous prévoyez d’utiliser des périphériques (par exemple, USB wifi), je recommande d’utiliser un adaptateur A / C 1.0A + USB.

Après le démarrage du système, vous devriez voir l’invite de connexion. Le nom d’utilisateur par défaut est pi et le mot de passe par défaut est raspberry. Une fois connecté, exécutez la procédure suivante pour installer les dernières mises à jour du système d’exploitation:

sudo apt-get update
sudo apt-get upgrade

Ensuite, démarrez l’utilitaire de configuration du système d’exploitation en tapant:

sudo raspi-config

La première chose à faire est de changer le mot de passe par défaut à quelque chose de sécurisé. Choisissez « 2 Changer mot de passe utilisateur » et suivez les instructions pour définir un nouveau mot de passe.

Sélectionner  »9 Advanced Options »

Comme nous n’utilisons pas de gestionnaire de fenêtres, nous pouvons réaffecter une partie de la mémoire GPU au système d’exploitation. Sélectionnez «A3 Memory Split» et réglez la valeur sur 16.

Si vous souhaitez pouvoir accéder à votre nœud depuis un autre ordinateur via SSH, vous pouvez activer le service sous « A4 SSH ». Je recommande fortement de durcir votre installation SSH une fois que tout fonctionne.

Enfin, sélectionnez l’option «1 Expand Filesystem» pour réécrire la table de partition de votre carte microSDHC et utiliser la capacité de stockage complète.

Une fois terminé, appuyez sur ESC pour quitter raspi-config et redémarrez votre système:

sudo reboot

Après avoir ouvert une nouvelle session, vérifiez et confirmez que le système de fichiers racine monté sur / a été étendu:

df -h

La taille du système de fichiers racine doit être proche de la taille de votre carte microSDHC.

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  2.2G   13G  14% /

Ensuite, nous allons augmenter l’espace de swap en éditant le fichier de configuration d’échange et en redémarrant le service:

sudo nano /etc/dphys-swapfile

Modifiez la ligne CONF_SWAPSIZE et réglez-la sur 512 ou 1024 et enregistrez le fichier (CTRL-O, ENTRÉE, CTRL-X).

# set size to absolute value, leaving empty (default) then uses computed value
#   you most likely don't want this, unless you have an special disk situation
CONF_SWAPSIZE=1024

Redémarrez le service swapfile:

sudo service dphys-swapfile restart

Configuration du Réseau

Étant donné qu’il s’agira d’un nœud complet, vous devrez autoriser le trafic réseau peer-to-peer à travers le pare-feu de votre routeur. Chaque configuration de réseau est différente de sorte que cette section va être plus d’une ligne directrice générale. En supposant que vous êtes connecté à un routeur avec DHCP activé, votre Raspberry Pi 2 devrait déjà avoir une adresse IP locale, sinon vous devrez configurer une adresse IP statique. Pour afficher votre configuration réseau actuelle:

ifconfig eth0

eth0   Link encap:Ethernet  HWaddr b1:ff:4a:a4:ff:1b
       inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0

Inet addr est votre IP locale, HWaddr est votre adresse MAC. Dans la configuration de votre routeur, recherchez les paramètres de transfert de port et transférez le trafic TCP / UDP du port 7874 vers l’adresse IP locale de votre Raspberry Pi 2. Si vous n’utilisez pas d’adresse IP statique, vous devez configurer un bail statique DHCP Aka DHCP reservation) pour l’adresse MAC et l’adresse IP locale. De cette façon, le Raspberry Pi 2 obtiendra toujours la même adresse IP locale que celle que vous avez configurée avec la règle de port fowarding.

Installation de Java

Nxt nécessite Java 8. Vous pouvez télécharger et installer manuellement Oracle JRE, ou vous pouvez facilement installer le JRE OpenJDK:

sudo apt-get install openjdk-8-jreYou love Java.

Vérifiez que Java est installé correctement en vérifiant la version:

java -version

Vous devriez voir une sortie similaire à ceci:

openjdk version "1.8.0_40-internal"
OpenJDK Runtime Environment (build 1.8.0_40-internal-b04)
OpenJDK Zero VM (build 25.40-b08, interpreted mode)

Installation de Nxt

Téléchargez la dernière version de Nxt depuis le référentiel public. Vous pouvez utiliser la commande wget dans la console pour télécharger directement le fichier via HTTPS. À la date de rédaction de la version actuelle de Nxt est la version 1.7.4, mais vous voulez vous assurer que vous utilisez la dernière version disponible.

wget
https://bitbucket.org/JeanLucPicard/nxt/downloads/nxt-client-1.7.4.zip

Vérifiez le hachage du package et vérifiez qu’il correspond au hachage dans les notes de version signées. Vous pouvez également vérifier le hachage dans la chaîne de blocs. Le compte Nxt utilisé par le développeur principal Jean Luc est NXT-X4LF-9A4G-WN9Z-2R322.

sha256sum nxt-client-1.7.4.zip

baf0286983fee3f718ea755dd76f5e9bb3d6a2962560368d513ffc9517d10c9b  nxt-client-1.7.4.zip

Extrayez l’archive pour créer le répertoire « nxt »:

unzip nxt-client-1.7.4.zip

Avant de configurer Nxt, vous devrez trouver votre adresse IP publique. Vous pouvez le faire avec la commande suivante:

curl ipinfo.io

Prenez note de votre adresse IP publique, puis exécutez la commande suivante pour créer un nouveau fichier de configuration:

nano ~/nxt/conf/nxt.properties

Voici un exemple de fichier de configuration:

nxt.myAddress=12.34.56.78
nxt.apiServerHost=0.0.0.0
nxt.allowedBotHosts=*

Si vous avez pu configurer le renvoi de port sur votre routeur, définissez nxt.myAddress sur votre adresse IP publique comme indiqué dans la sortie de la commande curl, sinon supprimez cette ligne du fichier de configuration. Pour les autres paramètres, nous avons défini l’API pour autoriser les connexions partout. Une fois que les choses fonctionnent, vous devriez envisager de restreindre l’accès à votre réseau local ou à des adresses IP spécifiques. Voir  nxt/conf/nxt-default.properties pour les descriptions des paramètres de configuration. Enregistrez le fichier de configuration et quittez l’éditeur.

Modifiez le fichier de démarrage et optimisez la configuration de la mémoire:

nano ~/nxt/run.sh

Ajoutez le paramètre -Xmx640m pour augmenter la valeur par défaut de l’allocation de la mémoire de mémoire Java à 640mb:

java -Xmx640m -cp classes:lib/*:conf nxt.Nxt

Vous êtes maintenant prêt à démarrer le serveur. Comme il s’agit d’une nouvelle installation, votre nœud devra télécharger l’ensemble du bloc de synchronisation avec le réseau Nxt. Dans certains cas, cela peut prendre beaucoup de temps en fonction de la vitesse de votre connexion Internet et le type de carte mémoire que vous utilisez.

Démarrage et Connexion

Nxt fonctionne comme un processus serveur qui fournit une API et une interface client Web. Tout d’abord, démarrez le serveur:

cd ~/nxt
./run.sh

Vous devriez voir le serveur Nxt démarrer et synchroniser avec le réseau. Lorsque le démarrage est terminé, vous verrez ce qui suit:

2016-01-03 13:43:28 INFO: Nxt server 1.7.4 started successfully.
2016-01-03 13:43:28 INFO: Copyright © 2013-2016 The Nxt Core Developers.
2016-01-03 13:43:28 INFO: Distributed under GPLv2, with ABSOLUTELY NO WARRANTY.
2016-01-03 13:43:28 INFO: Client UI is at http://localhost:7876/index.html

Ouvrez un navigateur Web sur un PC connecté au même réseau et accédez à l’adresse IP locale du Raspberry Pi 2 sur le port 7876.

Exemple: http://192.168.1.10:7876

Pour l’interface API interactive, ajoutez /test à l’url.

Exemple: http://192.168.1.10:7876/test

Félicitations, si vous êtes en mesure d’accéder à la page de connexion /test, votre installation Nxt est réussie. Pour arrêter le serveur Nxt, appuyez sur CTRL-C sur la console.

Étapes Finale

Activer SSL

Avant de pouvoir utiliser Nxt en toute sécurité, vous devez configurer le SSL sur votre nœud. Si vous utilisez HTTP, un attaquant sur votre réseau peut être en mesure de voler votre mot de passe. Je recommande fortement de configurer un cert auto-signé pour votre nœud et en utilisant HTTPS seulement. J’ai posté quelques instructions « tricher » qui sont basées sur les instructions du wiki. Le développeur principal Riker a également posté un fil sur la mise en place de SSL.

Écran d’Installation

Pour faciliter la gestion de votre nœud, je recommande l’installation de l’écran. Il vous permettra d’exécuter des programmes dans des sessions détachables, et une fois que vous commencerez à l’utiliser, vous vous demanderez comment vous l’avez manqué depuis si longtemps.

sudo apt-get install screen

Pour utiliser l’écran sur votre serveur Nxt, modifiez run.sh et modifiez la commande:

nano ~/nxt/run.sh

screen -mS nxt java -Xmx640m -cp classes:lib/*:conf nxt.Nxt

La prochaine fois que vous démarrez le serveur à l’aide de run.sh, vous pourrez vous détacher du processus en appuyant sur CTRL-A, CTRL-D. Pour retaper la session, entrez la commande suivante:

screen -r nxt

Démarrage Automatique

Une manière facile de démarrer automatiquement le serveur Nxt au démarrage est avec le planificateur de tâches cron. Vous devez ajouter une entrée spécifiant @reboot et exécuter vos commandes de démarrage là:

crontab -e

@reboot sleep 30 && cd /home/pi/nxt && ./run.sh

Dans cet exemple, le serveur Nxt démarrera au démarrage après un délai de 30 secondes. Vous pouvez utiliser cron pour planifier d’autres tâches aussi bien.

Pour des questions ou des commentaires, s’il vous plaît visitez le fil du forum pour cet article de blog.

View this in: English 简体中文 Русский Español

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.