Faire Tourner Votre Propre Nœud Mostro

Mostro v0.16.3 — Guide de la Communauté · Février 2026

1. Qu'est-ce que Mostro et pourquoi votre communauté devrait en faire tourner un ?

Mostro est un exchange peer-to-peer de Bitcoin qui permet aux gens d'acheter et de vendre du Bitcoin en utilisant des monnaies locales (dollars, euros, francs — n'importe quelle devise) sans avoir à fournir de pièce d'identité (KYC). Pensez-y comme un marché décentralisé où acheteurs et vendeurs peuvent échanger directement.

Il fonctionne grâce à deux technologies :

Mostro agit comme un coordinateur de séquestre — il retient le Bitcoin du vendeur dans un « coffre-fort » temporaire (appelé hold invoice) jusqu'à ce que l'acheteur confirme avoir envoyé le paiement en monnaie locale. Mostro ne contrôle jamais réellement les fonds de quiconque ; il les retient brièvement pendant la transaction.

Pourquoi votre communauté voudrait-elle faire tourner un nœud Mostro ?

  1. Revenus de frais — Chaque transaction vous rapporte des frais (0.6% par défaut). Si votre communauté réalise 10 000 $ de transactions mensuelles, cela représente environ 60 $/mois en frais.
  2. Trading P2P sans KYC — Les membres de votre communauté peuvent acheter et vendre du Bitcoin sans fournir de pièce d'identité. Particulièrement important dans les régions aux monnaies instables ou aux réglementations restrictives.
  3. Litiges dans votre langue — Quand une transaction tourne mal, votre communauté la résout, dans votre langue, en comprenant vos méthodes de paiement locales.
  4. Indépendance — Aucune entreprise ne peut fermer votre exchange. Aucun gouvernement ne peut faire pression sur un opérateur unique pour le faire fermer.
  5. Personnalisation — Vous choisissez quelles devises supporter, quelles méthodes de paiement autoriser et quels frais facturer.

Comment fonctionne Mostro (Simplifié)

1. Alice veut VENDRE du Bitcoin pour 50 $ USD Elle crée un ordre sur Mostro
2. Bob veut ACHETER du Bitcoin avec 50 $ USD Il voit l'ordre d'Alice et le prend
3. Mostro crée un « coffre-fort » (hold invoice) Alice envoie ses Bitcoin dans le coffre-fort
4. Bob envoie 50 $ à Alice par virement bancaire, Zelle, espèces, etc. Bob appuie sur « Fiat Envoyé » dans son app
5. Alice confirme qu'elle a reçu les 50 $ Elle appuie sur « Libérer »
6. Mostro libère les Bitcoin du coffre-fort vers Bob Transaction terminée ! ✓

Si quelque chose tourne mal (ex : Bob dit qu'il a payé mais Alice n'a pas reçu), l'une ou l'autre partie peut ouvrir un litige, et les arbitres désignés de votre communauté enquêtent et résolvent le problème.

2. Prérequis — Ce dont vous avez besoin avant de commencer

2.1 Un Serveur (VPS)

Un VPS (Serveur Privé Virtuel) est un ordinateur dans un centre de données qui fonctionne 24h/24 et 7j/7. Vous en louerez un pour héberger votre nœud Mostro.

Spécifications minimales :

RessourceMinimumRecommandé
CPU2 vCPUs (partagés)2+ vCPUs
RAM2 Go4 Go
Stockage60 Go SSD100 Go SSD
Bande passante3 To/mois3+ To/mois
OSUbuntu 22.04+ LTSUbuntu 24.04 LTS

Coût mensuel estimé : 10–24 $/mois.

Fournisseurs VPS populaires :

💡 Conseil

De nombreux fournisseurs de VPS acceptent les paiements en Bitcoin. Recherchez cette option si vous souhaitez rester cohérent avec la philosophie Bitcoin.

Vous devez être à l'aise pour vous connecter à un serveur par SSH. Si vous ne l'avez jamais fait, cherchez un tutoriel « Se connecter en SSH à un VPS » — c'est plus simple qu'il n'y paraît.

2.2 Un Nœud Lightning Network (LND)

Lightning Network est un système « couche 2 » construit sur Bitcoin qui permet des paiements rapides et peu coûteux. Pour faire tourner Mostro, vous avez besoin d'un nœud LND (Lightning Network Daemon) — le logiciel Lightning spécifique avec lequel Mostro fonctionne.

Vos options :

OptionDifficultéCoûtNotes
Utiliser un nœud LND existantFacileGratuit (si vous en avez un)Idéal si quelqu'un en a déjà un
Faire tourner LND sur le même VPSDifficileMême VPS + liquiditéNécessite un VPS avec 4 Go+ de RAM
Solution nœud-en-boîteMoyen200–600 $ + liquiditéStart9, Umbrel, RaspiBlitz
StartOS avec le paquet MostroPlus facile300–600 $ + liquiditéStart9 dispose d'un paquet Mostro en un clic
Utiliser Voltage.cloudFacileÀ partir d'environ 20 $/mois + liquiditéVoltage — LND hébergé avec infrastructure gérée
⚠️ Important

