🇫🇷 #1 - Installer le node Jormungandr sur Linux et participer au testnet

Troisième jour de test sur le réseau testnet unifié de Shelley / Jormungandr
Un début amusant, parfois un peu chaotique. Un bonne ambiance sur le channel Telegram pour régler les derniers paramètres et finalement, voilà : c’est pas bien compliqué d’avoir un noeud Jormungandr !!
Si vous avez du mal à me croire, pourquoi ne pas tenter l’aventure vous même ?!

Warning n°1: Ce petit document s’adresse à ceux qui connaissent au moins les commandes linux suivantes.
ls / cd / mkdir / rm / rm -r

Si vous ne les connaissez pas, il n’est jamais trop tard !! En tout cas, soyez à l’aise avec la navigation d’un dossier à un autre. Quand on a pas un écran, sur les serveurs web par exemple, c’est plutôt pratique !

Warning n° 2: Je me suis simplifié grandement la chose en travaillant sur un serveur web avec IP fixe. Si jamais vous êtes derrière un routeur, une box ou autre à la maison, ça risque d’être une autre histoire…


Installer Jormungandr sur une distro Linux classique (Ubuntu par example).
Si vous en utilisez une autre que vous bidouillez tous les jours, il y a de fortes chances pour que ce document ne vous soit pas utile de toute façon…

Avant toute chose, il vous faut installer Rust sur votre machine.

curl https://sh.rustup.rs -sSf | sh

Suivez les instructions jusqu’au bout. Surtout à la fin, quand ça vous parle de bien copier le chemin {$HOME} etc …

Pour être sûr que vous n’aurez pas de problèmes de compilation un peu plus loin, je vous recommande d’installer ce qui suit en tapant :

sudo apt-get install build-essential pkg-config git curl libssl-dev

Ensuite, il vous faut récupérer Jormungandr

git clone --recurse-submodules https://github.com/input-output-hk/jormungandr
cd jormungandr

Vérifier que vous êtes bien sur la dernière branche de développement

git checkout master
git pull

Installer Jormungandr et Jcli, son interface de commande

cargo install --path jormungandr
cargo install --path jcli

Si jamais vous n’en êtes pas à votre première installation de Jormungandr, ou vous n’êtes plus trop sûrs de vous, vous pouvez faire les commandes suivantes en remplacement des deux dernières commandes citées plus haut :

cargo install --path jormungandr --force
cargo install --path jcli --force


Une fois que cela est fait, le plus dur est derrière vous - ou presque !

Bravo, vous avez désormais installé les deux composantes majeures qui vous permettront de vous connecter à Shelley. Maintenant, les choses sérieuses: le testnet

Si vous avez suivi les commandes précédentes à la lettre, vous êtes toujours dans le dossier “/jormungandr”.
Sortez en, en tapant :
cd ../

Créez un dossier, soyons originaux, appelé “testnet”
mkdir testnet

Rentrez dans ce nouveau dossier
cd testnet

Nous allons opérer à partir d’ici maintenant et créez un fichier config.yaml pour votre noeud Jormungandr.
Attention !! Pour des raison d’édition sur le forum, les espaces ne sont pas bien intégrés en début de ligne, et le fichier .yaml a besoin de ces espaces pour être fonctionnel. Pour cette raison, copiez ce qui suit et remplacez tous les " ° " par un espace (les espaces internes à la ligne sont ok - n’y touchez pas), avant de tout rentrer dans votre terminal pour effectuer la commande.

Remarques:
UTILISATEUR : C’est votre nom d’utilisateur ( celui avec lequel vous vous connectez sur votre machine). Moi c’est psychomb. Et vous ? ( vous pouvez le connaître en tapant whoami )
X.X.X.X : C’est l’adresse IP de votre machine.
Remplacez ces deux valeurs dans ce qui suit par les votres !


