Ejecutando Tu Propio Nodo Mostro

Mostro v0.16.3 — Guía de la Comunidad · Febrero 2026

1. ¿Qué es Mostro y por qué tu comunidad debería ejecutar uno?

Mostro es un exchange peer-to-peer de Bitcoin que permite a las personas comprar y vender Bitcoin usando monedas locales (dólares, euros, pesos — cualquier moneda) sin necesidad de proporcionar documentos de identidad (KYC). Piensa en él como un mercado descentralizado donde compradores y vendedores pueden comerciar directamente.

Funciona usando dos tecnologías:

Mostro actúa como un coordinador de custodia — retiene los Bitcoin del vendedor en una "caja fuerte" temporal (llamada hold invoice) hasta que el comprador confirma que ha enviado el pago en moneda local. Mostro nunca controla realmente los fondos de nadie; solo los retiene brevemente durante la operación.

¿Por qué tu comunidad querría ejecutar un nodo Mostro?

  1. Ingresos por comisiones — Cada operación te genera una comisión (0.6% por defecto). Si tu comunidad hace $10,000 en operaciones mensuales, son ~$60/mes en comisiones.
  2. Trading P2P sin KYC — Los miembros de tu comunidad pueden comprar y vender Bitcoin sin proporcionar documentos de identidad. Especialmente importante en regiones con monedas inestables o regulaciones restrictivas.
  3. Disputas en tu idioma — Cuando una operación sale mal, tu comunidad la resuelve, en tu idioma, entendiendo tus métodos de pago locales.
  4. Independencia — Ninguna empresa puede cerrar tu exchange. Ningún gobierno puede presionar a un único operador para cerrarlo.
  5. Personalización — Tú eliges qué monedas soportar, qué métodos de pago permitir y qué comisiones cobrar.

Cómo funciona Mostro (Simplificado)

1. Alice quiere VENDER Bitcoin por $50 USD Crea una orden en Mostro
2. Bob quiere COMPRAR Bitcoin con $50 USD Ve la orden de Alice y la toma
3. Mostro crea una "caja fuerte" (hold invoice) Alice envía sus Bitcoin a la caja fuerte
4. Bob envía $50 a Alice por transferencia bancaria, Zelle, efectivo, etc. Bob presiona "Fiat Enviado" en su app
5. Alice confirma que recibió los $50 Presiona "Liberar"
6. Mostro libera los Bitcoin de la caja fuerte a Bob ¡Operación completada! ✓

Si algo sale mal (ej: Bob dice que pagó pero Alice no lo recibió), cualquiera de las partes puede abrir una disputa, y los árbitros asignados de tu comunidad investigan y resuelven.

2. Prerequisitos — Lo que necesitas antes de empezar

2.1 Un Servidor (VPS)

Un VPS (Servidor Virtual Privado) es una computadora en un centro de datos que funciona 24/7. Alquilarás uno para alojar tu nodo Mostro.

Especificaciones mínimas:

RecursoMínimoRecomendado
CPU2 vCPUs (compartidos)2+ vCPUs
RAM2 GB4 GB
Almacenamiento60 GB SSD100 GB SSD
Ancho de banda3 TB/mes3+ TB/mes
SOUbuntu 22.04+ LTSUbuntu 24.04 LTS

Costo mensual estimado: $10–$24/mes.

Proveedores populares de VPS:

💡 Consejo

Muchos proveedores de VPS aceptan pagos en Bitcoin. Busca esa opción si quieres mantener coherencia con la filosofía de Bitcoin.

Necesitas sentirte cómodo conectándote a un servidor por SSH. Si nunca lo has hecho, busca un tutorial sobre "Conectarse por SSH a un VPS" — es más simple de lo que parece.

2.2 Un Nodo Lightning Network (LND)

Lightning Network es un sistema "capa 2" construido sobre Bitcoin que permite pagos rápidos y baratos. Para ejecutar Mostro, necesitas un nodo LND (Lightning Network Daemon) — el software Lightning específico con el que Mostro trabaja.

Tus opciones:

OpciónDificultadCostoNotas
Usar un nodo LND existenteFácilGratis (si tienes uno)Mejor si alguien ya tiene uno
Ejecutar LND en el mismo VPSDifícilMismo VPS + liquidezRequiere VPS con 4GB+ RAM
Solución nodo-en-cajaMedio$200-600 + liquidezStart9, Umbrel, RaspiBlitz
StartOS con paquete MostroMás fácil$300-600 + liquidezStart9 tiene un paquete Mostro de un clic
Usar Voltage.cloudFácilDesde ~$20/mes + liquidezVoltage — LND alojado con infraestructura administrada
⚠️ Importante

Mostro requiere específicamente LND (no CLN/Core Lightning, no Eclair, no LDK). Asegúrate de que tu nodo Lightning ejecute LND.

Lo que necesitas de tu nodo LND:

2.3 Liquidez Lightning

Para facilitar operaciones, tu nodo Lightning necesita canales con Bitcoin en ellos. Piensa en los canales Lightning como túneles de pago pre-financiados. El Bitcoin dentro de estos canales es tu "liquidez".

¿Cuánta necesitas?

Volumen de trading objetivoLiquidez sugeridaBTC aproximado
Comunidad pequeña (pocas operaciones/día)1–5 millones de sats0.01–0.05 BTC
Comunidad mediana5–20 millones de sats0.05–0.20 BTC
Comunidad activa20–100 millones de sats0.20–1.0 BTC
💡 Nota sobre Liquidez Lightning

El Bitcoin en tus canales Lightning está bloqueado onchain pero sigue siendo altamente gastable vía Lightning Network. Muchos servicios aceptan pagos Lightning — desde cafeterías hasta proveedores VPS — haciendo tu liquidez bastante flexible para uso cotidiano.

Empieza pequeño, crece incrementalmente. Comienza con lo suficiente para las necesidades iniciales de tu comunidad y monitorea el feedback. Cuando los traders reporten que las órdenes fallan por capacidad insuficiente, esa es tu señal para agregar más. Escucha a tu comunidad.

Obteniendo liquidez:

2.4 Claves Nostr

Tu nodo Mostro necesita su propia identidad en la red Nostr — un par de claves criptográficas con una clave pública (la dirección de tu nodo) y una clave privada (tu secreto).

⚠️ Importante

Nunca reutilices claves Nostr entre instancias de Mostro. Cada nodo necesita su propia identidad única.

Generando claves Nostr seguras localmente con rana:

# Instalar Rust (si no está instalado)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

# Instalar rana - generador local de claves Nostr
cargo install rana

# Generar un nuevo par de claves (con frase semilla de 12 palabras)
rana --generate 12

Rana generará tu clave privada (nsec), tu clave pública (npub) y una frase semilla de respaldo. ¡Guarda todo de forma segura! Nota: ejecutar rana sin argumentos inicia minería PoW (dificultad 10) que puede tardar minutos — usa --generate para generación instantánea. Nunca generes claves importantes usando servicios online.

2.5 Nivel de conocimiento técnico

TareaDificultadConocimientos necesarios
Alquilar un VPSFácilTarjeta de crédito, navegación web básica
Conectarse por SSHFácilSeguir instrucciones, escribir comandos
Instalar DockerMedioCopiar y pegar comandos, solución básica de problemas
Ejecutar Mostro (Docker)MedioEditar archivos de configuración, entender rutas
Ejecutar Mostro (nativo)DifícilAdministración Linux, compilación de software, systemd
Configurar LND desde ceroDifícilConocimiento significativo de Linux y redes
Gestionar liquidez LightningDifícilEntender la economía de canales Lightning

💡 Nuestra recomendación: Si tu comunidad tiene a alguien cómodo con la línea de comandos de Linux, puede manejar la instalación con Docker. La compilación nativa requiere experiencia en administración de sistemas. La configuración del nodo Lightning es la parte más compleja — considera pedir ayuda a alguien experimentado, o usar una solución nodo-en-caja.

3. Instalación Paso a Paso

Todas las opciones de instalación comparten los mismos primeros pasos. Luego elige la opción que prefieras:

Todas asumen que ya tienes: ✅ Un VPS con Ubuntu · ✅ Acceso SSH · ✅ Un nodo LND funcionando.

Pasos Comunes (para las 3 opciones)

Paso 1: Conéctate a tu VPS

ssh root@TU_DIRECCION_IP_DEL_VPS

Paso 2: Actualiza el sistema

# Descargar la información más reciente de paquetes
apt update

# Instalar todas las actualizaciones disponibles
apt upgrade -y