Mostro requiert spécifiquement LND (pas CLN/Core Lightning, pas Eclair, pas LDK). Assurez-vous que votre nœud Lightning fait tourner LND.

Ce dont vous avez besoin de votre nœud LND :

2.3 Liquidité Lightning

Pour faciliter les transactions, votre nœud Lightning a besoin de canaux avec du Bitcoin dedans. Pensez aux canaux Lightning comme des tunnels de paiement pré-financés. Le Bitcoin dans ces canaux est votre « liquidité ».

Combien en faut-il ?

Volume de trading viséLiquidité suggéréeBTC approximatif
Petite communauté (quelques transactions/jour)1–5 millions de sats0.01–0.05 BTC
Communauté moyenne5–20 millions de sats0.05–0.20 BTC
Communauté active20–100 millions de sats0.20–1.0 BTC
💡 Note sur la Liquidité Lightning

Le Bitcoin dans vos canaux Lightning est bloqué onchain mais reste hautement dépensable via le Lightning Network. De nombreux services acceptent les paiements Lightning — des cafés aux fournisseurs VPS — rendant votre liquidité assez flexible pour un usage quotidien.

Commencez petit, grandissez progressivement. Commencez avec suffisamment pour les besoins initiaux de votre communauté et surveillez les retours. Quand les traders signalent que les ordres échouent par manque de capacité, c'est votre signal pour en ajouter. Écoutez votre communauté.

Obtenir de la liquidité :

2.4 Clés Nostr