cat > ~/testnet/config.yaml << EOL
log:
°°format: “plain”
°°level: “info”
°°output: “stderr”
p2p:
°°listen_address: “/ip4/0.0.0.0/tcp/3100”
°°public_address: “/ip4/X.X.X.X/tcp/3100”
°°topics_of_interest:
°°°°blocks: “high”
°°°°messages: “high”
°°trusted_peers:
°°°°- “/ip4/163.172.195.51/tcp/4444”
°°°°- “/ip4/68.183.155.37/tcp/3100”
°°°°- “/ip4/3.123.177.192/tcp/3000”
°°°°- “/ip4/3.123.155.47/tcp/3000”
°°°°- “/ip4/3.115.57.216/tcp/3000”
°°°°- “/ip4/3.112.185.217/tcp/3000”
°°°°- “/ip4/18.139.40.4/tcp/3000”
°°°°- “/ip4/18.140.134.230/tcp/3000”
rest:
°°listen: “127.0.0.1:3101”
storage: “/home/UTILISATEUR/testnet/storage”


Appuyez maintenant sur la touche “Enter” et tapez les trois lettres suivantes en majuscules: EOL
Appuyez sur “Enter”

Ca y est vous avez un fichier config.yaml créé et prêt à tourner.
Pour le vérifier, tapez dans le terminal

cat config.yaml

Il devrait s’afficher.

Vous pouvez maintenant lancer le noeud jormungandr en suivant la commande:
jormungandr --config /home/UTILISATEUR/testnet/config.yaml --genesis-block-hash adbdd5ede31637f6c9bad5c271eec0bc3d0cb9efb86a5b913bb55cba549d0770

Si jamais vous souhaitez que le noeud continue de tourner après avoir fermé votre session sur votre serveur, vous pouvez taper:
nohup jormungandr --config /home/UTILISATEUR/testnet/config.yaml --genesis-block-hash adbdd5ede31637f6c9bad5c271eec0bc3d0cb9efb86a5b913bb55cba549d0770

Un fichier log sera créé: nohup.out
Si vous souhaitez qu’aucun fichier log ne soit conservé, pour éviter par exemple la création d’un log trop volumineux, tapez plutôt:

nohup jormungandr --config /home/UTILISATEUR/testnet/config.yaml --genesis-block-hash adbdd5ede31637f6c9bad5c271eec0bc3d0cb9efb86a5b913bb55cba549d0770 >& /dev/null &


Comment vérifier que votre noeud tourne bien ?

Tapez à intervalles plus ou moins réguliers la commande suivante :

jcli rest v0 node stats get -h http://127.0.0.1:3101/api

Cela vous affichera les infos du dernier bloc. Ces dernières doivent changer, vous indiquant que les blocks sont bien téléchargés au fur et à mesure. Si le lastBlockHeight ne change pas par exemple, il y a un souci !


Comment arrêter mon noeud Jormungandr si jamais je l’ai lancé avec la commande nohup?
Bonne question ! Évidemment, si on a plus le processus qui tourne dans le terminal (c’était le but quand même), alors on ne peut plus le stopper comme une brute avec un petit CTRL+C … C’est ballot.
Tapez plutĂ´t :

jcli rest v0 shutdown get -h http://127.0.0.1:3101/api

Et voilà. Terminé.


Amusez vous bien. C’est tout pour ce soir. D’autres tutos viendront sur la création d’adresses, les transactions, la délégation à un pool et enfin la création de votre propre stake-pool !

@psychomb

2 Likes

jcli rest v0 shutdown get -h http://120.0.0.1:3101/api

should be

jcli rest v0 shutdown get -h http://127.0.0.1:3101/api

Thanks ! Late night documentation is hard to get right :slight_smile:

Super tuto merci !

Je l’ai fait sur CentOS ca fonctionne parfaitement, il faut juste installer ces paquets ci :

sudo yum groupinstall 'Development Tools'

sudo yum install git curl pkgconfig openssl-devel

Aussi, il me semble qu’il y ait une petite erreur de frappe dans le fichier config.yaml

°°opics_of_interest:

A la place de

°°topics_of_interest:

1 Like

Petite rectification, j’ai du ouvrir les ports pour que les connections avec les autres noeuds s’effectuent bien.

Sur CentOS 7 :

firewall-cmd --zone=public --permanent --add-port=3100/tcp
firewall-cmd --zone=public --permanent --add-port=3101/tcp

Pour les versions plus anciennes de CentOS, il me semble qu’il faut jouer avec iptables.

1 Like

C’est bien ce que je disais. Si vous avez une autre distro - vous saurez vous débrouillez tout seul :slight_smile:

firewall-cmd --reload

:wink:

1 Like