Configuration du Smartnode avec Docker (recommandé)

Docker est une plateforme ouverte qui vous permet de déployer rapidement et facilement des applications fonctionnant dans des conteneurs sur une virtualisation au niveau du système d’exploitation. Toutes les dépendances et l’application elle-même sont prêtes à être exécutées dans le conteneur. Il vous suffit donc d’installer Docker et Docker-compose, de créer un fichier de configuration et de démarrer le conteneur.

L’image Docker présentée dans ce guide est construite et maintenue par le développeur principal de Raptoreums, Tri Nguyen. Tri a également créé un script de contrôle de santé amélioré qui vérifie que votre daemon Smartnodes (raptoreumd) est sain et fonctionne. S’il ne l’est pas, il tentera de le redémarrer, et pourra même réinitialiser les données de la blockchain pour vous si nécessaire.

La facilité d’installation et l’amélioration du contrôle de santé en font la méthode recommandée pour installer et faire fonctionner un Smartnode Raptoreum.

Note : Ce guide suppose que vous utilisez Ubuntu 20 / 22, si vous utilisez un autre OS, vous devrez peut-être ajuster les commandes.

 

Ce dont vous avez besoin #

  • Un bon VPS avec un minimum de 4 Go de RAM, deux cœurs de CPU et 50 Go d’espace disque. Contabo n’est pas recommandé car leur performance instable et lente fait que les Smartnodes sont souvent bannis. Hetzner n’est pas non plus recommandé, car ils sont anti-blockchain et peuvent suspendre votre service s’ils découvrent que vous exécutez un logiciel lié à la blockchain.
  • Ubuntu 20 / 22 est recommandé comme système d’exploitation pour votre VPS.
  • Un moyen de se connecter à votre VPS avec SSH, tel que Putty.
  • 1,8 million de RTM pour la garantie. Vous pouvez voir où acheter les RTM sur le site Web Comment acheter des RTM
  • Un wallet local entièrement synchronisé wallet Raptoreumcore.
  • Environ une demi-heure de votre temps.

 

Note : Si vous rencontrez des problèmes et avez besoin d’aide, n’hésitez pas à vous rendre sur le Discord Raptoreum et demander de l’aide dans le canal #smartnode.

 

Préparation au VPS #

Il y a quelques étapes que nous devons prendre pour préparer le VPS pour exécuter un Smartnode, il est temps de se connecter avec SSH ! Vous devriez être connecté en tant que root, si votre fournisseur ne vous donne qu’un utilisateur sudo, vous pouvez changer en root une fois connecté en faisant :

sudo su

Une fois connecté, suivez les étapes suivantes :

Mettre à jour le système d’exploitation #

Exécutez cette commande :

apt update && apt upgrade -y

Exigences d’installation :

apt install docker docker-compose fail2ban iptables-persistent -y

Ajouter SWAP : (si votre VPS manque de RAM, le système d’exploitation peut utiliser SWAP comme solution de repli et empêcher raptoreumd d’être tué).

dd if=/dev/zero of=/swapfile bs=1k count=4096k
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile       swap    swap    auto      0       0" | tee -a /etc/fstab
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | tee -a /etc/sysctl.conf

Ce qui se passe dans ce bloc de commandes, ligne par ligne :

  • Un espace de 4 Go pour le fichier de swap est créé en utilisant dd.
  • Les permissions correctes sont définies.
  • Swapfile est configuré.
  • swapfile est activé comme swap
  • swap est ajouté à /etc/fstab afin qu’il soit disponible après les redémarrages.
  • Il est demandé au système d’exploitation d’utiliser SWAP uniquement si nécessaire (session en cours et supprimé au redémarrage).
  • On dit au système d’exploitation d’utiliser SWAP seulement si nécessaire (même après un redémarrage).

Vérifier l’UFW et configurer IPtables #

UFW est un système de gestion simplifié d’IPtables. Nous devons le supprimer s’il est actif car Docker ne joue pas bien avec lui. A la place, nous allons utiliser iptables directement. Vérifiez si l’UFW est installé :

ufw status

Si cette commande retourne active ou inactive, désinstallez UFW :

apt remove ufw

Configurer les règles iptables :

iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -p tcp --dport 10226 -j ACCEPT
netfilter-persistent save

Les parties clés de ces commandes :

  • Le port 22 est autorisé, nécessaire pour vos connexions SSH.
  • Le port 10226 est autorisé, nécessaire pour raptoreumd.
  • Les règles iptables sont sauvegardées et persistent à travers les redémarrages.

