Eseguire il Tuo Nodo Mostro

Mostro v0.16.3 — Guida della Comunità · Febbraio 2026

1. Cos'è Mostro e perché la tua comunità dovrebbe eseguirne uno?

Mostro è un exchange peer-to-peer di Bitcoin che permette alle persone di comprare e vendere Bitcoin utilizzando valute locali (dollari, euro, pesos — qualsiasi valuta) senza dover fornire documenti d'identità (KYC). Pensalo come un marketplace decentralizzato dove acquirenti e venditori possono commerciare direttamente.

Funziona utilizzando due tecnologie:

Mostro agisce come un coordinatore di custodia — trattiene i Bitcoin del venditore in una "cassaforte" temporanea (chiamata hold invoice) fino a quando l'acquirente conferma di aver inviato il pagamento in valuta locale. Mostro non controlla mai realmente i fondi di nessuno; li trattiene solo brevemente durante lo scambio.

Perché la tua comunità vorrebbe eseguire un nodo Mostro?

  1. Entrate da commissioni — Ogni operazione ti genera una commissione (0,6% di default). Se la tua comunità fa $10.000 in operazioni mensili, sono ~$60/mese in commissioni.
  2. Trading P2P senza KYC — I membri della tua comunità possono comprare e vendere Bitcoin senza fornire documenti d'identità. Particolarmente importante in regioni con valute instabili o regolamentazioni restrittive.
  3. Dispute nella tua lingua — Quando un'operazione va storta, la tua comunità la risolve, nella tua lingua, comprendendo i tuoi metodi di pagamento locali.
  4. Indipendenza — Nessuna azienda può chiudere il tuo exchange. Nessun governo può fare pressione su un singolo operatore per chiuderlo.
  5. Personalizzazione — Tu scegli quali valute supportare, quali metodi di pagamento consentire e quali commissioni applicare.

Come funziona Mostro (Semplificato)

1. Alice vuole VENDERE Bitcoin per $50 USD Crea un ordine su Mostro
2. Bob vuole COMPRARE Bitcoin con $50 USD Vede l'ordine di Alice e lo prende
3. Mostro crea una "cassaforte" (hold invoice) Alice invia i suoi Bitcoin nella cassaforte
4. Bob invia $50 ad Alice tramite bonifico, Zelle, contanti, ecc. Bob preme "Fiat Inviato" nella sua app
5. Alice conferma di aver ricevuto i $50 Preme "Rilascia"
6. Mostro rilascia i Bitcoin dalla cassaforte a Bob Operazione completata! ✓

Se qualcosa va storto (es: Bob dice di aver pagato ma Alice non ha ricevuto), una delle parti può aprire una disputa, e gli arbitri assegnati della tua comunità indagano e risolvono.

2. Prerequisiti — Cosa ti serve prima di iniziare

2.1 Un Server (VPS)

Un VPS (Virtual Private Server) è un computer in un data center che funziona 24/7. Ne affitterai uno per ospitare il tuo nodo Mostro.

Specifiche minime:

RisorsaMinimoRaccomandato
CPU2 vCPU (condivise)2+ vCPU
RAM2 GB4 GB
Storage60 GB SSD100 GB SSD
Banda3 TB/mese3+ TB/mese
SOUbuntu 22.04+ LTSUbuntu 24.04 LTS

Costo mensile stimato: $10–$24/mese.

Provider VPS popolari:

💡 Consiglio

Molti provider VPS accettano pagamenti in Bitcoin. Cerca questa opzione se vuoi mantenere coerenza con la filosofia Bitcoin.

Devi sentirti a tuo agio nel connetterti a un server tramite SSH. Se non l'hai mai fatto, cerca un tutorial su "Connettersi via SSH a un VPS" — è più semplice di quanto sembri.

2.2 Un Nodo Lightning Network (LND)

