Instalación y configuración de un nodo completo de Bitcoin en un VPS: seguridad y actualizaciones automáticas
TL;DR
En esta guía, configuraremos paso a paso un nodo completo de Bitcoin Core (Full Node) en el sistema operativo Ubuntu 24.04 LTS, alojado en un servidor privado virtual (VPS). Aprenderá a instalar y configurar el software, a asegurar la seguridad básica del servidor con claves SSH, el firewall UFW y Fail2ban, y a configurar el sistema para actualizaciones automáticas del sistema operativo y un mantenimiento seguro del nodo de Bitcoin, para garantizar su funcionamiento estable y fiable en la red de Bitcoin.
- Configuraremos el acceso seguro al VPS y un firewall básico.
- Instalaremos y ejecutaremos Bitcoin Core como un servicio del sistema.
- Garantizaremos las actualizaciones automáticas del sistema operativo y sus componentes.
- Configuraremos la monitorización y la estrategia de mantenimiento para el nodo de Bitcoin.
- Nos prepararemos para la escalabilidad y la optimización futura.
Qué configuramos y por qué
En esta guía, nos centraremos en la instalación y configuración de un Bitcoin Full Node, utilizando el cliente oficial Bitcoin Core, en un servidor privado virtual (VPS) con Ubuntu 24.04 LTS. Un nodo completo es un elemento crítico de la infraestructura de Bitcoin, ya que valida completamente todas las transacciones y bloques, asegurando la descentralización y seguridad de la red.
Qué obtendrá el lector al final:
- Tendrá su propia copia, independiente y completamente sincronizada de toda la cadena de bloques de Bitcoin.
- Su nodo participará activamente en la verificación y retransmisión de transacciones, así como en la seguridad de la red.
- Podrá usar su nodo para conectar carteras ligeras (por ejemplo, Electrum, Sparrow) o para desarrollar sus propias aplicaciones descentralizadas (dApps), basándose en datos verificados.
- Adquirirá experiencia trabajando con servidores Linux, configurando la seguridad y automatizando el mantenimiento.
Qué alternativas existen y por qué autoalojar en un VPS:
Existen alternativas para ejecutar su propio nodo, como el uso de API de terceros (por ejemplo, Blockchair, Blockchain.com) o carteras ligeras que dependen de nodos de otros. Sin embargo, estos enfoques tienen desventajas significativas:
- Dependencia de terceros: Confía la verificación de transacciones y saldos a otra persona, lo que contradice los principios fundamentales de la descentralización de Bitcoin. Esto puede llevar a la pérdida de privacidad y censura.
- Riesgos de seguridad: La transmisión de sus datos a servicios de terceros aumenta la superficie de ataque y los riesgos de compromiso.
- Limitaciones y costos: Muchas API de terceros tienen limitaciones en el número de solicitudes o requieren una suscripción de pago para un uso completo.
Ejecutar un nodo autoalojado en un VPS elimina estos problemas. Usted controla completamente sus datos, garantiza la máxima privacidad y seguridad, y contribuye activamente a la descentralización de la red. Un VPS ofrece un equilibrio óptimo entre el control de un servidor dedicado y la flexibilidad de las soluciones en la nube, lo que lo convierte en una opción ideal para la mayoría de los usuarios.
Qué configuración de VPS se necesita para esta tarea
Ejecutar un nodo completo de Bitcoin requiere ciertos recursos, principalmente debido al tamaño de la cadena de bloques y la necesidad de su sincronización constante. Para 2026, el tamaño de la cadena de bloques de Bitcoin seguirá creciendo, por lo que es importante elegir una configuración con margen.
Requisitos mínimos (actuales para 2026):
- CPU: 2 núcleos. Bitcoin Core no requiere un procesador muy potente, pero varios núcleos son útiles para procesar transacciones e indexación.
- RAM: 4 GB. Aunque el nodo en sí puede funcionar con 2 GB, 4 GB garantizan un funcionamiento más fluido, especialmente durante la sincronización inicial y al usar servicios adicionales (por ejemplo, ElectrumX).
- Disco: SSD de 2 TB. Esto es críticamente importante. La cadena de bloques de Bitcoin ya supera los 600 GB y sigue creciendo. Para 2026, su tamaño podría alcanzar fácilmente 1-1.5 TB, por lo que un SSD de 2 TB es un mínimo razonable con margen para varios años. Un SSD acelera significativamente la sincronización inicial y el funcionamiento diario del nodo.
- Red: 100 Mbit/s o superior. Tráfico ilimitado o un límite muy alto (varios TB al mes). La sincronización inicial requerirá la descarga de toda la cadena de bloques, y luego el nodo intercambiará datos constantemente con la red.
Plan de VPS específico para la tarea:
Para un funcionamiento estable y productivo de un nodo completo de Bitcoin, especialmente considerando el crecimiento de la cadena de bloques para 2026, se recomienda la siguiente configuración:
- CPU: 4 núcleos.
- RAM: 8 GB.
- Disco: SSD NVMe de 2 TB. Un SSD NVMe proporcionará el mejor rendimiento para las operaciones de lectura/escritura de la cadena de bloques.
- Red: Puerto de 1 Gbit/s con tráfico ilimitado.
Este plan garantizará un funcionamiento cómodo del nodo, una sincronización rápida y un margen de recursos para futuras necesidades. Se puede adquirir un VPS con las características indicadas.
Cuándo se necesita un servidor dedicado, no un VPS:
Un servidor dedicado puede ser necesario si planea:
- Ejecutar varios servicios de Bitcoin que consumen muchos recursos (por ejemplo, varios nodos, ElectrumX, un explorador de blockchain, un nodo de Lightning Network).
- Procesar un volumen muy grande de solicitudes a su nodo (por ejemplo, para una aplicación o servicio grande).
- Se requiere el máximo rendimiento de entrada/salida, que los VPS no siempre pueden proporcionar debido a la virtualización.
- Necesita garantías de recursos que un VPS puede no siempre ofrecer.
Para la mayoría de los usuarios individuales y equipos pequeños, un VPS con las características indicadas será más que suficiente. Si decide que necesita un servidor dedicado, puede considerar un servidor dedicado adecuado.
Ubicación: qué influye:
- Ping y latencia: Cuanto más cerca esté el servidor de usted, menor será el ping. Esto es importante si se conectará con frecuencia al servidor por SSH o lo usará para aplicaciones interactivas.
- Conectividad de red: La ubicación del servidor en un gran centro de datos con buenos canales de comunicación garantizará una sincronización más rápida y estable con la red de Bitcoin.
- Jurisdicción: La elección del país de alojamiento puede ser importante en términos de legislación y privacidad. Asegúrese de que la jurisdicción cumpla con sus requisitos.
Para un nodo completo de Bitcoin, la buena conectividad de red y la velocidad son cruciales, por lo que elija una ubicación con canales de comunicación fiables, preferiblemente en un gran centro de internet.
Preparación del servidor
Antes de instalar Bitcoin Core, es necesario realizar una configuración básica de seguridad y actualizar el sistema operativo. Utilizaremos Ubuntu 24.04 LTS.
1. Conexión por SSH y creación de un nuevo usuario
Inicialmente, lo más probable es que se conecte como root. Se recomienda encarecidamente no usar root para el trabajo diario. Crearemos un nuevo usuario con permisos sudo.
# Reemplace 'youruser' con el nombre de usuario deseado
sudo adduser youruser
Introduzca una contraseña para el nuevo usuario y confirme los demás datos (puede dejarlos en blanco). Ahora añada el usuario al grupo sudo:
sudo usermod -aG sudo youruser
Salga de la sesión de root e inicie sesión con el nuevo usuario:
exit
# Ahora conéctese como 'youruser'
ssh youruser@your_vps_ip
2. Configuración de claves SSH (recomendado)
El uso de claves SSH en lugar de contraseña aumenta significativamente la seguridad. Genere las claves en su máquina local (si aún no lo ha hecho):
# En su máquina local
ssh-keygen -t rsa -b 4096
Copie la clave pública al servidor:
# En su máquina local
ssh-copy-id youruser@your_vps_ip
Ahora puede conectarse sin contraseña. Después de verificar que el inicio de sesión con clave funciona, desactive el inicio de sesión con contraseña para SSH, editando el archivo /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
Encuentre las líneas y cambie/añada:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
También se recomienda cambiar el puerto SSH estándar (22) a otro, por ejemplo, 2222. Busque la línea #Port 22, descoméntela y cámbiela:
Port 2222
Guarde los cambios (Ctrl+O, Enter) y salga (Ctrl+X). Reinicie el servicio SSH:
sudo systemctl restart sshd
Ahora, en la próxima conexión, use el nuevo puerto: ssh -p 2222 youruser@your_vps_ip.
3. Actualización del sistema e instalación de utilidades básicas
Actualice la lista de paquetes y el sistema a las últimas versiones. Instale las utilidades necesarias.
# Actualización de la lista de paquetes
sudo apt update
# Actualización de los paquetes instalados del sistema
sudo apt upgrade -y
# Instalación de utilidades básicas, si no están
sudo apt install -y curl wget git build-essential htop screen unattended-upgrades
4. Configuración del firewall (UFW)
UFW (Uncomplicated Firewall) es una utilidad conveniente para administrar iptables. Lo configuraremos para permitir solo las conexiones necesarias.
# Instalación de UFW, si no está instalado
sudo apt install -y ufw
# Permitir SSH (asegúrese de usar su puerto si lo ha cambiado)
# Por ejemplo, si usa el puerto 2222
sudo ufw allow 2222/tcp
# Permitir conexiones entrantes para Bitcoin P2P (puerto 8333)
sudo ufw allow 8333/tcp
# Permitir conexiones salientes (por defecto permitidas, pero se puede especificar explícitamente)
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Habilitar el firewall
sudo ufw enable
Confirme la acción introduciendo y. Verifique el estado del firewall:
sudo ufw status verbose
5. Instalación de Fail2ban
Fail2ban escanea los registros de los servicios (SSH, servidores web, etc.) en busca de actividad sospechosa (múltiples intentos de inicio de sesión fallidos) y bloquea temporal o permanentemente las direcciones IP de los infractores.
# Instalación de Fail2ban
sudo apt install -y fail2ban
Cree una configuración local de Fail2ban para que sus cambios no sean sobrescritos durante una actualización:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
En el archivo jail.local, encuentre la sección [sshd] y asegúrese de que esté habilitada (enabled = true). Si cambió el puerto SSH, especifíquelo:
[sshd]
enabled = true
port = 2222 # Su puerto SSH
maxretry = 3 # Número de intentos fallidos antes del bloqueo
bantime = 1h # Tiempo de bloqueo (1 hora)
Guarde los cambios y reinicie Fail2ban:
sudo systemctl restart fail2ban
Ahora su servidor está listo para la instalación de Bitcoin Core.
Instalación de software — paso a paso
Instalaremos Bitcoin Core versión 26.0 (o posterior, la actual para 2026) desde los archivos binarios oficiales. Este método es preferible a la compilación desde el código fuente para la mayoría de los usuarios, ya que es más rápido y consume menos recursos. Para mayor comodidad, crearemos un usuario separado bitcoin, bajo el cual operará el nodo.
1. Creación del usuario Bitcoin
Crearemos un usuario del sistema bitcoin que no tendrá acceso a la shell ni al directorio de inicio, lo que aumentará la seguridad.
# Создание системного пользователя 'bitcoin'
sudo adduser --system --group --home /var/lib/bitcoin bitcoin
Crearemos un directorio para los datos de la cadena de bloques y estableceremos los permisos correctos:
# Создание директории для данных Bitcoin и установка владельца
sudo mkdir -p /var/lib/bitcoin/.bitcoin
sudo chown -R bitcoin:bitcoin /var/lib/bitcoin
2. Descarga de Bitcoin Core
Nos dirigiremos al directorio temporal y descargaremos los archivos binarios de Bitcoin Core. Para 2026, la versión actual podría ser 26.0, 27.0 o superior. La última versión estable se puede verificar en el sitio web oficial de Bitcoin Core o en su repositorio de GitHub.
A modo de ejemplo, utilizaremos la versión 26.0, asumiendo que esta o sus actualizaciones menores serán las actuales. Reemplace la URL por la actual para 2026.
# Переходим во временную директорию
cd /tmp
# Загружаем архив Bitcoin Core (пример для Linux x86_64, версия 26.0)
# Проверяйте актуальный URL на bitcoincore.org/en/download/
wget https://bitcoincore.org/bin/bitcoin-core-26.0/bitcoin-26.0-x86_64-linux-gnu.tar.gz
# Загружаем файл подписей (SHA256SUMS)
wget https://bitcoincore.org/bin/bitcoin-core-26.0/SHA256SUMS
# Загружаем файл подписей (SHA256SUMS.asc) для верификации
wget https://bitcoincore.org/bin/bitcoin-core-26.0/SHA256SUMS.asc
3. Verificación de los archivos descargados
Es extremadamente importante asegurarse de la integridad y autenticidad de los archivos descargados. Verificaremos las sumas SHA256 y la firma GPG.
# Проверка SHA256-суммы
sha256sum --check --ignore-missing SHA256SUMS
Debería ver bitcoin-26.0-x86_64-linux-gnu.tar.gz: OK. Si no, el archivo está dañado.
Ahora importaremos las claves públicas GPG de los desarrolladores de Bitcoin Core. La lista de claves se puede encontrar en bitcoincore.org/en/download/.
# Импорт публичных GPG-ключей (пример ключей для разработчиков Bitcoin Core)
# Используйте актуальные ключи с bitcoincore.org
gpg --keyserver hkps://keys.openpgp.org --recv-keys 01090831DBF626E7C4106593E20F76A000216E14
gpg --keyserver hkps://keys.openpgp.org --recv-keys 898BDDCCEB09F62EE8482A6C1167664B7AB8D654
Después de importar las claves, verificaremos la firma SHA256SUMS.asc:
# Верификация GPG-подписи
gpg --verify SHA256SUMS.asc
Debería ver un mensaje que indique una buena firma (Good signature from "..."). Es posible que haya una advertencia de que la clave no es completamente de confianza (This key is not certified with a trusted signature!), esto es normal si ha verificado la huella digital de la clave.
4. Extracción e instalación de los archivos binarios
# Распаковка архива
tar -xzvf bitcoin-26.0-x86_64-linux-gnu.tar.gz
# Копирование бинарных файлов в /usr/local/bin
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-26.0/bin/
Eliminamos los archivos temporales:
# Удаление временных файлов
rm -rf bitcoin-26.0 bitcoin-26.0-x86_64-linux-gnu.tar.gz SHA256SUMS SHA256SUMS.asc
5. Creación del servicio systemd para Bitcoin Core
Ejecutaremos Bitcoin Core como un servicio del sistema, lo que le permitirá iniciarse automáticamente al arrancar el servidor y ser gestionado mediante systemctl.
# Создание файла сервиса
sudo nano /etc/systemd/system/bitcoind.service
Inserte el siguiente contenido:
[Unit]
Description=Bitcoin daemon
After=network.target
[Service]
User=bitcoin
Group=bitcoin
Type=forking
PIDFile=/var/lib/bitcoin/.bitcoin/bitcoind.pid
ExecStart=/usr/local/bin/bitcoind -daemon -pid=/var/lib/bitcoin/.bitcoin/bitcoind.pid -conf=/var/lib/bitcoin/.bitcoin/bitcoin.conf -datadir=/var/lib/bitcoin/.bitcoin
ExecStop=/usr/local/bin/bitcoin-cli -conf=/var/lib/bitcoin/.bitcoin/bitcoin.conf -datadir=/var/lib/bitcoin/.bitcoin stop
Restart=on-failure
PrivateTmp=true
TimeoutStopSec=120
LimitNOFILE=8192
[Install]
WantedBy=multi-user.target
Guarde el archivo y cierre el editor.
Recargue systemd para que reconozca el nuevo servicio y habilite su inicio automático:
# Перезагрузка systemd
sudo systemctl daemon-reload
# Включение автозапуска сервиса при загрузке системы
sudo systemctl enable bitcoind
Ahora Bitcoin Core está instalado y listo para ejecutarse.