Paso 3: Instalar Docker y Docker Compose

💡 Nota

Docker es necesario para las opciones A y B. Si vas a compilar manualmente (Opción C), puedes saltar este paso.

# Instalar Docker con el script oficial
curl -fsSL https://get.docker.com | sh

# Verificar que Docker está instalado
docker --version

# Verificar Docker Compose
docker compose version

Paso 4: Instalar herramientas adicionales

apt install -y git make

Pasos comunes completados. Ahora elige tu opción de instalación:

Opción A: Docker Hub (La más rápida — Recomendada)

Ejecuta Mostro directamente desde Docker Hub sin clonar el repositorio ni compilar. Perfecto para deployments en VPS.

Paso 5: Crear directorio de configuración

mkdir -p ~/mostro-config/lnd

Paso 6: Obtener el template de configuración

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

Paso 7: Copiar credenciales LND

cp /ruta/a/tu/tls.cert ~/mostro-config/lnd/tls.cert
cp /ruta/a/tu/admin.macaroon ~/mostro-config/lnd/admin.macaroon

Si LND está en la misma máquina, las rutas típicas son:

Paso 8: Editar la configuración

nano ~/mostro-config/settings.toml

Cambios requeridos:

[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 en el mismo VPS
# O usar 'https://TU_IP_LND:10009' si LND en servidor diferente

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

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

[mostro]
fee = 0.006                    # 0.6% comisión por operación
max_order_amount = 1000000     # Orden máxima en sats
min_payment_amount = 100       # Orden mínima en sats
fiat_currencies_accepted = ['USD', 'EUR']  # Tus monedas

Guardar: Ctrl+X, luego Y, luego Enter.

Paso 9: Ajustar permisos

⚠️ Importante

Evita chmod 777. Usa permisos mínimos.

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

Paso 10: Ejecutar el contenedor

Si LND está en el mismo 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á en un servidor diferente:

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

Paso 11: Revisar los logs

docker logs -f mostro

Busca estos mensajes:

💡 Solución de problemas

Si ves Permission denied (os error 13), vuelve a ajustar permisos: chown -R 1000:1000 ~/mostro-config y reinicia: docker restart mostro.

🎉 ¡Felicitaciones! Si ves conexiones exitosas en los logs, ¡tu nodo Mostro está funcionando!

Actualización (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 de Seguridad

Usa siempre un tag de versión específica (ej. mostrop2p/mostro:v0.16.3) en lugar de :latest para controlar despliegues.

Opción B: Docker Build (Construir imagen localmente)

Paso 5: Descargar Mostro

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

Paso 6: Configurar archivos

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

Paso 7: Editar el archivo de configuración

nano config/settings.toml

Edita los mismos ajustes que en la Opción A, Paso 8.

Paso 8: Construir la imagen Docker

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

Paso 9: Iniciar Mostro

make docker-up

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

# Ver logs
docker compose -f docker/compose.yml logs -f mostro

🎉 ¡Felicitaciones! Si ves conexiones exitosas, ¡tu nodo Mostro está funcionando!

Opción C: Compilación Nativa (Para operadores técnicos)

Paso 5: Instalar Rust

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

NO instales Rust via apt install rustc. Siempre usa rustup. El paquete del sistema suele estar desactualizado.

Paso 6: Instalar dependencias de compilación

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

Paso 7: Descargar y compilar Mostro

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

Si la compilación falla por falta de RAM, agrega espacio swap:

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

Paso 8–10: Instalar, inicializar y limpiar

install target/release/mostrod /usr/local/bin
cargo install sqlx-cli --version 0.6.3
./init_db.sh
cargo clean  # Ahorra 2+ GB de espacio

Paso 11–12: Crear usuario y configurar

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

Edita los mismos ajustes que en la Opción A, Paso 8.

Paso 13–15: Prueba, permisos y servicio systemd

# Prueba de ejecución
/usr/local/bin/mostrod -d /opt/mostro

# Establecer permisos
chown -R mostro:mostro /opt/mostro

Crear el servicio 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

🎉 ¡Felicitaciones! Tu nodo Mostro está funcionando como servicio del sistema.

4. Configuración en Detalle

El archivo settings.toml controla todo sobre tu nodo Mostro.

4.1 Claves Nostr — La identidad de tu nodo

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

¿Qué relays usar?

💡 Consejo

También puedes ejecutar tu propio relay Nostr junto a Mostro (la instalación Docker incluye uno por defecto).

4.2 Comisiones — Cómo generas ingresos

[mostro]
fee = 0.006
dev_fee_percentage = 0.30

Comisión de trading (fee): Porcentaje cobrado por operación, dividido entre comprador y vendedor.

Ejemplo: En una operación de 100,000 sats con fee = 0.006: El comprador paga 300 sats, el vendedor paga 300 sats, tu nodo gana 600 sats en total.

Comisión de desarrollo (dev_fee_percentage): Un porcentaje de tus ganancias por comisiones que va al desarrollo de Mostro.

📝 Nota

Establecer dev_fee_percentage por debajo de 0.10 impedirá que Mostro arranque. Este mínimo asegura financiamiento sostenible del desarrollo.

4.3 Límites de órdenes y monedas

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

4.4 Perfil del nodo (Opcional pero recomendado)

[mostro]
name = "LatAm Mostro"
about = "Exchange P2P de Bitcoin para Latinoamérica. Soporte en español."
picture = "https://ejemplo.com/tu-logo.png"
website = "https://sitio-de-tu-comunidad.com"

Estos configuran el perfil de tu Mostro en Nostr (NIP-01 kind 0 metadata). Los clientes muestran esta información para que los usuarios sepan en qué Mostro están operando.

4.5 Tiempos y expiración

[mostro]
expiration_hours = 24        # Cuánto tiempo una orden queda abierta
expiration_seconds = 900     # Tiempo para completar (15 min)
hold_invoice_expiration_window = 300  # Validez de la hold invoice (5 min)

4.6 Anti-Spam

[mostro]
pow = 0  # 0 = deshabilitado; 10-20 = moderado. Empieza con 0.

4.7 Interfaz RPC Admin (Opcional)

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

Habilítala para herramientas de administración como MostriX (interfaz de terminal) para resolución de disputas.

⚠️ Seguridad

Si habilitas RPC, mantén listen_address como "127.0.0.1" (solo localhost). Nunca expongas esto a internet.

5. Operando Tu Nodo Mostro

5.1 Cómo funcionan las disputas

Las disputas son tu responsabilidad operativa más importante.

¿Cuándo ocurren las disputas?

El proceso de disputa:

  1. El usuario abre una disputa — Una de las partes hace clic en "Disputa" en el cliente
  2. Mostro marca la orden — El estado cambia a "Disputa", los fondos permanecen bloqueados
  3. El árbitro toma el caso — Un admin asignado a tu nodo investiga
  4. Investigación — Se comunica con ambas partes, solicita pruebas
  5. Resolución — El árbitro decide: liberar al comprador, o devolver al vendedor
⚠️ Importante

Elige a tus árbitros con cuidado. Tienen el poder de decidir a dónde van los fondos bloqueados. Elige miembros de confianza e imparciales de la comunidad. Se recomiendan 2-3 árbitros.

5.2 Mostrix — Tu herramienta de administración

Mostrix es un cliente basado en terminal (TUI) para resolución de disputas. Si ejecutas un nodo Mostro, necesitas Mostrix.

Opción A: Descargar binario pre-compilado (Recomendado)

Descarga la última versión para tu plataforma desde 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
# Descarga mostrix-x86_64-pc-windows-gnu.exe desde la página de releases
🔐 Verifica la release

Siempre verifica la firma del binario antes de ejecutarlo. Descarga manifest.txt y los archivos de firma desde la release:

# Importar claves de los desarrolladores (una sola vez)
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

# Descargar manifest y firmas
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

# Verificar firmas
gpg --verify manifest.txt.sig.negrunch manifest.txt
gpg --verify manifest.txt.sig.arkanoider manifest.txt

# Verificar que el checksum coincida
shasum -a 256 mostrix-x86_64-unknown-linux-musl
# Compara la salida con el hash en manifest.txt

Opción B: Compilar desde el código fuente

Si prefieres compilar desde el código fuente o necesitas una plataforma que no está en las releases:

# Instalar dependencias (Ubuntu/Debian)
sudo apt install -y cmake build-essential pkg-config

# Instalar Rust (si no está instalado)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clonar y compilar
git clone https://github.com/MostroP2P/mostrix.git
cd mostrix
cargo build --release

# Ejecutar
./target/release/mostrix

Primera ejecución y configuración

En la primera ejecución, Mostrix genera automáticamente un archivo ~/.mostrix/settings.toml con valores por defecto sensatos, incluyendo un par de claves Nostr nuevo. Tu npub generado se mostrará en la terminal.

⚠️ Importante: Configura tu pubkey de Mostro

La configuración auto-generada usa la pubkey oficial de Mostro por defecto. Debes cambiarla por la pubkey de tu propio nodo Mostro:

# Editar la configuración
nano ~/.mostrix/settings.toml

# Cambia esta línea por la pubkey de TU nodo Mostro:
mostro_pubkey = "TU_PUBKEY_MOSTRO_HEX"

Para modo admin (resolución de disputas), también configura:

# ~/.mostrix/settings.toml
mostro_pubkey = "TU_PUBKEY_MOSTRO_HEX"
nsec_privkey = "nsec1tu_clave_personal"      # Auto-generada en la primera ejecución
admin_privkey = "nsec1tu_clave_admin"        # Tu clave admin del config de Mostro
relays = ["wss://relay.mostro.network"]
currencies_filter = []                        # Vacío = mostrar todas las monedas
user_mode = "admin"                           # Habilitar modo admin

5.3 mostro-watchdog — Notificaciones de disputas en Telegram

mostro-watchdog monitorea tu nodo Mostro para disputas y envía alertas instantáneas por Telegram. Esencial para tiempos de respuesta rápidos.

Opción A: Instalación automática (Recomendada)

# Descarga y ejecuta el script de instalación
curl -fsSL https://raw.githubusercontent.com/MostroP2P/mostro-watchdog/main/install.sh | bash

Opción B: Descarga manual 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, servidores 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

Opción C: Compilar desde código fuente

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

Configuración:

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

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

[telegram]
bot_token = "TU_BOT_TOKEN"
chat_id = "TU_CHAT_ID"
💡 Consejo

Ejecuta mostro-watchdog como servicio systemd junto a tu nodo Mostro para monitoreo 24/7.

5.4 Monitoreo de uptime

Tu nodo necesita estar funcionando 24/7.

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

# Docker Hub (Opción A)
docker ps --filter name=mostro
docker logs -f mostro

# Docker Build (Opción B)
docker compose -f /opt/mostro/docker/compose.yml ps
docker compose -f /opt/mostro/docker/compose.yml logs -f mostro
💡 Consejo pro

Configura un monitor de uptime simple usando UptimeRobot (nivel gratuito) o un cron job que te alerte si Mostro se cae.

5.5 Actualizando 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
💡 Consejo

Siempre respalda tu base de datos antes de actualizar.

5.6 Respaldos

Archivos críticos a respaldar: settings.toml (¡contiene tu clave privada Nostr!) y mostro.db (historial de órdenes, reputaciones).

# Respaldo manual — 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)

# Respaldo manual — 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)

Respaldo diario automatizado (agregar al crontab con crontab -e):

# Docker Hub (Opción 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 (Opción C) / Docker Build (Opción 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)
⚠️ Crítico

Tu nsec_privkey en settings.toml ES la identidad de tu nodo. Si la pierdes, pierdes tu reputación y todos los usuarios deben reconectarse a una nueva identidad. Guarda una copia offline.

5.7 Revisando la actividad de operaciones

# Contar todas las órdenes
sqlite3 /ruta/a/mostro.db "SELECT COUNT(*) FROM orders;"

# Operaciones exitosas recientes
sqlite3 /ruta/a/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;"

# Órdenes pendientes
sqlite3 /ruta/a/mostro.db "SELECT id, fiat_code, fiat_amount, status, created_at FROM orders WHERE status = 'pending';"

# Ingresos totales por comisiones (fee del nodo + dev_fee)
sqlite3 /ruta/a/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. Desglose de Costos

Costos operativos mensuales

ConceptoCosto mensualNotas
VPS (servidor)$10–24Depende del proveedor y las especificaciones
Nombre de dominio (opcional)$1–2Para un sitio web/identidad
Comisiones on-chain de canales LightningVariableApertura/cierre de canales
Total mensual$11–26Excluyendo liquidez Lightning

Costos únicos / de capital

ConceptoCostoNotas
Liquidez Lightning0.01–1.0+ BTCBloqueado en canales; se recupera al cerrar
Hardware del nodo (si se auto-aloja)$0–600Gratis si usas VPS; $300-600 para Start9/Umbrel
Tiempo de configuración4–16 horasDependiendo del nivel de experiencia

Potencial de ingresos

Volumen mensualComisión (0.6%)Comisión dev (30%)Tu ingreso neto
$1,000~$6~$1.80~$4.20
$10,000~$60~$18~$42
$50,000~$300~$90~$210
$100,000~$600~$180~$420
📝 Realidad

La mayoría de los nodos nuevos tardan meses en construir volumen de operaciones. No esperes rentabilidad inmediata. El valor real suele venir de proporcionar un servicio a tu comunidad, con las comisiones como bonus.

Compromiso de tiempo

TareaFrecuenciaTiempo
Monitoreo (revisar logs, estado)Diario5–10 min
Resolución de disputasSegún necesidad15–60 min por disputa
ActualizacionesMensual15–30 min
Gestión de liquidezSemanal15–30 min
Estimación semanal total1–3 horas

7. Preguntas Frecuentes

¿Necesito ser desarrollador para ejecutar un nodo Mostro?

No, pero necesitas sentirte cómodo con operaciones básicas de línea de comandos (escribir comandos, editar archivos de texto). La ruta Docker (Opción A) está diseñada para ser accesible.

¿Puedo ejecutar Mostro en una Raspberry Pi?

Técnicamente sí (usando Start9 o similar), pero no se recomienda para producción debido a la limitación de CPU y RAM. Un VPS es más confiable.

¿Puedo usar Core Lightning (CLN) en lugar de LND?

No. Mostro actualmente solo soporta LND, porque depende de la implementación específica de hold invoices de LND. El soporte para otras implementaciones podría llegar en el futuro.

¿Cómo se conectan los usuarios a mi Mostro?

Los usuarios necesitan una app cliente de Mostro (como Mostro Mobile o mostro-cli) y la clave pública de tu Mostro (npub). Agregan tu npub a su cliente, y el cliente se comunica a través de relays Nostr. No se necesita conexión directa.

¿Puedo ejecutar múltiples instancias de Mostro?

Sí, pero cada una necesita su propio par de claves Nostr, nodo LND (o al menos canales/liquidez separados), y configuración.

¿Es legal?

Depende mucho de tu jurisdicción. Mostro es software para trading peer-to-peer. En algunas jurisdicciones, operar un exchange P2P puede requerir licencias. Consulta las regulaciones locales y asesoría legal.

¿Cuánto ancho de banda usa Mostro?

Muy poco — principalmente eventos Nostr pequeños. Unos pocos GB por mes es típico incluso con volumen moderado.

¿Qué pasa si mi nodo se desconecta?

Las órdenes pendientes eventualmente expiran. Las operaciones activas con fondos bloqueados continúan cuando vuelves a estar online. Si estás offline demasiado tiempo, los usuarios pueden perder confianza.

¿Puedo cambiar mi clave Nostr después?

Puedes, pero perderás la identidad y reputación de tu nodo. Los usuarios lo verán como un Mostro nuevo. Trata tu clave como tu identidad de marca.

¿Puedo perder dinero ejecutando un nodo Mostro?

Sí, es posible: los fondos de canales Lightning podrían estar en riesgo por bugs (raro); el cierre forzado de canales durante períodos de comisiones altas puede ser costoso; los costos de VPS son continuos.

¿La liquidez Lightning está "en riesgo"?

Tu liquidez Lightning es tuya. No está en riesgo por Mostro en sí — las hold invoices son bloqueos temporales. Sin embargo, aplican los riesgos estándar de Lightning Network (cierres forzados, canales atascados, bugs).

¿Cuándo alcanzaré el punto de equilibrio?

Depende de tus costos y volumen de operaciones. Con $20/mes de costos y 0.6% de comisión, necesitas ~$5,000/mes en operaciones para cubrir costos (antes de la comisión de desarrollo). La mayoría de las comunidades tardan 3–6 meses en alcanzar un volumen significativo.

8. Consideraciones de Seguridad

⚠️ Aviso de software en etapa temprana

Mostro está en una etapa temprana de desarrollo. Aunque el equipo trabaja duro para asegurar confiabilidad, puede haber bugs no descubiertos — incluyendo bugs de seguridad que podrían resultar en pérdida de fondos. Los desarrolladores no son responsables de ninguna pérdida de dinero debido a bugs de software.

Mostro es open-source y su código está abierto a auditorías. Animamos a las comunidades a promover y financiar auditorías de seguridad independientes.

Dicho esto, el mecanismo central de custodia usando hold invoices de Lightning ha sido probado en batalla desde 2021, cuando @lnp2pBot implementó por primera vez este tipo de custodia. Miles de operaciones han sido completadas exitosamente.

Operando bajo regímenes autoritarios

Si operas en un país con un gobierno autoritario, la privacidad no es opcional — es un requisito de seguridad.

  1. Ejecuta tu nodo Mostro detrás de Tor y/o una VPN. Esto oculta la IP de tu servidor de los relays Nostr.
  2. Si Tor/VPN no es posible (común en países en desarrollo con internet lento), solo publica eventos en relays que poseas o en los que confíes.
  3. Ten mucho cuidado con qué relays usas. En el futuro, los gobiernos podrían crear relays Nostr específicamente para recolectar direcciones IP.
  4. Considera también la privacidad de tu nodo Lightning. Ejecutar LND detrás de Tor es posible y recomendado en entornos sensibles.
💡 Consejo

La belleza de que Mostro sea descentralizado es que incluso si un nodo es apagado, otros siguen funcionando. Pero la prevención siempre es mejor que la recuperación. Toma la privacidad en serio desde el primer día.

9. Solución de Problemas

Mostro no arranca

"Configuration error: dev_fee_percentage below minimum"

Establece dev_fee_percentage en al menos 0.10 en settings.toml.

Archivo de configuración o base de datos no encontrado

Asegúrate de que el flag -d apunte al directorio que contiene settings.toml. Para Docker Hub: verifica que ~/mostro-config/settings.toml exista.

"Failed to connect to LND"

Problemas de conexión

Mostro arranca pero no se conecta a los relays

Problemas con operaciones

Las órdenes no aparecen en los clientes

Pagos fallando

Problemas de base de datos

Errores de base de datos bloqueada

ps aux | grep mostrod
# Si hay múltiples procesos, elimina los extras:
kill <PID>

Obteniendo ayuda

  1. Revisa los logs primero — la mayoría de los errores explican qué salió mal
  2. Telegram (Desarrolladores): @mostro_dev
  3. Telegram (Comunidad): @MostroP2P
  4. GitHub Issues: github.com/MostroP2P/mostro/issues
  5. DeepWiki: deepwiki.com/MostroP2P/mostro

Cuando pidas ayuda, siempre incluye: tu versión de Mostro, la salida relevante de los logs, y lo que ya intentaste.

Apéndice: Referencia Rápida

Ubicaciones importantes de archivos

ArchivoDocker HubNativo
Configuración~/mostro-config/settings.toml/opt/mostro/settings.toml
Base de datos~/mostro-config/mostro.db/opt/mostro/mostro.db
Cert LND~/mostro-config/lnd/tls.certVaría (revisar config LND)
Macaroon LND~/mostro-config/lnd/admin.macaroonVaría (revisar config LND)
ServicioN/A/etc/systemd/system/mostro.service
Logsdocker logs -f mostrojournalctl -u mostro

Comandos esenciales

# Docker
docker logs -f mostro         # Ver logs
docker restart mostro          # Reiniciar
docker stop mostro             # Detener

# Nativo (systemd)
systemctl start mostro         # Iniciar
systemctl stop mostro          # Detener
systemctl restart mostro       # Reiniciar
systemctl status mostro        # Ver estado
journalctl -u mostro -f        # Ver logs

# Base de datos
sqlite3 mostro.db "SELECT COUNT(*) FROM orders;"                           # Total de órdenes
sqlite3 mostro.db "SELECT COUNT(*) FROM orders WHERE status='success';"    # Operaciones exitosas
sqlite3 mostro.db "SELECT SUM(fee + dev_fee) FROM orders WHERE status='success';"  # Total de comisiones

Configuración recomendada para nodos nuevos

[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 a tu moneda local

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

Esta guía es mantenida por la comunidad Mostro. ¿Encontraste un error o quieres mejorarla?
Las contribuciones son bienvenidas en github.com/MostroP2P/community

Última actualización: Febrero 2026 · Mostro v0.16.3