Lightning Network è un sistema "layer 2" costruito su Bitcoin che permette pagamenti rapidi e economici. Per eseguire Mostro, hai bisogno di un nodo LND (Lightning Network Daemon) — il software Lightning specifico con cui Mostro lavora.

Le tue opzioni:

OpzioneDifficoltàCostoNote
Usare un nodo LND esistenteFacileGratis (se ne hai uno)Meglio se qualcuno ne ha già uno
Eseguire LND sullo stesso VPSDifficileStesso VPS + liquiditàRichiede VPS con 4GB+ RAM
Soluzione nodo-in-a-boxMedio$200-600 + liquiditàStart9, Umbrel, RaspiBlitz
StartOS con pacchetto MostroPiù facile$300-600 + liquiditàStart9 ha un pacchetto Mostro con un clic
Usare Voltage.cloudFacileDa ~$20/mese + liquiditàVoltage — LND ospitato con infrastruttura gestita
⚠️ Importante

Mostro richiede specificamente LND (non CLN/Core Lightning, non Eclair, non LDK). Assicurati che il tuo nodo Lightning esegua LND.

Cosa ti serve dal tuo nodo LND:

2.3 Liquidità Lightning

Per facilitare le operazioni, il tuo nodo Lightning ha bisogno di canali con Bitcoin al loro interno. Pensa ai canali Lightning come tunnel di pagamento pre-finanziati. I Bitcoin all'interno di questi canali sono la tua "liquidità".

Quanta ne serve?

Volume di trading obiettivoLiquidità suggeritaBTC approssimativi
Comunità piccola (poche operazioni/giorno)1–5 milioni di sat0,01–0,05 BTC
Comunità media5–20 milioni di sat0,05–0,20 BTC
Comunità attiva20–100 milioni di sat0,20–1,0 BTC
💡 Nota sulla Liquidità Lightning

I Bitcoin nei tuoi canali Lightning sono bloccati onchain ma restano altamente spendibili via Lightning Network. Molti servizi accettano pagamenti Lightning — dai bar ai provider VPS — rendendo la tua liquidità piuttosto flessibile per l'uso quotidiano.

Inizia in piccolo, cresci gradualmente. Inizia con quanto basta per le esigenze iniziali della tua comunità e monitora il feedback. Quando i trader segnalano ordini falliti per capacità insufficiente, quello è il tuo segnale per aggiungerne di più. Ascolta la tua comunità.

Ottenere liquidità:

2.4 Chiavi Nostr

