Ce mémo décrit mon installation d’un noeud Monero sur PC Linux. Il décrit aussi à quoi ce noeud est utilisé et comment.
Un précédent mémo de ce blog décrivait l’installation d’un noeud Monero pour un usage plus limité. Le présent mémo décrit l’installation d’un Noeud privé qui est intégré au réseau public et qui permet de synchroniser ses portefeuilles.
Introduction
Monero est une crypto-monnaie dérivée de Bitcoin mais indépendante de Bitcoin et anonyme et intraçable, contrairement à Bitcoin. Le modèle de Monero est la monnaie fongible comme la monnaie physique (pièces et billets). Sa notoriété est toutefois moindre que celle de Bitcoin.
Ces deux crypto-monnaies ne relèvent d’aucune autorité centralisée, étatique ou autre, ce qui fait tout leur intérêt dans la multitude des cryptos-monnaies existantes. Un autre intérêt est leur notoriété qui va de pair avec une stabilité et une liquidité grandissantes
Un noeud Monero a deux fonctions
- il participe au réseau mondial de la Blockchain Monero ; pour cela il échange avec ses pairs , d’autres noeuds du réseau Monero (P2P)
- il permet la synchronisation des portefeuilles détenus en directs (wallets non custodial) , c’est à dire des portefeuilles sans intermédiaire, banque ou plateforme financière, qui résident dans la Blockchain Monero
La synchronisation consiste à mettre à jour les données de son portefeuille, historique des transactions et solde du portefeuille avec les données de la Blockchain. Sans cette synchronisation il est impossible de réaliser des transaction ou consulter ses données. Il s’agit de « parcourir » les nouveaux éléments de la Blockchain depuis la dernière synchronisation.
Les applications Monero peuvent demander un temps de synchronisation de plusieurs longues minutes ou heures selon la date de la dernière synchronisation, leur « proximité » avec un noeud, la vitesse de transfert etc . D’où l’intérêt de disposer de son propre noeud lui même synchronisé en permanence, une fois la BlockChain téléchargée.
Le téléchargement de la Blockchain Monero est 6 à 7 fois plus rapide avec un SSD qu’avec un disque classique rotatif (HDD); dans le cas SSD il faut quand même compter environ 2 jours suivant la qualité du lien Internet.
Mes équipements
- PC Linux Zorin avec un espace libre de 200 Goctets SSD
- Liaison Internet haut débit (fibre)
Installation
J’ai téléchargé Monero GUI du site de référence getmonero.org. Le paquet installé est un dossier contenant l’application portefeuille et le daemon monerod : c’est ce dernier qui compte pour le noeud.
Il y a ensuite 2 fichiers à créer
1. monerod.conf
# Configuration du nœud Monero
# Répertoire de données
data-dir=/home/marc/.bitmonero
log-file=/home/marc/.bitmonero/bitmonero.log
log-level=0
# Port P2P (18080) - Communication entre nœuds
p2p-bind-ip=0.0.0.0
p2p-bind-port=18080
# Port RPC complet (18081) - Accès avec authentification
rpc-bind-ip=0.0.0.0
rpc-bind-port=18081
rpc-login=XXXX:YYYY
confirm-external-bind=1
# Port RPC restreint (18089) - Accès public sécurisé
restricted-rpc=1
rpc-restricted-bind-ip=0.0.0.0
rpc-restricted-bind-port=18089
# Configuration du nœud
public-node=1
no-igd=1
prune-blockchain=0
sync-pruned-blocks=0
# Limites de connexion
out-peers=64
in-peers=64
limit-rate-up=2048
limit-rate-down=8192
Les paramètres XXXX et YYYY représentent le nom et le mot de passe d’authentification
Le fichier est à placer dans le dossier ~/.bitmonero (à créer préalablement)
2. monerod.service
[Unit]
Description=Monero Node Daemon
After=network.target
[Service]
Type=simple
User=marc
Group=marc
ExecStart=/home/marc/Applications/monero-x86_64-linux-gnu-v0.18.4.2/monerod --config-file=/home/marc/.bitmonero/monerod.conf --non-interactive
Restart=always
RestartSec=30
# Security settings
PrivateTmp=true
NoNewPrivileges=true
# Resource limits
LimitNOFILE=8192
[Install]
WantedBy=multi-user.target
Pour une autre version Monero GUI j’aurai à adapter la ligne ExecStart
Mise en service
#!/bin/bash
# Script d'installation du service monerod
echo "Installation du service monerod..."
# Copier le fichier de service
sudo cp /tmp/monerod.service /etc/systemd/system/
# Recharger systemd
sudo systemctl daemon-reload
# Activer le service au démarrage
sudo systemctl enable monerod
# Démarrer le service
sudo systemctl start monerod
echo "Service installé et démarré !"
echo ""
echo "Commandes utiles :"
echo " sudo systemctl status monerod # Voir le statut"
echo " sudo systemctl stop monerod # Arrêter le service"
echo " sudo systemctl restart monerod # Redémarrer le service"
echo " sudo journalctl -u monerod -f # Voir les logs en temps réel"
Vérification
Tester les connexions (depuis le noeud):
curl --digest -u XXXX:YYYY http://localhost:18081/get_height
curl --digest -u XXXX:YYYY http://localhost:18089/get_height
Tester depuis l'extérieur:
curl --digest -u XXXX:YYYY http://<adresse_IP>:18081/get_height
curl --digest -u XXXX:YYYYC http://<adresse_IP>:18089/get_height
Retour attendu similaire à :
{
"hash": "09e1d87ea856542df755b176f799e46cca2f79e6ad5636748dc8833af6744c17",
"height": 3587863,
"status": "OK",
"untrusted": false
}
Port forwarding
Pour que le noeud soit 100% fonctionnel, j’ai dù associer l’adresse IP sur réseau local (192.168.x.x) aux ports Monero 18080, 18081 et 18089
L’association est à réaliser au niveau du routeur Internet domestique (Livebox Orange chez moi)
Synchronisation de portefeuille
Pour synchroniser un portefeuille Monero avec le Noeud j’ai le choix entre
- l’adresse publique Internet WAN (Ex. node.mondomaine.net) fonctionne depuis n’importe quel endroit
- l’adresse IP du réseau local LAN (192.168.x.x), ne fonctione qu’à la maison mais synchronisation plus rapide
1. Depuis le Noeud Linux
Avec l’App Monero GUI – Dans Réglage–>onglet Noeud on choisit « Noeud local »
2. Depuis un autre PC
Avec l’App Monero GUI – Dans Réglage–>onglet Noeud on choisit « Noeud Distant »
puis on renseigne les paramètres
- adresse IP WAN ou LAN
- login (XXXX:YYYY)
- port (18081 ou 18089),
- Cocher App de confiance.
- Ne pas cocher SSL
3. Depuis un smartphone
Avec l’App CakeWallet (Androïd)
Menu hamburger en haut à droite
puis « Connexion et synchronisation » –> « Gerer les noeurd » –> « Ajouter un nouveau noeud »
- Adresse du noeud : WAN ou LAN
- Port du noeud : 18089
- Utiliser SSL : NON
- Activer pour la commutation automatique : OUI
- Connexion : XXXX
- Mot de passe : YYYY
- de confiance : OUI
Sauvegarder
Dans la liste des noeuds, le nouveau noeud doit passer en vert au bout d’un moment selon l’algorithme de sélection de l’App grace à l’activation de connexion automatique.