Votre nœud Mostro a besoin de sa propre identité sur le réseau Nostr — une paire de clés cryptographiques avec une clé publique (l'adresse de votre nœud) et une clé privée (votre secret).

⚠️ Important

Ne réutilisez jamais des clés Nostr entre instances de Mostro. Chaque nœud a besoin de sa propre identité unique.

Générer des clés Nostr sécurisées localement avec rana :

# Installer Rust (si pas déjà installé)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

# Installer rana - générateur local de clés Nostr
cargo install rana

# Générer une nouvelle paire de clés (avec phrase mnémonique de 12 mots)
rana --generate 12

Rana générera votre clé privée (nsec), votre clé publique (npub) et une phrase mnémonique de sauvegarde. Conservez le tout en lieu sûr ! Note : lancer rana sans arguments démarre le minage PoW (difficulté 10) qui peut prendre plusieurs minutes — utilisez --generate pour une génération instantanée. Ne générez jamais de clés importantes via des services en ligne.

2.5 Niveau de connaissances techniques

TâcheDifficultéConnaissances requises
Louer un VPSFacileCarte bancaire, navigation web basique
Se connecter en SSHFacileSuivre des instructions, taper des commandes
Installer DockerMoyenCopier-coller des commandes, dépannage basique
Faire tourner Mostro (Docker)MoyenÉditer des fichiers de configuration, comprendre les chemins
Faire tourner Mostro (natif)DifficileAdministration Linux, compilation de logiciels, systemd
Configurer LND depuis zéroDifficileConnaissances significatives en Linux et réseaux
Gérer la liquidité LightningDifficileComprendre l'économie des canaux Lightning

💡 Notre recommandation : Si votre communauté compte quelqu'un à l'aise avec la ligne de commande Linux, il peut gérer l'installation avec Docker. La compilation native nécessite de l'expérience en administration système. La configuration du nœud Lightning est la partie la plus complexe — envisagez de demander l'aide de quelqu'un d'expérimenté, ou d'utiliser une solution nœud-en-boîte.

3. Installation Pas à Pas

Toutes les options d'installation partagent les mêmes premières étapes. Choisissez ensuite l'option qui vous convient :

Toutes supposent que vous avez déjà : ✅ Un VPS avec Ubuntu · ✅ Un accès SSH · ✅ Un nœud LND fonctionnel.

Étapes Communes (pour les 3 options)

Étape 1 : Connectez-vous à votre VPS

ssh root@VOTRE_ADRESSE_IP_VPS

Étape 2 : Mettez à jour le système

# Télécharger les dernières informations de paquets
apt update

# Installer toutes les mises à jour disponibles
apt upgrade -y

Étape 3 : Installer Docker et Docker Compose

💡 Note

Docker est nécessaire pour les options A et B. Si vous compilez manuellement (Option C), vous pouvez sauter cette étape.

# Installer Docker avec le script officiel
curl -fsSL https://get.docker.com | sh

# Vérifier que Docker est installé
docker --version

# Vérifier Docker Compose
docker compose version

Étape 4 : Installer les outils supplémentaires

apt install -y git make

Étapes communes terminées. Choisissez maintenant votre option d'installation :

Option A : Docker Hub (La plus rapide — Recommandée)

Lancez Mostro directement depuis Docker Hub sans cloner le dépôt ni compiler. Parfait pour les déploiements sur VPS.

Étape 5 : Créer le répertoire de configuration

mkdir -p ~/mostro-config/lnd

Étape 6 : Obtenir le modèle de configuration

curl -sL https://raw.githubusercontent.com/MostroP2P/mostro/v0.16.3/settings.tpl.toml \
  -o ~/mostro-config/settings.toml

Étape 7 : Copier les identifiants LND

cp /chemin/vers/votre/tls.cert ~/mostro-config/lnd/tls.cert
cp /chemin/vers/votre/admin.macaroon ~/mostro-config/lnd/admin.macaroon

Si LND est sur la même machine, les chemins typiques sont :

Étape 8 : Modifier la configuration

nano ~/mostro-config/settings.toml

Modifications requises :

[lightning]
lnd_cert_file = '/config/lnd/tls.cert'
lnd_macaroon_file = '/config/lnd/admin.macaroon'
lnd_grpc_host = 'https://host.docker.internal:10009'  # Si LND sur le même VPS
# Ou utiliser 'https://VOTRE_IP_LND:10009' si LND sur un serveur différent

[database]
url = "sqlite:///config/mostro.db"

[nostr]
nsec_privkey = 'VOTRE_CLE_NSEC_ICI'
relays = ['wss://relay.mostro.network', 'wss://nos.lol']

[mostro]
fee = 0.006                    # 0.6% de frais par transaction
max_order_amount = 1000000     # Ordre maximum en sats
min_payment_amount = 100       # Ordre minimum en sats
fiat_currencies_accepted = ['USD', 'EUR']  # Vos devises

Enregistrer : Ctrl+X, puis Y, puis Entrée.

Étape 9 : Ajuster les permissions

⚠️ Important

Évitez chmod 777. Utilisez des permissions minimales.

sudo chown -R 1000:1000 ~/mostro-config
chmod 700 ~/mostro-config
chmod 600 ~/mostro-config/settings.toml
chmod 600 ~/mostro-config/lnd/admin.macaroon

Étape 10 : Lancer le conteneur

Si LND est sur le même VPS :

docker run -d --name mostro \
  --restart unless-stopped \
  --add-host=host.docker.internal:host-gateway \
  -v ~/mostro-config:/config \
  mostrop2p/mostro:v0.16.3

Si LND est sur un serveur différent :

docker run -d --name mostro \
  --restart unless-stopped \
  -v ~/mostro-config:/config \
  mostrop2p/mostro:v0.16.3

Étape 11 : Vérifier les logs

docker logs -f mostro

Cherchez ces messages :

💡 Dépannage

Si vous voyez Permission denied (os error 13), réajustez les permissions : chown -R 1000:1000 ~/mostro-config et redémarrez : docker restart mostro.

🎉 Félicitations ! Si vous voyez des connexions réussies dans les logs, votre nœud Mostro fonctionne !

Mise à jour (Docker Hub)

export MOSTRO_TAG=v0.16.3
docker pull mostrop2p/mostro:$MOSTRO_TAG
docker stop mostro
docker rm mostro
docker run -d --name mostro \
  --restart unless-stopped \
  --add-host=host.docker.internal:host-gateway \
  -v ~/mostro-config:/config \
  mostrop2p/mostro:$MOSTRO_TAG
🔒 Note de Sécurité

Utilisez toujours un tag de version spécifique (ex. mostrop2p/mostro:v0.16.3) au lieu de :latest pour contrôler les déploiements.

Option B : Docker Build (Construire l'image localement)

Étape 5 : Télécharger Mostro

cd /opt
git clone https://github.com/MostroP2P/mostro.git
cd mostro

Étape 6 : Configurer les fichiers

cd docker
mkdir -p config
cp ../settings.tpl.toml config/settings.toml

Étape 7 : Modifier le fichier de configuration

nano config/settings.toml

Modifiez les mêmes paramètres que dans l'Option A, Étape 8.

Étape 8 : Construire l'image Docker

cd ..
LND_CERT_FILE=/root/.lnd/tls.cert \
LND_MACAROON_FILE=/root/.lnd/data/chain/bitcoin/mainnet/admin.macaroon \
make docker-build

Étape 9 : Démarrer Mostro

make docker-up

# Vérifier
docker compose -f docker/compose.yml ps

# Voir les logs
docker compose -f docker/compose.yml logs -f mostro

🎉 Félicitations ! Si vous voyez des connexions réussies, votre nœud Mostro fonctionne !

Option C : Compilation Native (Pour opérateurs techniques)

Étape 5 : Installer Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source /root/.cargo/env
rustc --version
cargo --version
⚠️ Important

N'installez PAS Rust via apt install rustc. Utilisez toujours rustup. Le paquet système est souvent obsolète.

Étape 6 : Installer les dépendances de compilation

apt install -y cmake build-essential libsqlite3-dev libssl-dev \
  pkg-config git sqlite3 protobuf-compiler

Étape 7 : Télécharger et compiler Mostro

cd /opt
git clone https://github.com/MostroP2P/mostro.git
cd mostro
cargo build --release
💡 Conseil

Si la compilation échoue par manque de RAM, ajoutez de l'espace swap :

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

Étapes 8–10 : Installer, initialiser et nettoyer

install target/release/mostrod /usr/local/bin
cargo install sqlx-cli --version 0.6.3
./init_db.sh
cargo clean  # Économise 2+ Go d'espace

Étapes 11–12 : Créer un utilisateur et configurer

adduser --disabled-login mostro
mkdir -p /opt/mostro
cp settings.tpl.toml /opt/mostro/settings.toml
nano /opt/mostro/settings.toml

Modifiez les mêmes paramètres que dans l'Option A, Étape 8.

Étapes 13–15 : Test, permissions et service systemd

# Test d'exécution
/usr/local/bin/mostrod -d /opt/mostro

# Définir les permissions
chown -R mostro:mostro /opt/mostro

Créer le service systemd :

# /etc/systemd/system/mostro.service
[Unit]
Description=Mostro daemon
After=network.target

[Service]
Type=simple
User=mostro
WorkingDirectory=/home/mostro
Environment=RUST_LOG=info
ExecStart=/usr/local/bin/mostrod -d /opt/mostro
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable mostro.service
systemctl start mostro.service
systemctl status mostro.service

🎉 Félicitations ! Votre nœud Mostro tourne en tant que service système.

4. Configuration en Détail

Le fichier settings.toml contrôle tout sur votre nœud Mostro.

4.1 Clés Nostr — L'identité de votre nœud

[nostr]
nsec_privkey = 'VOTRE_CLE_NSEC'
relays = [
  'wss://relay.mostro.network',
  'wss://nos.lol',
  'wss://relay.nostr.band'
]

Quels relays utiliser ?

💡 Conseil

Vous pouvez aussi faire tourner votre propre relay Nostr à côté de Mostro (l'installation Docker en inclut un par défaut).

4.2 Frais — Comment vous générez des revenus

[mostro]
fee = 0.006
dev_fee_percentage = 0.30

Frais de transaction (fee) : Pourcentage prélevé par transaction, réparti entre acheteur et vendeur.

Exemple : Sur une transaction de 100 000 sats avec fee = 0.006 : L'acheteur paie 300 sats, le vendeur paie 300 sats, votre nœud gagne 600 sats au total.

Frais de développement (dev_fee_percentage) : Un pourcentage de vos revenus de frais qui va au développement de Mostro.

📝 Note

Définir dev_fee_percentage en dessous de 0.10 empêchera Mostro de démarrer. Ce minimum assure un financement durable du développement.

4.3 Limites d'ordres et devises

[mostro]
max_order_amount = 1000000
min_payment_amount = 100
fiat_currencies_accepted = ['USD', 'EUR', 'ARS', 'CUP']

4.4 Profil du nœud (Optionnel mais recommandé)

[mostro]
name = "LatAm Mostro"
about = "Exchange P2P de Bitcoin pour l'Amérique latine. Support en espagnol."
picture = "https://exemple.com/votre-logo.png"
website = "https://site-de-votre-communaute.com"

Ceux-ci configurent le profil de votre Mostro sur Nostr (NIP-01 kind 0 metadata). Les clients affichent ces informations pour que les utilisateurs sachent sur quel Mostro ils échangent.

4.5 Délais et expiration

[mostro]
expiration_hours = 24        # Durée pendant laquelle un ordre reste ouvert
expiration_seconds = 900     # Temps pour compléter (15 min)
hold_invoice_expiration_window = 300  # Validité de la hold invoice (5 min)

4.6 Anti-Spam

[mostro]
pow = 0  # 0 = désactivé ; 10-20 = modéré. Commencez avec 0.

4.7 Interface RPC Admin (Optionnel)

[rpc]
enabled = false
listen_address = "127.0.0.1"
port = 50051

Activez-la pour les outils d'administration comme MostriX (interface de terminal) pour la résolution des litiges.

⚠️ Sécurité

Si vous activez RPC, gardez listen_address à "127.0.0.1" (localhost uniquement). N'exposez jamais ceci à internet.

5. Exploitation de Votre Nœud Mostro

5.1 Comment fonctionnent les litiges

Les litiges sont votre responsabilité opérationnelle la plus importante.

Quand les litiges surviennent-ils ?

Le processus de litige :

  1. L'utilisateur ouvre un litige — L'une des parties clique sur « Litige » dans le client
  2. Mostro marque l'ordre — Le statut passe à « Litige », les fonds restent bloqués
  3. L'arbitre prend le cas — Un admin assigné à votre nœud enquête
  4. Investigation — Communication avec les deux parties, demande de preuves
  5. Résolution — L'arbitre décide : libérer vers l'acheteur, ou rembourser le vendeur
⚠️ Important

Choisissez vos arbitres avec soin. Ils ont le pouvoir de décider où vont les fonds bloqués. Choisissez des membres de confiance et impartiaux de la communauté. 2-3 arbitres sont recommandés.

5.2 Mostrix — Votre outil d'administration

Mostrix est un client basé sur le terminal (TUI) pour la résolution des litiges. Si vous faites tourner un nœud Mostro, vous avez besoin de Mostrix.

Option A : Télécharger le binaire pré-compilé (Recommandé)

Téléchargez la dernière version pour votre plateforme depuis GitHub Releases :

# Linux (x86_64)
wget https://github.com/MostroP2P/mostrix/releases/latest/download/mostrix-x86_64-unknown-linux-musl
chmod +x mostrix-x86_64-unknown-linux-musl
./mostrix-x86_64-unknown-linux-musl

# Linux (ARM64 / Raspberry Pi 4)
wget https://github.com/MostroP2P/mostrix/releases/latest/download/mostrix-aarch64-unknown-linux-musl
chmod +x mostrix-aarch64-unknown-linux-musl
./mostrix-aarch64-unknown-linux-musl

# Windows
# Téléchargez mostrix-x86_64-pc-windows-gnu.exe depuis la page des releases
🔐 Vérifier la release

Vérifiez toujours la signature du binaire avant de l'exécuter. Téléchargez manifest.txt et les fichiers de signature depuis la release :

# Importer les clés des développeurs (une seule fois)
curl https://raw.githubusercontent.com/MostroP2P/mostrix/main/keys/negrunch.asc | gpg --import
curl https://raw.githubusercontent.com/MostroP2P/mostrix/main/keys/arkanoider.asc | gpg --import

# Télécharger le manifest et les signatures
wget https://github.com/MostroP2P/mostrix/releases/latest/download/manifest.txt
wget https://github.com/MostroP2P/mostrix/releases/latest/download/manifest.txt.sig.negrunch
wget https://github.com/MostroP2P/mostrix/releases/latest/download/manifest.txt.sig.arkanoider

# Vérifier les signatures
gpg --verify manifest.txt.sig.negrunch manifest.txt
gpg --verify manifest.txt.sig.arkanoider manifest.txt

# Vérifier que le checksum correspond
shasum -a 256 mostrix-x86_64-unknown-linux-musl
# Comparez la sortie avec le hash dans manifest.txt

Option B : Compiler depuis le code source

Si vous préférez compiler depuis le code source ou avez besoin d'une plateforme non disponible dans les releases :

# Installer les dépendances (Ubuntu/Debian)
sudo apt install -y cmake build-essential pkg-config

# Installer Rust (si pas déjà installé)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Cloner et compiler
git clone https://github.com/MostroP2P/mostrix.git
cd mostrix
cargo build --release

# Exécuter
./target/release/mostrix

Premier lancement et configuration

Au premier lancement, Mostrix génère automatiquement un fichier ~/.mostrix/settings.toml avec des valeurs par défaut raisonnables, incluant une nouvelle paire de clés Nostr. Votre npub généré sera affiché dans le terminal.

⚠️ Important : Configurez votre pubkey Mostro

La configuration auto-générée utilise la pubkey officielle de Mostro par défaut. Vous devez la changer pour la pubkey de votre propre nœud Mostro :

# Éditer la configuration
nano ~/.mostrix/settings.toml

# Changez cette ligne pour la pubkey de VOTRE nœud Mostro :
mostro_pubkey = "VOTRE_PUBKEY_MOSTRO_HEX"

Pour le mode admin (résolution des litiges), configurez également :

# ~/.mostrix/settings.toml
mostro_pubkey = "VOTRE_PUBKEY_MOSTRO_HEX"
nsec_privkey = "nsec1votre_cle_personnelle"  # Auto-générée au premier lancement
admin_privkey = "nsec1votre_cle_admin"       # Votre clé admin du config Mostro
relays = ["wss://relay.mostro.network"]
currencies_filter = []                        # Vide = afficher toutes les devises
user_mode = "admin"                           # Activer le mode admin

5.3 mostro-watchdog — Notifications de litiges sur Telegram

mostro-watchdog surveille votre nœud Mostro pour les litiges et envoie des alertes instantanées par Telegram. Essentiel pour des temps de réponse rapides.

Option A : Installation automatique (Recommandée)

# Téléchargez et exécutez le script d'installation
curl -fsSL https://raw.githubusercontent.com/MostroP2P/mostro-watchdog/main/install.sh | bash

Option B : Téléchargement manuel du binaire

# Linux x86_64 (Intel/AMD)
curl -LO https://github.com/MostroP2P/mostro-watchdog/releases/latest/download/mostro-watchdog-linux-x86_64
chmod +x mostro-watchdog-linux-x86_64
sudo mv mostro-watchdog-linux-x86_64 /usr/local/bin/mostro-watchdog

# Linux ARM64 (Raspberry Pi, serveurs ARM)
curl -LO https://github.com/MostroP2P/mostro-watchdog/releases/latest/download/mostro-watchdog-linux-aarch64
chmod +x mostro-watchdog-linux-aarch64
sudo mv mostro-watchdog-linux-aarch64 /usr/local/bin/mostro-watchdog

Option C : Compiler depuis les sources

git clone https://github.com/MostroP2P/mostro-watchdog.git
cd mostro-watchdog
cargo build --release
sudo cp target/release/mostro-watchdog /usr/local/bin/

Configuration :

cp config.example.toml config.toml
nano config.toml
[mostro]
pubkey = "VOTRE_PUBKEY_MOSTRO"

[nostr]
relays = ["wss://relay.mostro.network", "wss://nos.lol"]

[telegram]
bot_token = "VOTRE_TOKEN_BOT"
chat_id = "VOTRE_CHAT_ID"
💡 Conseil

Faites tourner mostro-watchdog comme service systemd à côté de votre nœud Mostro pour une surveillance 24h/24 et 7j/7.

5.4 Surveillance de la disponibilité

Votre nœud doit fonctionner 24h/24 et 7j/7.

# Natif
systemctl status mostro.service
journalctl -u mostro -f
journalctl -u mostro | grep -E "(error|warn|connected)" --ignore-case

# Docker Hub (Option A)
docker ps --filter name=mostro
docker logs -f mostro

# Docker Build (Option B)
docker compose -f /opt/mostro/docker/compose.yml ps
docker compose -f /opt/mostro/docker/compose.yml logs -f mostro
💡 Conseil pro

Configurez une surveillance simple avec UptimeRobot (gratuit) ou une tâche cron qui vous alerte si Mostro tombe en panne.

5.5 Mettre à jour Mostro

Docker Hub :

export MOSTRO_TAG=v0.16.3
docker stop mostro
docker rm mostro
docker pull mostrop2p/mostro:$MOSTRO_TAG
docker run -d --name mostro \
  --restart unless-stopped \
  --add-host=host.docker.internal:host-gateway \
  -v ~/mostro-config:/config \
  mostrop2p/mostro:$MOSTRO_TAG

Docker Build :

cd /opt/mostro
git pull origin main
make docker-build
make docker-down
make docker-up

Natif :

cd /opt/mostro
git pull origin main
cargo build --release
install target/release/mostrod /usr/local/bin
cargo clean
cargo install sqlx-cli --version 0.6.3
sqlx migrate run
systemctl restart mostro.service
💡 Conseil

Sauvegardez toujours votre base de données avant de mettre à jour.

5.6 Sauvegardes

Fichiers critiques à sauvegarder : settings.toml (contient votre clé privée Nostr !) et mostro.db (historique des ordres, réputations).

# Sauvegarde manuelle — Docker Hub :
mkdir -p /root/mostro-backups
cp ~/mostro-config/settings.toml /root/mostro-backups/settings.toml.$(date +%Y%m%d)
cp ~/mostro-config/mostro.db /root/mostro-backups/mostro.db.$(date +%Y%m%d)

# Sauvegarde manuelle — Natif :
cp /opt/mostro/settings.toml /root/mostro-backups/settings.toml.$(date +%Y%m%d)
cp /opt/mostro/mostro.db /root/mostro-backups/mostro.db.$(date +%Y%m%d)

Sauvegarde quotidienne automatisée (ajouter au crontab avec crontab -e) :

# Docker Hub (Option A) :
0 3 * * * mkdir -p /root/mostro-backups && cp ~/mostro-config/mostro.db /root/mostro-backups/mostro.db.$(date +\%Y\%m\%d) && cp ~/mostro-config/settings.toml /root/mostro-backups/settings.toml.$(date +\%Y\%m\%d)

# Natif (Option C) / Docker Build (Option B) :
0 3 * * * mkdir -p /root/mostro-backups && cp /opt/mostro/mostro.db /root/mostro-backups/mostro.db.$(date +\%Y\%m\%d) && cp /opt/mostro/settings.toml /root/mostro-backups/settings.toml.$(date +\%Y\%m\%d)
⚠️ Critique

Votre nsec_privkey dans settings.toml EST l'identité de votre nœud. Si vous la perdez, vous perdez votre réputation et tous les utilisateurs doivent se reconnecter à une nouvelle identité. Conservez une copie hors ligne.

5.7 Vérifier l'activité des transactions

# Compter tous les ordres
sqlite3 /chemin/vers/mostro.db "SELECT COUNT(*) FROM orders;"

# Transactions réussies récentes
sqlite3 /chemin/vers/mostro.db "SELECT id, fiat_code, fiat_amount, amount, fee, status, created_at FROM orders WHERE status = 'success' ORDER BY created_at DESC LIMIT 10;"

# Ordres en attente
sqlite3 /chemin/vers/mostro.db "SELECT id, fiat_code, fiat_amount, status, created_at FROM orders WHERE status = 'pending';"

# Revenus totaux en frais (frais du nœud + dev_fee)
sqlite3 /chemin/vers/mostro.db "SELECT SUM(fee) as node_fees, SUM(dev_fee) as dev_fees, SUM(fee + dev_fee) as total_fees_sats FROM orders WHERE status = 'success';"

6. Détail des Coûts

Coûts opérationnels mensuels

PosteCoût mensuelNotes
VPS (serveur)10–24 $Dépend du fournisseur et des spécifications
Nom de domaine (optionnel)1–2 $Pour un site web/identité
Frais onchain des canaux LightningVariableOuverture/fermeture de canaux
Total mensuel11–26 $Hors liquidité Lightning

Coûts uniques / de capital

PosteCoûtNotes
Liquidité Lightning0.01–1.0+ BTCBloqué dans les canaux ; récupéré à la fermeture
Matériel du nœud (si auto-hébergé)0–600 $Gratuit si VPS ; 300-600 $ pour Start9/Umbrel
Temps de configuration4–16 heuresSelon le niveau d'expérience

Potentiel de revenus

Volume mensuelFrais (0.6%)Contribution dev (30%)Revenu net
1 000 $~6 $~1,80 $~4,20 $
10 000 $~60 $~18 $~42 $
50 000 $~300 $~90 $~210 $
100 000 $~600 $~180 $~420 $
📝 Réalité

La plupart des nœuds nouveaux mettent des mois à construire du volume. N'attendez pas de rentabilité immédiate. La vraie valeur vient souvent du service rendu à votre communauté, les frais étant un bonus.

Engagement en temps

TâcheFréquenceTemps
Surveillance (vérifier les logs, le statut)Quotidien5–10 min
Résolution de litigesSelon les besoins15–60 min par litige
Mises à jourMensuel15–30 min
Gestion de la liquiditéHebdomadaire15–30 min
Estimation hebdomadaire totale1–3 heures

7. Questions Fréquentes

Faut-il être développeur pour faire tourner un nœud Mostro ?

Non, mais vous devez être à l'aise avec les opérations basiques en ligne de commande (taper des commandes, éditer des fichiers texte). La voie Docker (Option A) est conçue pour être accessible.

Puis-je faire tourner Mostro sur un Raspberry Pi ?

Techniquement oui (via Start9 ou similaire), mais ce n'est pas recommandé pour la production en raison des limitations de CPU et de RAM. Un VPS est plus fiable.

Puis-je utiliser Core Lightning (CLN) au lieu de LND ?

Non. Mostro ne supporte actuellement que LND, car il dépend de l'implémentation spécifique des hold invoices de LND. Le support d'autres implémentations pourrait arriver à l'avenir.

Comment les utilisateurs se connectent-ils à mon Mostro ?

Les utilisateurs ont besoin d'une application cliente Mostro (comme Mostro Mobile ou mostro-cli) et de la clé publique de votre Mostro (npub). Ils ajoutent votre npub dans leur client, et le client communique via les relays Nostr. Aucune connexion directe n'est nécessaire.

Puis-je faire tourner plusieurs instances de Mostro ?

Oui, mais chacune nécessite sa propre paire de clés Nostr, son nœud LND (ou au moins des canaux/liquidité séparés) et sa configuration.

Est-ce légal ?

Cela dépend beaucoup de votre juridiction. Mostro est un logiciel d'échange peer-to-peer. Dans certaines juridictions, opérer un exchange P2P peut nécessiter des licences. Consultez les réglementations locales et un conseiller juridique.

Quelle bande passante utilise Mostro ?

Très peu — principalement de petits événements Nostr. Quelques Go par mois est typique même avec un volume modéré.

Que se passe-t-il si mon nœud se déconnecte ?

Les ordres en attente finissent par expirer. Les transactions actives avec des fonds bloqués continuent quand vous revenez en ligne. Si vous êtes hors ligne trop longtemps, les utilisateurs peuvent perdre confiance.

Puis-je changer ma clé Nostr après ?

Vous pouvez, mais vous perdrez l'identité et la réputation de votre nœud. Les utilisateurs le verront comme un nouveau Mostro. Traitez votre clé comme votre identité de marque.

Puis-je perdre de l'argent en faisant tourner un nœud Mostro ?

Oui, c'est possible : les fonds dans les canaux Lightning pourraient être à risque à cause de bugs (rare) ; la fermeture forcée de canaux pendant des périodes de frais élevés peut être coûteuse ; les coûts VPS sont continus.

La liquidité Lightning est-elle « à risque » ?

Votre liquidité Lightning est la vôtre. Elle n'est pas en danger à cause de Mostro en soi — les hold invoices sont des blocages temporaires. Cependant, les risques standard du Lightning Network s'appliquent (fermetures forcées, canaux bloqués, bugs).

Quand atteindrai-je le seuil de rentabilité ?

Cela dépend de vos coûts et du volume de transactions. Avec 20 $/mois de coûts et 0.6% de frais, vous avez besoin d'environ 5 000 $/mois en transactions pour couvrir les coûts (avant la contribution au développement). La plupart des communautés mettent 3–6 mois à atteindre un volume significatif.

8. Considérations de Sécurité

⚠️ Avertissement — logiciel en phase précoce

Mostro est en phase précoce de développement. Bien que l'équipe travaille dur pour assurer la fiabilité, des bugs non découverts peuvent exister — y compris des bugs de sécurité pouvant entraîner une perte de fonds. Les développeurs ne sont pas responsables de toute perte d'argent due à des bugs logiciels.

Mostro est open source et son code est ouvert aux audits. Nous encourageons les communautés à promouvoir et financer des audits de sécurité indépendants.

Cela dit, le mécanisme central de séquestre utilisant les hold invoices Lightning a été éprouvé depuis 2021, quand @lnp2pBot a implémenté pour la première fois ce type de séquestre. Des milliers de transactions ont été réalisées avec succès.

Opérer sous des régimes autoritaires

Si vous opérez dans un pays avec un gouvernement autoritaire, la confidentialité n'est pas optionnelle — c'est une exigence de sécurité.

  1. Faites tourner votre nœud Mostro derrière Tor et/ou un VPN. Cela masque l'IP de votre serveur vis-à-vis des relays Nostr.
  2. Si Tor/VPN n'est pas possible (courant dans les pays en développement avec un internet lent), publiez uniquement des événements sur des relays que vous possédez ou en lesquels vous avez confiance.
  3. Soyez très prudent avec les relays que vous utilisez. À l'avenir, les gouvernements pourraient créer des relays Nostr spécifiquement pour collecter des adresses IP.
  4. Pensez également à la confidentialité de votre nœud Lightning. Faire tourner LND derrière Tor est possible et recommandé dans les environnements sensibles.
💡 Conseil

La beauté de Mostro étant décentralisé est que même si un nœud est arrêté, les autres continuent de fonctionner. Mais la prévention est toujours préférable à la guérison. Prenez la confidentialité au sérieux dès le premier jour.

9. Dépannage

Mostro ne démarre pas

« Configuration error: dev_fee_percentage below minimum »

Définissez dev_fee_percentage à au moins 0.10 dans settings.toml.

Fichier de configuration ou base de données introuvable

Assurez-vous que le flag -d pointe vers le répertoire contenant settings.toml. Pour Docker Hub : vérifiez que ~/mostro-config/settings.toml existe.

« Failed to connect to LND »

Problèmes de connexion

Mostro démarre mais ne se connecte pas aux relays

Problèmes de transactions

Les ordres n'apparaissent pas dans les clients

Paiements échouant

Problèmes de base de données

Erreurs de base de données verrouillée

ps aux | grep mostrod
# S'il y a plusieurs processus, supprimez les extras :
kill <PID>

Obtenir de l'aide

  1. Vérifiez les logs d'abord — la plupart des erreurs expliquent ce qui a mal tourné
  2. Telegram (Développeurs) : @mostro_dev
  3. Telegram (Communauté) : @MostroP2P
  4. GitHub Issues : github.com/MostroP2P/mostro/issues
  5. DeepWiki : deepwiki.com/MostroP2P/mostro

Quand vous demandez de l'aide, incluez toujours : votre version de Mostro, les logs pertinents, et ce que vous avez déjà essayé.

Annexe : Référence Rapide

Emplacements importants des fichiers

FichierDocker HubNatif
Configuration~/mostro-config/settings.toml/opt/mostro/settings.toml
Base de données~/mostro-config/mostro.db/opt/mostro/mostro.db
Cert LND~/mostro-config/lnd/tls.certVariable (voir config LND)
Macaroon LND~/mostro-config/lnd/admin.macaroonVariable (voir config LND)
ServiceN/A/etc/systemd/system/mostro.service
Logsdocker logs -f mostrojournalctl -u mostro

Commandes essentielles

# Docker
docker logs -f mostro         # Voir les logs
docker restart mostro          # Redémarrer
docker stop mostro             # Arrêter

# Natif (systemd)
systemctl start mostro         # Démarrer
systemctl stop mostro          # Arrêter
systemctl restart mostro       # Redémarrer
systemctl status mostro        # Voir le statut
journalctl -u mostro -f        # Voir les logs

# Base de données
sqlite3 mostro.db "SELECT COUNT(*) FROM orders;"                           # Total des ordres
sqlite3 mostro.db "SELECT COUNT(*) FROM orders WHERE status='success';"    # Transactions réussies
sqlite3 mostro.db "SELECT SUM(fee + dev_fee) FROM orders WHERE status='success';"  # Total des frais

Configuration recommandée pour les nouveaux nœuds

[mostro]
fee = 0.006
max_order_amount = 500000
min_payment_amount = 1000
expiration_hours = 24
expiration_seconds = 900
pow = 0
dev_fee_percentage = 0.30
fiat_currencies_accepted = ['USD']  # Changez pour votre devise locale

[nostr]
relays = [
  'wss://relay.mostro.network',
  'wss://nos.lol',
  'wss://relay.nostr.band'
]

Ce guide est maintenu par la communauté Mostro. Vous avez trouvé une erreur ou souhaitez l'améliorer ?
Les contributions sont les bienvenues sur github.com/MostroP2P/community

Dernière mise à jour : Février 2026 · Mostro v0.16.3