Il tuo nodo Mostro ha bisogno della propria identità sulla rete Nostr — una coppia di chiavi crittografiche con una chiave pubblica (l'indirizzo del tuo nodo) e una chiave privata (il tuo segreto).

⚠️ Importante

Non riutilizzare mai le chiavi Nostr tra istanze di Mostro. Ogni nodo ha bisogno della propria identità unica.

Generare chiavi Nostr sicure localmente con rana:

# Installare Rust (se non già installato)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

# Installare rana - generatore locale di chiavi Nostr
cargo install rana

# Generare una nuova coppia di chiavi (con frase seed di 12 parole)
rana --generate 12

Rana genererà la tua chiave privata (nsec), chiave pubblica (npub) e una frase seed di backup. Conserva tutto in modo sicuro! Nota: eseguire rana senza argomenti avvia il mining PoW (difficoltà 10) che può richiedere minuti — usa --generate per la generazione istantanea. Non generare mai chiavi importanti usando servizi online.

2.5 Livello di conoscenza tecnica

AttivitàDifficoltàConoscenze necessarie
Affittare un VPSFacileCarta di credito, navigazione web di base
Connettersi via SSHFacileSeguire istruzioni, digitare comandi
Installare DockerMedioCopiare e incollare comandi, risoluzione problemi di base
Eseguire Mostro (Docker)MedioModificare file di configurazione, capire i percorsi
Eseguire Mostro (nativo)DifficileAmministrazione Linux, compilazione software, systemd
Configurare LND da zeroDifficileConoscenza significativa di Linux e reti
Gestire la liquidità LightningDifficileComprendere l'economia dei canali Lightning

💡 Il nostro consiglio: Se la tua comunità ha qualcuno a proprio agio con la riga di comando Linux, può gestire l'installazione con Docker. La compilazione nativa richiede esperienza di amministrazione di sistema. La configurazione del nodo Lightning è la parte più complessa — considera di chiedere aiuto a qualcuno con esperienza, o di usare una soluzione nodo-in-a-box.

3. Installazione Passo per Passo

Tutte le opzioni di installazione condividono gli stessi primi passaggi. Poi scegli l'opzione che preferisci:

Tutte presuppongono che tu abbia già: ✅ Un VPS con Ubuntu · ✅ Accesso SSH · ✅ Un nodo LND funzionante.

Passaggi Comuni (per tutte e 3 le opzioni)

Passo 1: Connettiti al tuo VPS

ssh root@IL_TUO_INDIRIZZO_IP_VPS

Passo 2: Aggiorna il sistema

# Scaricare le informazioni più recenti sui pacchetti
apt update

# Installare tutti gli aggiornamenti disponibili
apt upgrade -y

Passo 3: Installare Docker e Docker Compose

💡 Nota

Docker è necessario per le opzioni A e B. Se compili manualmente (Opzione C), puoi saltare questo passaggio.

# Installare Docker con lo script ufficiale
curl -fsSL https://get.docker.com | sh

# Verificare che Docker sia installato
docker --version

# Verificare Docker Compose
docker compose version

Passo 4: Installare strumenti aggiuntivi

apt install -y git make

Passaggi comuni completati. Ora scegli la tua opzione di installazione:

Opzione A: Docker Hub (La più veloce — Raccomandata)

Esegui Mostro direttamente da Docker Hub senza clonare il repository o compilare. Perfetto per deployment su VPS.

Passo 5: Creare la directory di configurazione

mkdir -p ~/mostro-config/lnd

Passo 6: Ottenere il template di configurazione

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

Passo 7: Copiare le credenziali LND

cp /percorso/del/tuo/tls.cert ~/mostro-config/lnd/tls.cert
cp /percorso/del/tuo/admin.macaroon ~/mostro-config/lnd/admin.macaroon

Se LND è sulla stessa macchina, i percorsi tipici sono:

Passo 8: Modificare la configurazione

nano ~/mostro-config/settings.toml

Modifiche necessarie:

[lightning]
lnd_cert_file = '/config/lnd/tls.cert'
lnd_macaroon_file = '/config/lnd/admin.macaroon'
lnd_grpc_host = 'https://host.docker.internal:10009'  # Se LND sullo stesso VPS
# O usare 'https://IL_TUO_IP_LND:10009' se LND su server diverso

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

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

[mostro]
fee = 0.006                    # 0,6% commissione per operazione
max_order_amount = 1000000     # Ordine massimo in sat
min_payment_amount = 100       # Ordine minimo in sat
fiat_currencies_accepted = ['USD', 'EUR']  # Le tue valute

Salvare: Ctrl+X, poi Y, poi Invio.

Passo 9: Impostare i permessi

⚠️ Importante

Evita chmod 777. Usa permessi minimi.

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

Passo 10: Eseguire il container

Se LND è sullo stesso 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

Se LND è su un server diverso:

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

Passo 11: Controllare i log

docker logs -f mostro

Cerca questi messaggi:

💡 Risoluzione problemi

Se vedi Permission denied (os error 13), riapplica i permessi: chown -R 1000:1000 ~/mostro-config e riavvia: docker restart mostro.

🎉 Congratulazioni! Se vedi connessioni riuscite nei log, il tuo nodo Mostro è in funzione!

Aggiornamento (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
🔒 Nota di Sicurezza

Usa sempre un tag di versione specifico (es. mostrop2p/mostro:v0.16.3) invece di :latest per controllare i deployment.

Opzione B: Docker Build (Costruire l'immagine localmente)

Passo 5: Scaricare Mostro

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

Passo 6: Configurare i file

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

Passo 7: Modificare il file di configurazione

nano config/settings.toml

Modifica le stesse impostazioni dell'Opzione A, Passo 8.

Passo 8: Costruire l'immagine Docker

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

Passo 9: Avviare Mostro

make docker-up

# Verificare
docker compose -f docker/compose.yml ps

# Vedere i log
docker compose -f docker/compose.yml logs -f mostro

🎉 Congratulazioni! Se vedi connessioni riuscite, il tuo nodo Mostro è in funzione!

Opzione C: Compilazione Nativa (Per operatori tecnici)

Passo 5: Installare Rust

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

NON installare Rust tramite apt install rustc. Usa sempre rustup. Il pacchetto di sistema è spesso obsoleto.

Passo 6: Installare le dipendenze di compilazione

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

Passo 7: Scaricare e compilare Mostro

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

Se la compilazione fallisce per mancanza di RAM, aggiungi spazio swap:

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

Passi 8–10: Installare, inizializzare e pulire

install target/release/mostrod /usr/local/bin
cargo install sqlx-cli --version 0.6.3
./init_db.sh
cargo clean  # Risparmia 2+ GB di spazio

Passi 11–12: Creare utente e configurare

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

Modifica le stesse impostazioni dell'Opzione A, Passo 8.

Passi 13–15: Test, permessi e servizio systemd

# Test di esecuzione
/usr/local/bin/mostrod -d /opt/mostro

# Impostare i permessi
chown -R mostro:mostro /opt/mostro

Creare il servizio 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

🎉 Congratulazioni! Il tuo nodo Mostro è in esecuzione come servizio di sistema.

4. Configurazione in Dettaglio

Il file settings.toml controlla tutto del tuo nodo Mostro.

4.1 Chiavi Nostr — L'identità del tuo nodo

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

Quali relay usare?

💡 Consiglio

Puoi anche eseguire il tuo relay Nostr accanto a Mostro (l'installazione Docker ne include uno di default).

4.2 Commissioni — Come generi entrate

[mostro]
fee = 0.006
dev_fee_percentage = 0.30

Commissione di trading (fee): Percentuale addebitata per operazione, divisa tra acquirente e venditore.

Esempio: In un'operazione da 100.000 sat con fee = 0.006: L'acquirente paga 300 sat, il venditore paga 300 sat, il tuo nodo guadagna 600 sat in totale.

Commissione di sviluppo (dev_fee_percentage): Una percentuale delle tue entrate da commissioni che va allo sviluppo di Mostro.

📝 Nota

Impostare dev_fee_percentage sotto 0.10 impedirà a Mostro di avviarsi. Questo minimo assicura un finanziamento sostenibile dello sviluppo.

4.3 Limiti degli ordini e valute

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

4.4 Profilo del nodo (Opzionale ma raccomandato)

[mostro]
name = "LatAm Mostro"
about = "Exchange P2P di Bitcoin per l'America Latina. Supporto in spagnolo."
picture = "https://esempio.com/il-tuo-logo.png"
website = "https://sito-della-tua-comunita.com"

Questi configurano il profilo del tuo Mostro su Nostr (NIP-01 kind 0 metadata). I client mostrano queste informazioni affinché gli utenti sappiano su quale Mostro stanno operando.

4.5 Tempi e scadenza

[mostro]
expiration_hours = 24        # Quanto tempo un ordine resta aperto
expiration_seconds = 900     # Tempo per completare (15 min)
hold_invoice_expiration_window = 300  # Validità della hold invoice (5 min)

4.6 Anti-Spam

[mostro]
pow = 0  # 0 = disabilitato; 10-20 = moderato. Inizia con 0.

4.7 Interfaccia RPC Admin (Opzionale)

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

Abilitala per strumenti di amministrazione come MostriX (interfaccia terminale) per la risoluzione delle dispute.

⚠️ Sicurezza

Se abiliti RPC, mantieni listen_address come "127.0.0.1" (solo localhost). Non esporre mai questo a internet.

5. Gestione del Tuo Nodo Mostro

5.1 Come funzionano le dispute

Le dispute sono la tua responsabilità operativa più importante.

Quando si verificano le dispute?

Il processo di disputa:

  1. L'utente apre una disputa — Una delle parti clicca "Disputa" nel client
  2. Mostro segna l'ordine — Lo stato cambia in "Disputa", i fondi restano bloccati
  3. L'arbitro prende il caso — Un admin assegnato al tuo nodo indaga
  4. Indagine — Comunica con entrambe le parti, richiede prove
  5. Risoluzione — L'arbitro decide: rilasciare all'acquirente, o rimborsare al venditore
⚠️ Importante

Scegli i tuoi arbitri con cura. Hanno il potere di decidere dove vanno i fondi bloccati. Scegli membri fidati e imparziali della comunità. Si raccomandano 2-3 arbitri.

5.2 Mostrix — Il tuo strumento di amministrazione

Mostrix è un client basato su terminale (TUI) per la risoluzione delle dispute. Se esegui un nodo Mostro, hai bisogno di Mostrix.

Opzione A: Scarica il binario pre-compilato (Raccomandato)

Scarica l'ultima versione per la tua piattaforma da 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
# Scarica mostrix-x86_64-pc-windows-gnu.exe dalla pagina delle release
🔐 Verifica la release

Verifica sempre la firma del binario prima di eseguirlo. Scarica manifest.txt e i file di firma dalla release:

# Importa le chiavi degli sviluppatori (una sola volta)
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

# Scarica manifest e firme
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

# Verifica le firme
gpg --verify manifest.txt.sig.negrunch manifest.txt
gpg --verify manifest.txt.sig.arkanoider manifest.txt

# Verifica che il checksum corrisponda
shasum -a 256 mostrix-x86_64-unknown-linux-musl
# Confronta l'output con l'hash in manifest.txt

Opzione B: Compila dal codice sorgente

Se preferisci compilare dal codice sorgente o hai bisogno di una piattaforma non disponibile nelle release:

# Installa le dipendenze (Ubuntu/Debian)
sudo apt install -y cmake build-essential pkg-config

# Installa Rust (se non già installato)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clona e compila
git clone https://github.com/MostroP2P/mostrix.git
cd mostrix
cargo build --release

# Esegui
./target/release/mostrix

Primo avvio e configurazione

Al primo avvio, Mostrix genera automaticamente un file ~/.mostrix/settings.toml con valori predefiniti sensati, inclusa una nuova coppia di chiavi Nostr. Il tuo npub generato verrà mostrato nel terminale.

⚠️ Importante: Configura la tua pubkey Mostro

La configurazione auto-generata usa la pubkey ufficiale di Mostro per default. Devi cambiarla con la pubkey del tuo nodo Mostro:

# Modifica la configurazione
nano ~/.mostrix/settings.toml

# Cambia questa riga con la pubkey del TUO nodo Mostro:
mostro_pubkey = "LA_TUA_PUBKEY_MOSTRO_HEX"

Per la modalità admin (risoluzione dispute), configura anche:

# ~/.mostrix/settings.toml
mostro_pubkey = "LA_TUA_PUBKEY_MOSTRO_HEX"
nsec_privkey = "nsec1la_tua_chiave_personale"  # Auto-generata al primo avvio
admin_privkey = "nsec1la_tua_chiave_admin"     # La tua chiave admin dal config Mostro
relays = ["wss://relay.mostro.network"]
currencies_filter = []                          # Vuoto = mostra tutte le valute
user_mode = "admin"                             # Abilita modalità admin

5.3 mostro-watchdog — Notifiche dispute su Telegram

mostro-watchdog monitora il tuo nodo Mostro per le dispute e invia avvisi istantanei tramite Telegram. Essenziale per tempi di risposta rapidi.

Opzione A: Installazione automatica (Raccomandata)

# Scarica ed esegui lo script di installazione
curl -fsSL https://raw.githubusercontent.com/MostroP2P/mostro-watchdog/main/install.sh | bash

Opzione B: Download manuale del binario

# 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, server 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

Opzione C: Compilare dal codice sorgente

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

Configurazione:

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

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

[telegram]
bot_token = "IL_TUO_BOT_TOKEN"
chat_id = "IL_TUO_CHAT_ID"
💡 Consiglio

Esegui mostro-watchdog come servizio systemd accanto al tuo nodo Mostro per il monitoraggio 24/7.

5.4 Monitoraggio dell'uptime

Il tuo nodo deve essere in funzione 24/7.

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

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

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

Configura un monitor di uptime semplice usando UptimeRobot (livello gratuito) o un cron job che ti avvisi se Mostro va offline.

5.5 Aggiornare 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

Nativo:

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
💡 Consiglio

Fai sempre un backup del database prima di aggiornare.

5.6 Backup

File critici da salvare: settings.toml (contiene la tua chiave privata Nostr!) e mostro.db (storico degli ordini, reputazione).

# Backup manuale — 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)

# Backup manuale — Nativo:
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)

Backup giornaliero automatizzato (aggiungere al crontab con crontab -e):

# Docker Hub (Opzione 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)

# Nativo (Opzione C) / Docker Build (Opzione 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)
⚠️ Critico

La tua nsec_privkey in settings.toml È l'identità del tuo nodo. Se la perdi, perdi la tua reputazione e tutti gli utenti devono riconnettersi a una nuova identità. Conserva una copia offline.

5.7 Revisione dell'attività delle operazioni

# Contare tutti gli ordini
sqlite3 /percorso/di/mostro.db "SELECT COUNT(*) FROM orders;"

# Operazioni recenti riuscite
sqlite3 /percorso/di/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;"

# Ordini in attesa
sqlite3 /percorso/di/mostro.db "SELECT id, fiat_code, fiat_amount, status, created_at FROM orders WHERE status = 'pending';"

# Entrate totali da commissioni (fee del nodo + dev_fee)
sqlite3 /percorso/di/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. Analisi dei Costi

Costi operativi mensili

VoceCosto mensileNote
VPS (server)$10–24Dipende dal provider e dalle specifiche
Nome di dominio (opzionale)$1–2Per un sito web/identità
Commissioni on-chain canali LightningVariabileApertura/chiusura canali
Totale mensile$11–26Esclusa liquidità Lightning

Costi una tantum / di capitale

VoceCostoNote
Liquidità Lightning0,01–1,0+ BTCBloccata nei canali; recuperata alla chiusura
Hardware del nodo (se self-hosted)$0–600Gratis se usi VPS; $300-600 per Start9/Umbrel
Tempo di configurazione4–16 oreA seconda del livello di esperienza

Potenziale di entrate

Volume mensileCommissione (0,6%)Commissione dev (30%)Il tuo reddito netto
$1.000~$6~$1,80~$4,20
$10.000~$60~$18~$42
$50.000~$300~$90~$210
$100.000~$600~$180~$420
📝 Realtà

La maggior parte dei nodi nuovi impiega mesi per costruire volume di operazioni. Non aspettarti profitti immediati. Il vero valore spesso viene dal fornire un servizio alla tua comunità, con le commissioni come bonus.

Impegno di tempo

AttivitàFrequenzaTempo
Monitoraggio (controllare log, stato)Giornaliero5–10 min
Risoluzione disputeAl bisogno15–60 min per disputa
AggiornamentiMensile15–30 min
Gestione liquiditàSettimanale15–30 min
Stima settimanale totale1–3 ore

7. Domande Frequenti

Devo essere uno sviluppatore per eseguire un nodo Mostro?

No, ma devi sentirti a tuo agio con le operazioni base da riga di comando (digitare comandi, modificare file di testo). Il percorso Docker (Opzione A) è progettato per essere accessibile.

Posso eseguire Mostro su un Raspberry Pi?

Tecnicamente sì (usando Start9 o simili), ma non è raccomandato per la produzione a causa delle limitazioni di CPU e RAM. Un VPS è più affidabile.

Posso usare Core Lightning (CLN) invece di LND?

No. Mostro attualmente supporta solo LND, perché dipende dall'implementazione specifica delle hold invoice di LND. Il supporto per altre implementazioni potrebbe arrivare in futuro.

Come si connettono gli utenti al mio Mostro?

Gli utenti hanno bisogno di un'app client Mostro (come Mostro Mobile o mostro-cli) e della chiave pubblica del tuo Mostro (npub). Aggiungono la tua npub al loro client, e il client comunica attraverso i relay Nostr. Non serve una connessione diretta.

Posso eseguire più istanze di Mostro?

Sì, ma ognuna ha bisogno della propria coppia di chiavi Nostr, nodo LND (o almeno canali/liquidità separati), e configurazione.

È legale?

Dipende molto dalla tua giurisdizione. Mostro è software per il trading peer-to-peer. In alcune giurisdizioni, operare un exchange P2P può richiedere licenze. Verifica le normative locali e chiedi consulenza legale.

Quanta banda usa Mostro?

Pochissima — principalmente piccoli eventi Nostr. Qualche GB al mese è tipico anche con volumi moderati.

Cosa succede se il mio nodo va offline?

Gli ordini in attesa alla fine scadono. Le operazioni attive con fondi bloccati continuano quando torni online. Se sei offline troppo a lungo, gli utenti potrebbero perdere fiducia.

Posso cambiare la mia chiave Nostr in seguito?

Puoi, ma perderai l'identità e la reputazione del tuo nodo. Gli utenti lo vedranno come un nuovo Mostro. Tratta la tua chiave come la tua identità di marca.

Posso perdere soldi eseguendo un nodo Mostro?

Sì, è possibile: i fondi dei canali Lightning potrebbero essere a rischio per bug (raro); la chiusura forzata dei canali durante periodi di commissioni alte può essere costosa; i costi del VPS sono continui.

La liquidità Lightning è "a rischio"?

La tua liquidità Lightning è tua. Non è a rischio da parte di Mostro stesso — le hold invoice sono blocchi temporanei. Tuttavia, si applicano i rischi standard di Lightning Network (chiusure forzate, canali bloccati, bug).

Quando raggiungerò il pareggio?

Dipende dai tuoi costi e dal volume di operazioni. Con $20/mese di costi e 0,6% di commissione, hai bisogno di ~$5.000/mese in operazioni per coprire i costi (prima della commissione di sviluppo). La maggior parte delle comunità impiega 3–6 mesi per costruire un volume significativo.

8. Considerazioni di Sicurezza

⚠️ Avviso software in fase iniziale

Mostro è in una fase iniziale di sviluppo. Sebbene il team lavori duramente per garantire l'affidabilità, potrebbero esserci bug non scoperti — inclusi bug di sicurezza che potrebbero risultare in perdita di fondi. Gli sviluppatori non sono responsabili di alcuna perdita di denaro dovuta a bug del software.

Mostro è open-source e il suo codice è aperto a verifiche. Incoraggiamo le comunità a promuovere e finanziare audit di sicurezza indipendenti.

Detto questo, il meccanismo centrale di custodia tramite hold invoice di Lightning è stato testato in battaglia dal 2021, quando @lnp2pBot ha implementato per primo questo tipo di custodia. Migliaia di operazioni sono state completate con successo.

Operare sotto regimi autoritari

Se operi in un paese con un governo autoritario, la privacy non è opzionale — è un requisito di sicurezza.

  1. Esegui il tuo nodo Mostro dietro Tor e/o una VPN. Questo nasconde l'IP del tuo server dai relay Nostr.
  2. Se Tor/VPN non è possibile (comune nei paesi in via di sviluppo con internet lento), pubblica eventi solo su relay che possiedi o di cui ti fidi.
  3. Fai molta attenzione a quali relay usi. In futuro, i governi potrebbero creare relay Nostr specificamente per raccogliere indirizzi IP.
  4. Considera anche la privacy del tuo nodo Lightning. Eseguire LND dietro Tor è possibile e raccomandato in ambienti sensibili.
💡 Consiglio

La bellezza del fatto che Mostro sia decentralizzato è che anche se un nodo viene spento, gli altri continuano a funzionare. Ma la prevenzione è sempre meglio del recupero. Prendi la privacy sul serio fin dal primo giorno.

9. Risoluzione dei Problemi

Mostro non si avvia

"Configuration error: dev_fee_percentage below minimum"

Imposta dev_fee_percentage ad almeno 0.10 in settings.toml.

File di configurazione o database non trovato

Assicurati che il flag -d punti alla directory contenente settings.toml. Per Docker Hub: verifica che ~/mostro-config/settings.toml esista.

"Failed to connect to LND"

Problemi di connessione

Mostro si avvia ma non si connette ai relay

Problemi con le operazioni

Gli ordini non appaiono nei client

Pagamenti falliti

Problemi di database

Errori database bloccato

ps aux | grep mostrod
# Se ci sono processi multipli, termina quelli extra:
kill <PID>

Ottenere aiuto

  1. Controlla prima i log — la maggior parte degli errori spiega cosa è andato storto
  2. Telegram (Sviluppatori): @mostro_dev
  3. Telegram (Comunità): @MostroP2P
  4. GitHub Issues: github.com/MostroP2P/mostro/issues
  5. DeepWiki: deepwiki.com/MostroP2P/mostro

Quando chiedi aiuto, includi sempre: la tua versione di Mostro, l'output rilevante dei log, e cosa hai già provato.

Appendice: Riferimento Rapido

Posizioni importanti dei file

FileDocker HubNativo
Configurazione~/mostro-config/settings.toml/opt/mostro/settings.toml
Database~/mostro-config/mostro.db/opt/mostro/mostro.db
Cert LND~/mostro-config/lnd/tls.certVaria (controlla config LND)
Macaroon LND~/mostro-config/lnd/admin.macaroonVaria (controlla config LND)
ServizioN/A/etc/systemd/system/mostro.service
Logdocker logs -f mostrojournalctl -u mostro

Comandi essenziali

# Docker
docker logs -f mostro         # Vedere i log
docker restart mostro          # Riavviare
docker stop mostro             # Fermare

# Nativo (systemd)
systemctl start mostro         # Avviare
systemctl stop mostro          # Fermare
systemctl restart mostro       # Riavviare
systemctl status mostro        # Vedere lo stato
journalctl -u mostro -f        # Vedere i log

# Database
sqlite3 mostro.db "SELECT COUNT(*) FROM orders;"                           # Totale ordini
sqlite3 mostro.db "SELECT COUNT(*) FROM orders WHERE status='success';"    # Operazioni riuscite
sqlite3 mostro.db "SELECT SUM(fee + dev_fee) FROM orders WHERE status='success';"  # Totale commissioni

Configurazione raccomandata per nodi nuovi

[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']  # Cambia con la tua valuta locale

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

Questa guida è mantenuta dalla comunità Mostro. Hai trovato un errore o vuoi migliorarla?
I contributi sono benvenuti su github.com/MostroP2P/community

Ultimo aggiornamento: Febbraio 2026 · Mostro v0.16.3