Lancez votre premier node StarkNet !

Dans ce post je vais vous présenter une des méthodes pour faire tourner un node StarkNet, à savoir sur un VPS via un Macbook. Il existe d’autres méthodes mais celle de passer par un VPS est pour moi la plus simple car vous n'aurez pas besoin d’installer ubuntu sur votre machine et le serveur par lequel vous passez est allumé 24/7 ce qui va vous permettre de laisser tourner votre node sans devoir laisser votre machine allumée chez vous.

Étape 1 : Connectez vous à votre VPS

Commençons donc par ouvrir le Terminal de commande sous mac pour se connecter au VPS. Sous Windows il faudra passer par PuTTy (vous trouverez facilement des informations sur son utilisation en cherchant sur google).

Connectez-vous sur le site de votre hébergeur. Vous allez avoir besoin de l’adresse ip de l'hôte, de votre nom d’utilisateur et de votre mot de passe.

La commande à entrer va être la suivante :

ssh ‘nom d’utilisateur’@adresse ip

Dans notre exemple :

ssh root@82.xxx.xxx.xx

Copier/coller ensuite le mot de passe et validez

Vous voilà connecté à votre VPS.

Étape 2 : Installez les outils de développement

Premièrement, vérifier la version de Python :

python3 -V

Vous obtiendrez quelque chose comme ça :

Pour gérer les software packages de Python, il vous faut installer pip, un outil qui installera et gérera les paquets de programmation :

sudo apt install -y python3-pip

Si à cette étape vous avez cette erreur :

Effectuez les commandes suivantes :

  1. Corriger les paquets endommagés :
    sudo apt -f install
  2. Mettre à jour :
    sudo apt update && sudo apt dist-upgrade
  3. Installez :
    sudo apt install python3-pip
  4. Vérifiez si tout est bien installé :
    pip3 --version

Il nous reste les packages et outils de développement suivant à installer pour s'assurer que nous avons une configuration robuste pour notre environnement de programmation :

sudo apt install -y build-essential libssl-dev libffi-dev python3-dev

Ensuite :

sudo apt-get install libgmp-dev

Puis :

pip3 install fastecdsa

Et pour finir :

sudo apt-get install -y pkg-config

Étape 3 : Installez Rust

Nous avons besoin d’installer le langage de programmation Rust et ses outils puisque le nœud est construit en Rust.

Lancez :

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Choisissez l’installation par défaut 1 :

Lancez ensuite :

sudo apt update
sudo apt install cargo

Et enfin mettez à jour Rust à la dernière version :

rustup update stable

Étape 4 : Clonez le pathfinder github repository

Félicitations, vous êtes maintenant arrivé à la partie où nous allons commencer à préparer l'environnement pour notre nœud.

Installez dans un premier temps git avec ces commandes :

sudo apt update
sudo apt install git

Puis :

git --version

Créez une copie locale du pathfinder github repository en lançant :

git clone --branch v0.2.1-alpha https://github.com/eqlabs/pathfinder.git

ATTENTION ici à bien vérifier la version du pathfinder repository que vous allez cloner. Rendez vous sur cette page et modifiez si nécessaire v0.2.1-alpha par la dernière version disponible.

Vous allez obtenir ce résultat, ne vous inquiétez pas à propos du detached HEAD state. Cela signifie simplement que vous ne pouvez pas avoir d'impact sur le développement actif du code pathfinder.

Étape 5 : Créer un environnement virtuel pour votre node

Installer un outil qui nous permettra de créer un environnement virtuel dans lequel notre nœud fonctionnera :

sudo apt install python3.8-venv

Puis déplacez vous dans :

cd pathfinder/py

Pour obtenir ceci :

Creer un nouvel environment appelé venv :

python3 -m venv .venv

Puis activez le :

source .venv/bin/activate

Vous saurez que vous êtes dans votre environnement virtuel lorsque vous verrez (.venv) sur le côté gauche de votre ligne de commande :

Installez ces outils supplémentaires :

PIP_REQUIRE_VIRTUALENV=true pip install --upgrade pip

Puis :

PIP_REQUIRE_VIRTUALENV=true pip install -r requirements-dev.txt

Et enfin testez si vos étapes précédentes ont réussi en exécutant :

pytest

Vous obtiendrez quelque chose comme ca :

Étape 6 : Assemblez votre node

