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.
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.
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 :
sudo apt -f install
sudo apt update && sudo apt dist-upgrade
sudo apt install python3-pip
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
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
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.
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 :
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 :)
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 :
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 :
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 &
cd pathfinder/py/
tail -f ./nohup.out
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
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.
nohup
avec la commande kill
juste au dessus.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
!
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.