Déploiement d'un Node sur Contabo

Tutoriel pas à pas pour ceux qui désirent mettre en place un noeud pour participer au réseau Avalanche ou simplement pour s'en servir pour effectuer des requêtes.

Partie 1: Contabo, l'hébergeur à petit prix

Contabo est une entreprise Allemande qui propose un service d'hébergement ayant des prix attractifs. Pour installer notre node avalanche, nous n'avons pas besoin de plus que le VPS S SSD. En effet, le node Avalanche n'a pas besoin d'énormes ressources (en date de la rédaction de cet article) pour participer au réseau.

Sélection et achat de son VPS

Il existe plusieurs types de VPS sur Contabo:

Le VPS que nous avons sélectionné en version L (disponible ici) aura un couts mensuel de 15€ et les caractéristiques suivantes:

  • 8 coeurs

  • 30 GB RAM

  • 200 GB SSD NVMe

  • 600 Mbit/s Port

  • 1 IP publique 1:1

  • Ubuntu 20.04 server LTS

Une fois la création de votre compte et le paiement effectué, votre VM sera préparée et lancée chez Contabo. Vous devriez recevoir un mail avec les informations suivantes:

Partie 2: Préparer sa VM

Connection à la VM

Notre VM est maintenant prête et nous allons pouvoir nous y connecter. Je vais prendre les valeurs suivantes pour illustrer le tutoriel: (elles devront être adaptées à votre environnement)

  • IP address: 8.8.8.8

  • username: root

  • password: 123

Une mise à jour de Contabo ne donne plus forcement accès au compte root de votre VPS mais un accès au compte admin. Il conviendra de changer root par admin si tel est votre cas.

Pour vous connecter de façon sécurisé via SSH voici la procédure:

  1. Ouvrez un terminal

  2. Tapez la commande suivante: ssh root@8.8.8.8

  3. entrez votre password, ici: 123

  4. Validez le message qui pourrait apparaitre qui vous signale que votre ordinateur ne connait pas la machine sur laquelle vous vous apprêtez à vous connecter.

  5. Vous devriez être connecté à la VM et devriez voir ceci apparaitre: root@8.8.8.8 #

Un peu de sécurité

Vous venez de réussir à vous connecter à votre VM à distance mais il est important de réaliser que de se connecter avec le compte root sur une VM depuis internet n'est pas une recommandation. Il est important d'effectuer quelques ajustements pour sécuriser l'accès distant à votre VM.

Voici quelques axes de sécurité qui sont abordés dans la page Extra - un peu de sécurité:

  • Mise à jour de votre VM

  • Firewall - UFW enable port 80 443 22 950 951

  • Création d'un utilisateur "avax"

  • Ajout de l'utilisateur "avax" dans le groupe sudo

  • Désactivation du compte root pour s'y connecter en SSH

  • Création d'une clé ed25519 pour le compte "avax" (+ création mdp complexe de secours)

  • Connection en SSH via clé

  • Sauvegarde des informations d'identité de votre Node

  • Stockage des informations sensibles de votre VM dans un keepass

Pour mettre en place ces quelques points, rendez vous ici:

pageExtra: Un peu de sécurité

Partie 3: Déployer votre Node Avalanche

Vous avez accès à votre machine virtuelle et vous en avez sécurisé l'accès à distance? Vous pouvez maintenant passer à l'installation de votre Node Avalanche. Pour cela, il existe plusieurs façons de faire:

  • Télécharger les sources directement sur Github (cette partie est considérée comme plus avancée).

  • Télécharger les binairies et executer le node depuis les binaries (que nous allons faire).

Les binaries du Node

Pour télécharger les binaries, rendez vous dans les releases avalanche go sur Github: ici Nous allons télécharger la dernière version disponible sur cette page:

2 informations de ce screenshot nous intéressent:

  • last release, qui nous informe que cette version "Apricot Phase 2 - Patch 7" est la dernière version du node avalanche actuellement. C'est donc celle ci que nous devons télécharger.

  • avalanchego-linux-amd64-v1.4.7.tar.gz, qui est l'archive du package compatible avec notre VM. Nous devrons décompresser cette archive pour pouvoir utiliser le package du Node.

Pour télécharger l'archive du package, nous allons copier son URL et la coller dans le terminal de notre VM pour pouvoir la télécharger directement sur notre VM.

Pour copier l'adresse du lien du package, faites comme ceci:

Ensuite, depuis le terminal de votre VM:

  • Assurez vous d'être dans votre home: cd ~

  • Effectuez la commande wget pour coller le lien précédemment copié et ainsi télécharger l'archive du package: wget https://github.com/ava-labs/avalanchego/releases/download/v1.4.7/avalanchego-linux-amd64-v1.4.7.tar.gz

  • Décompressez l'archive précédemment téléchargée: tar -xvf avalanchego-linux-amd64-v1.4.7.tar.gz

  • Accédez au dossier du package de l'archive que vous venez de décompresser: cd avalanchego-v1.4.7

Lancer le bootstrap de votre Node Avalanche

Le bootstrap est l'initialisation de votre node et donc la récupération de la base de donnée de la blockchain Avalanche. Cette récupération peut être longue (plusieurs dizaines d'heures), alors pas de panique si elle ne se termine pas rapidement.

Précédemment dans le tuto, vous êtiez dans le dossier du binairies (vous pouvez y retourner avec la commande cd ~/avalanchego-v1.4.7 si vous n'y êtes plus). Vous pouvez maintenant lancer le bootstrap de votre Node via la commande: ./avalanchego --public-ip=8.8.8.8 (N'oubliez pas de changer l'IP donnée ici en exemple par votre l'IP Publique de votre VM)

Il est recommandé d'utiliser "screen" pour lancer votre node en tache de fond. Cette méthode est peu fiable en cas de défaillance du node pour le redémarrage de celui ci et son monitoring, mais est acceptable pour une utilisation "débutant".

pageExtra: Utilisation de Screen

Vous avez lancé votre noeud avec la commande./avalanchego --public-ip=8.8.8.8 ? Mais est ce que votre noeud a fini de bootstrap? Pour le savoir il suffit de lancer la commande suivante:

curl -X POST --data '{
    "jsonrpc":"2.0",
    "id"     :1,
    "method" :"info.isBootstrapped",
    "params": {
        "chain":"X"
    }
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/info

Si la réponse contient "true" comme ci dessous, votre Node a terminé de Bootstrap et est maintenant fonctionnel. Si la réponse contient "false", votre noeud est toujours en train de bootstrap.

{
    "jsonrpc": "2.0",
    "result": {
        "isBootstrapped": true
    },
    "id": 1
}

D'autres informations peuvent être demandées à votre node. La commande "info.getNodeID" vous permet par exemple de connaitre l'ID de votre Node (ex: NodeID-5mb46qkSBj81k9g9e4VFjGGSbaaSLFRzD). La documentation officielle d'Avalanche pourra vous aider à trouver votre bonheur: https://docs.avax.network/build/avalanchego-apis/info-api.

Partie 4: Mettre à jour votre Node

Votre node avalanche tourne, son bootstrap est terminé et une nouvelle mise à jour est disponible? Il vous faut mettre celui ci à jour !

Il est recommandé de garder votre node à jour le plus possible. En plus d'offrir les dernières mises à jour de sécurité et de performance, certaines mises à jour peuvent exclure les nodes qui ne suivent pas le rythme... Donc restez attentifs ! Les annonces peuvent être suivies sur le Telegram d'Avalanche.

Pour mettre à jour votre node, il suffit d'arrêter votre noeud et de télécharger la dernière archive, l'extraire et lancer à nouveau votre noeud. En somme, refaire les étapes de la Partie 3, comme si vous lanciez un nouveau node.

Mise en situation

Je possède un node en 1.4.6 et la mise à jour 1.4.7 vient de sortir. J'arrête mon node avec la commande ctrl + c Il me faut télécharger la dernière version, la décompresser, accéder au nouveau dossier et lancer le node dans sa nouvelle version. Voici la suite de commandes à effectuer:

cd ~ && \
wget https://github.com/ava-labs/avalanchego/releases/download/v1.6.5/avalanchego-linux-amd64-v1.6.5.tar.gz && \
tar -xvf avalanchego-linux-amd64-v1.6.5.tar.gz && \
cd avalanchego-v1.6.5 && \
./avalanchego --public-ip=8.8.8.8 #IP Publique à adapter

Vous avez des questions / suggestions?

Je suis disponible sur Twitter, n'hésitez pas à me follow.

Vous avez aimé cet article?

Si cet article vous a été utile et que vous souhaitez me remercier, vous pouvez effectuer un don a cette adresse C-Chain: 0x3e2d6dce444e52e15d28d9013196bb99cb0fcdd1

Dernière mise à jour