đŸ‡«đŸ‡· #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