Vous pouvez compiler votre node en exécutant la commande suivante. Veuillez rester dans votre environnement virtuel (venv) pour cette étape. Vous allez également exécuter votre nœud à partir de venv.

cargo build --release --bin pathfinder

Cette étape peut prendre du temps, c’est normal :)

Étape 7 : Créez un compte Alchemy

Si vous voulez faire fonctionner un node sur le Layer 2 (StarkNet), vous devrez également savoir ce qui se passe sur le L1 puisque votre node calculera le state root de StarkNet et la confirmera par rapport au L1.

Pour ce faire, vous devez créer un compte sur Infura, Alchemy, ArchiveNode ou QuikNode.

Dans ce tuto je vais utiliser Alchemy.

Créez vous un compte puis cliquez sur

Cet onglet va s’afficher. Ici je choisi le testnet Goerli (après renseignements auprès de l’équipe de StarkNet, les besoins sont plus importants sur Goerli que sur le mainnet à l’heure actuelle)

Affichez les clefs et gardez cet onglet ouvert pour la suite :

Étape 8 : Exécutez votre node

Vous allez avoir besoin de la commande :

cargo run --release --bin pathfinder -- --ethereum.url https://eth-goerli.alchemyapi.io/v2/xxxxx

Remplacez xxxxx par l’adresse HTTP ci-dessus.

Dans notre exemple :

cargo run --release --bin pathfinder -- --ethereum.url https://eth-goerli.alchemyapi.io/v2/S6FMQYVrmimyixbv2A4fmG0Uj7dEjIHn

Rappel : vous devez bien exécuter cette commande dans le dossier pathfinder/py

Et voilà c’est terminé. Vous allez pouvoir voir les blocks défiler :

Vous pouvez également vérifier sur Alchemy :

Pour aller plus loin

  • Vous faites tourner votre node sur un VPS mais vous vous êtes rendu compte que lorsque vous fermez le terminal le node s'arrête de fonctionner. Nous allons résoudre ce problème !

Vous vous souvenez de cargo run --release --bin pathfinder -- --ethereum.url https://eth-goerli.alchemyapi.io/v2/S6FMQYVrmimyixbv2A4fmG0Uj7dEjIHn

Et bien modifions la légèrement. Nous allons ajouter la commande nohup et &. Ce qui va donner dans notre exemple :

nohup cargo run --release --bin pathfinder -- --ethereum.url https://eth-goerli.alchemyapi.io/v2/S6FMQYVrmimyixbv2A4fmG0Uj7dEjIHn &

  • Après avoir validé cette commande vous n’allez plus voir les blocks défiler. Entrez :

cd pathfinder/py/ 
tail -f ./nohup.out

  • Pour mettre fin à la commande nohup il vous faut entrer :

ps -aux

Vous allez voir apparaître une grande liste. Il vous suffit de chercher la ligne qui correspond à votre /root/pathfinder/target/release/pathfinder --ethereum.url S6FMQYVrmimyixbv2A4fmG0Uj7dEjIHn

Prenez le nombre de la deuxième colonne : ici 18454

Entrez la commande :

kill 18454

Mettre à jour votre node

Le réseau évolue et vous aurez besoin de faire des mises à jour assez réguliérement. Ne vous inquiétez pas, la procédure est très simple. Pour être informé de ces mises à jour, pensez à rejoindre le Discord officiel et à vérifier la dérnière version du pathfinder ici.

  • Dans un premier temps arretez la commande nohup avec la commande kill juste au dessus.
  • Ensuite entrez les commandes suivantes :

cd pathfinder

git fetch

git checkout v0.2.2-alpha (si on souhaite mettre à jour à la version 0.2.2-alpha)

cargo build --release --bin pathfinder

cd py

source .venv/bin/activate

PIP_REQUIRE_VIRTUALENV=true pip install -r requirements-dev.txt

Voila c’est terminé, vous n’avez plus qu’à relancez votre node avec la commande nohup !

Conclusion :

L’installation et le launch de votre node sont terminés. J’espère que cette présentation vous aura été utile. La réalisation de cette fiche technique en français a été permise grâce au travail (n’hésitez pas à aller le consulter) effectué par DZupp. Si durant votre parcours initiatique vous rencontrez des difficultés pensez à rejoindre le Discord de StarkWare ou vous trouverez toujours un membre de la communauté pour répondre à vos questions.

Subscribe to HoVa
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.