Configurer Fail2Ban #

Fail2Ban surveille les tentatives de connexion et bannit les IP qui échouent un nombre X de fois, nous le réglerons pour qu’il soit banni après 3 tentatives ratées. Ceci est nécessaire pour empêcher les attaques par force brute sur votre service SSH.

nano /etc/fail2ban/jail.local

Copiez et collez dans ce bloc :

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Configuration de Docker-Compose #

Nous devons créer un répertoire docker-compose et un fichier de configuration, ceci définit les configurations du conteneur et de raptoreum.conf :

cd ~
mkdir docker-rtm
wget https://docs.raptoreum.com/wp-content/uploads/2023/02/docker-compose.yml

Vous éditerez le fichier docker-compose.yml plus loin dans ce document. Redémarrez votre VPS :

reboot

 

Configuration de la garantie et de la commande ProTX #

 

Cette section suppose que vous avez déjà installé et synchronisé Raptoreumcore comme indiqué au début de ce guide.
  • Créer une nouvelle adresse de réception – onglet Réception > Demander un paiement. C’est une bonne idée de l’étiqueter également pour que vous sachiez qu’il s’agit de l’adresse de votre nœud collatéral. Exemple : smartnode-01.
  • Envoyez 1,8 million de RTM à l’adresse que vous venez de créer, tout doit se faire en un seul envoi.
  • Allez dans l’onglet Transactions, double-cliquez sur la transaction et enregistrez l’ID de la transaction et l’index de sortie :

 

Construire la commande protx quick_setup #

La commande protx quick_setup enregistrera votre nœud sur le réseau.

Voici un exemple de commande protx quick_setup :

protx quick_setup "c4bbcde9771668fa640c263d4b964f688b0f039f7b684e715d92e4012369fea6" "1" "194.113.73.87:10226" "RFbWv94ZfueciwVVpHLMdqFayaXAS4sBxP"

La structure de gauche à droite est :

  • Transaction Id – Remplacez-la par la vôtre.
  • Indice de garantie – Modifier si nécessaire.
  • L’IP et le port de votre serveur Smartnode – Remplacez l’exemple IP par l’IP de votre serveur Smartnode, laissez le port tel quel.
  • Adresse de paiement – Il s’agit de toute adresse de votre portefeuille contenant suffisamment de RTM pour payer les frais (il ne peut s’agir de l’adresse à laquelle vous avez envoyé les 1,8 million de RTM). Lorsque vous entrez dans la commande protx quick_setup, il s’agit d’une transaction et elle doit être payée. C’est une très petite quantité 1/2 un RTM est plus que suffisant. Dans la console de débogage, faites « listaddressbalances » pour afficher toutes les adresses avec un solde, choisissez-en une et remplacez l’adresse dans la commande d’exemple.

Cette commande est émise dans Tools > Debug Console. Allez-y et lancez la commande, si elle réussit, vous verrez qu’elle renvoie un bloc de données. Il y a deux choses que vous devez enregistrer ici :

1.) Le « secret de l’opérateur ».

2.) Le hachage de la transaction Protx.

Terminez la configuration de votre VPS #

Vous devez effectuer quatre changements dans le fichier docker-compose.yml, vous connecter avec SSH et faire :

cd docker-rtm && nano docker-compose.yml

Modifiez les trois lignes suivantes :

1.) PROTX_HASH : « ajoutez le hachage du protx ici ».

2.) rpcuser=changeme (changer)

3.)rpcpassword=changeme (changez-le)

4.) externalip=1.2.3.4 (mettez l’IP de votre VPS ici)

Une fois fait, enregistrez et quittez (cntrl + x). Maintenant, démarrez docker-compose :

docker-compose up -d

C’est à peu près tout, docker s’occupe de l’amorçage et du démarrage du nœud. En fonction de l’ancienneté du bootstrap, la synchronisation et le démarrage peuvent prendre entre 10 minutes et une heure. Comme raptoreumd vit dans docker, vous ne pouvez pas lui « parler » directement avec raptoreum-cli. Au lieu de cela, vos commandes ressembleront à :

docker exec -it smart_raptoreum_node raptoreum-cli --conf=/raptoreum/.raptoreumcore/raptoreum.conf getmininginfo

Une fois que votre Smartnode est synchronisé, la commande ci-dessus reviendra :

Ready Ready