Cripto · sin KYC
Aloja Bitcoin Core (bitcoind) en un VPS offshore
Ejecutar tu propio nodo completo de Bitcoin Core es la única forma de verificar la cadena tú mismo en lugar de confiar en el servidor de otra persona, y un VPS offshore sin KYC te permite hacerlo sin vincular tu identidad a él.
Qué es
Bitcoin Core (bitcoind) es la implementación de referencia del protocolo Bitcoin: descarga y valida de forma independiente cada bloque y transacción, los retransmite a otros pares (peers) y expone una interfaz JSON-RPC en la que tu wallet o tus aplicaciones pueden confiar. Un nodo completo te ofrece una validación de nivel autocustodia, privacidad frente a los exploradores de bloques públicos, y un backend para wallets, nodos Lightning, servidores Electrum (Fulcrum/electrs) o BTCPay Server.
Por qué alojarlo offshore
La dirección IP de tu nodo es visible para cada par al que se conecta, así que ejecutarlo desde un VPS pagado con cripto y sin identidad lo mantiene desvinculado de tu conexión doméstica y de tu nombre. ChainVPS es sin KYC y con ancho de banda ilimitado, algo que importa porque la descarga inicial de bloques (IBD) y la retransmisión continua entre pares mueven cientos de gigabytes que agotarían cualquier límite de tráfico medido.
El despliegue
Una configuración de referencia funcional
Copia esto en una nueva instancia de ChainVPS. Sustituye los marcadores de posición y ponlo en marcha.
# docker-compose.yml — Bitcoin Core full node (pruned by default for a small VPS)
# 1) Generate an RPC credential first (do NOT store a plaintext password):
# curl -sSL https://raw.githubusercontent.com/bitcoin/bitcoin/master/share/rpcauth/rpcauth.py \
# | python3 - bitcoin
# It prints an rpcauth=... line and a matching password. Paste the rpcauth line below.
# 2) docker compose up -d then follow IBD: docker compose logs -f
services:
bitcoind:
image: bitcoin/bitcoin:28.1
container_name: bitcoind
restart: unless-stopped
stop_grace_period: 2m
user: "1000:1000"
ports:
- "8333:8333" # P2P — public, lets you serve/accept peers
- "127.0.0.1:8332:8332" # RPC — bound to localhost ONLY, never expose
volumes:
- ./bitcoin-data:/home/bitcoin/.bitcoin
command:
- -printtoconsole
- -server=1
- -listen=1
- -prune=10000 # ~10 GB of blocks; set -prune=0 -txindex=1 for a full archival node
- -dbcache=1024 # MB; raise to 2048-4096 on bigger boxes to speed IBD
- -maxmempool=300
- -maxconnections=40
- -rpcbind=0.0.0.0 # binds inside the container; host mapping keeps it on 127.0.0.1
- -rpcallowip=172.16.0.0/12 # docker bridge range, so host-side tools can reach RPC
- -rpcauth=bitcoin:REPLACE_WITH_GENERATED_HASH # <-- paste rpcauth output here
- -disablewallet=1 # node-only; drop this line if you want the built-in wallet
# First run needs ./bitcoin-data owned by uid 1000: mkdir -p bitcoin-data && sudo chown 1000:1000 bitcoin-data
Firewall
Puertos que debes abrir
| Puerto | Protocolo | Propósito |
|---|---|---|
| 8333 | TCP | P2P de Bitcoin — acepta y sirve a otros pares; el único puerto que debería ser accesible públicamente |
| 8332 | TCP | Interfaz de control JSON-RPC — vincúlala solo a 127.0.0.1, accede a ella mediante un túnel SSH o una red privada |
| 28332/28333 | TCP | Notificaciones ZMQ opcionales de bloques/transacciones para un nodo Lightning o un servidor Electrum; solo en localhost |
| 9050 | TCP | Proxy SOCKS local de Tor opcional si ejecutas bitcoind sobre Tor para privacidad a nivel de pares |
Dimensionamiento adecuado
Qué plan necesitas
VPS Small (2 vCPU / 4 GB RAM / 60-80 GB NVMe)
prune=10000 conserva ~10 GB de bloques más los ~10 GB de chainstate; valida la cadena completa, ideal como backend de wallet/Lightning cuando no necesitas datos históricos de bloques.
VPS Pro o Storage VPS (4 vCPU / 8 GB RAM / 1 TB de disco)
prune=0 almacena todos los bloques (~650 GB y creciendo en 2026); los planes Storage ofrecen el margen de disco grande y económico, y el ancho de banda ilimitado cubre toda la IBD y la retransmisión entre pares.
Dedicated o Storage VPS grande (8+ vCPU / 16-32 GB RAM / 1.5-2 TB NVMe)
txindex=1 junto con Fulcrum/electrs añade un índice de direcciones de gran tamaño y sirve a muchos clientes de wallet; necesita NVMe rápido y RAM suficiente para el dbcache y la reconstrucción del índice.
Mejores ubicaciones: Cualquiera de las 15 ubicaciones funciona, ya que el ancho de banda de ChainVPS es ilimitado, que es justo lo que necesitan la IBD de cientos de gigabytes de un nodo y su retransmisión continua. Para una operación sin identidad, elige las ubicaciones de nivel privacidad — Islandia, Suiza, Moldavia, Países Bajos, Rumanía o Luxemburgo — donde el nodo no tiene ningún vínculo con tu nombre; jurisdicciones como Islandia y Suiza también son buenas opciones si planeas ejecutarlo sobre Tor y quieres un hogar estable y respetuoso con la privacidad para un nodo de larga duración.
Blíndalo
Lista de verificación de hardening
- Nunca expongas el puerto 8332 a internet. Mantén el mapeo de RPC en 127.0.0.1 como se muestra y accede a él mediante `ssh -L 8332:127.0.0.1:8332 user@server`; un RPC accesible con credenciales débiles o adivinables es la forma clásica en que los nodos son vaciados o secuestrados.
- Usa -rpcauth (un hash con sal) en lugar de -rpcuser/-rpcpassword para que no quede ninguna contraseña en texto plano en el archivo compose ni en la lista de procesos; rótalo si el servidor llega a compartirse o a tener un snapshot.
- Ejecútalo sobre Tor para privacidad a nivel de pares: instala tor en el host y añade -proxy=127.0.0.1:9050 -listen=1 -bind=127.0.0.1 junto con un servicio onion, para que los pares vean una dirección .onion en lugar de la IP de tu VPS. Combínalo con -onlynet=onion si no quieres tener ningún par en la red clearnet.
- Bloquea el firewall con ufw: permite solo el puerto 22 entrante (SSH, idealmente solo con clave + puerto cambiado) y el 8333, y deniega todo lo demás. bitcoind abre sus propias conexiones salientes a otros pares de todos modos.
- Vigila el disco. Un nodo podado se mantiene estable en ~20 GB, pero un nodo sin podar crece de forma continua — configura una alerta de uso de disco y deja suficiente margen, porque un disco lleno detiene la validación y puede corromper el chainstate en caso de un cierre abrupto.
- Configura stop_grace_period (2 min arriba) y usa `docker compose stop`, nunca un kill forzado — bitcoind necesita tiempo para volcar limpiamente su chainstate de LevelDB, o te arriesgas a un reindexado lento en el siguiente arranque.
Preguntas
Hosting Bitcoin Core (bitcoind) — Preguntas frecuentes
¿Cuánto disco necesito realmente?
Un nodo podado (prune=10000 en la configuración) se mantiene alrededor de 15-20 GB y aun así valida toda la cadena. Un nodo de archivo completo almacena cada bloque, lo que equivale a unos 650 GB en 2026 y crece cerca de 50-70 GB al año, así que planea al menos 1 TB. Añadir txindex=1 o un servidor Electrum te acerca a 1.5-2 TB de NVMe rápido.
¿Cuánto tarda la descarga inicial de bloques (IBD)?
En un VPS moderno con ancho de banda ilimitado y dbcache=2048 o superior, espera entre varias horas y aproximadamente un día para sincronizar y validar por completo desde el bloque génesis, según la velocidad de CPU y disco. Aumentar -dbcache durante la sincronización inicial es la mejora de velocidad más importante. Es un costo único; después de eso, el nodo solo descarga los bloques nuevos.
¿Puedo ejecutar un nodo Lightning o un servidor Electrum contra este nodo?
Sí. Activa ZMQ (añade -zmqpubrawblock y -zmqpubrawtx en los puertos 28332/28333) y apunta LND, Core Lightning, Fulcrum o electrs a los endpoints de RPC y ZMQ a través de la red Docker local. Ten en cuenta que Fulcrum/electrs necesitan txindex=1, así que no puedes combinarlos con un nodo podado.
¿Es un nodo podado menos seguro o menos privado?
No. Un nodo podado realiza exactamente la misma validación completa de cada bloque y transacción que un nodo de archivo — simplemente descarta los datos antiguos de bloques después de verificarlos. La seguridad y la privacidad de tu wallet son idénticas. Solo pierdes la capacidad de servir bloques históricos a otros pares o de reescanear transacciones antiguas arbitrarias.
¿Será visible la IP de mi nodo?
Sí — por diseño, cada par al que te conectas ve la IP de tu nodo. Precisamente por eso ayuda ejecutarlo en un VPS offshore sin KYC: la IP pertenece a un servidor sin ningún vínculo con tu identidad ni con tu conexión doméstica. Para una privacidad total a nivel de pares, ejecuta bitcoind sobre Tor tal como se describe en los consejos de hardening, para que los pares solo vean una dirección .onion.
Más para autoalojar
Otros stacks de un clic
Desplegar Bitcoin Core (bitcoind)
en los próximos 60 segundos.
Ancho de banda ilimitado · DDoS incluido · 21 criptomonedas · sin KYC.