Guía Completa: Instalar un Nodo Chainweb
Aprende a instalar, configurar y mantener tu propio nodo Chainweb para la red Kadena Community Edition. Cubre desde la preparación del sistema hasta el monitoreo avanzado.
1. Introducción
¿Qué es un Nodo Chainweb?
Un nodo Chainweb participa en la red Kadena Community Edition, validando transacciones, almacenando la blockchain y propagando bloques. Chainweb utiliza 20 cadenas paralelas (braided chains) para alta escalabilidad.
- Independencia de endpoints externos
- Privacidad en tus transacciones
- Minería en solitario con tu ASIC
- Desarrollo y pruebas de smart contracts
- Contribuir a descentralizar la red
Tipos de Nodos
| Tipo | Descripción | Uso |
|---|---|---|
| Full Node | Toda la blockchain | Minería, API |
| Pruned Node | Solo datos recientes | Recursos limitados |
| Mining Node | Full + mining API | Minería solitaria |
2. Requisitos del Sistema
⚠️ Mínimo
- CPU: 4 cores / 8 threads
- RAM: 8 GB
- Disco: 500 GB SSD
- Red: 100 Mbps
- IP: IPv4 pública
Puede experimentar lentitud
✅ Recomendado
- CPU: 8+ cores / 16 threads
- RAM: 16-32 GB
- Disco: 1 TB NVMe SSD
- Red: 1 Gbps
- IP: IPv4 estática
Rendimiento óptimo
La blockchain crece ~1-2 GB/día. Actualmente ~350 GB. Planifica 1 TB para 1-2 años.
Software
- SO: Ubuntu 22.04/24.04 LTS (recomendado)
- Alternativas: Debian 11/12, Rocky Linux 9
3. Preparación del Sistema
3.1 Actualizar sistema
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git htop iotop ncdu ufw
3.2 Crear usuario dedicado
sudo useradd -m -s /bin/bash kadena
sudo mkdir -p /home/kadena/.local/share/chainweb-node
sudo mkdir -p /home/kadena/bin /home/kadena/config
sudo chown -R kadena:kadena /home/kadena
3.3 Configurar límites
sudo nano /etc/security/limits.conf
Añadir al final:
kadena soft nofile 65535
kadena hard nofile 65535
kadena soft nproc 65535
kadena hard nproc 65535
4. Instalación del Nodo
sudo su - kadena
cd ~/bin
# Descargar (verificar versión actual en GitHub)
wget https://github.com/kadena-community/chainweb-node/releases/download/2.27/chainweb-node-2.27.ghc-9.6.5.ubuntu-22.04.4f50efd.tar.gz
tar -xzf chainweb-node-2.27.ghc-9.6.5.ubuntu-22.04.4f50efd.tar.gz
mv chainweb-node-2.27.ghc-9.6.5.ubuntu-22.04.4f50efd chainweb-node
chmod +x chainweb-node
./chainweb-node --version
chainweb-node-2.27 (4f50efd)5. Configuración
nano ~/config/mainnet.yaml
chainweb:
chainwebVersion: mainnet01
databaseDirectory: /home/kadena/.local/share/chainweb-node/mainnet01
p2p:
port: 1789
interface: 0.0.0.0
maxPeerCount: 50
peers:
- address:
hostname: us-e1.chainweb.com
port: 1789
- address:
hostname: api.chainweb-community.org
port: 1789
serviceApi:
port: 1848
interface: 0.0.0.0
miningApi:
enabled: false
pactApi:
enabled: true
logging:
level: info
backend: text
Configuraciones por uso
serviceApi:
interface: 127.0.0.1serviceApi:
miningApi:
enabled: true6. Usar Snapshots (Recomendado)
sudo su - kadena
cd ~/.local/share/chainweb-node
mv mainnet01 mainnet01.old 2>/dev/null || true
# Descargar snapshot
wget http://snapshot.dnns.es:82/chainweb-db-mainnet01-latest.tar.gz
# Extraer (30-60 min)
tar -xzf chainweb-db-mainnet01-latest.tar.gz
rm chainweb-db-mainnet01-latest.tar.gz
7. Configurar Systemd
exit # salir de kadena
sudo nano /etc/systemd/system/chainweb-node.service
[Unit]
Description=Chainweb Node - Kadena Community Edition
After=network-online.target
[Service]
User=kadena
Group=kadena
Type=simple
ExecStart=/home/kadena/bin/chainweb-node --config-file=/home/kadena/config/mainnet.yaml
Restart=always
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable chainweb-node
sudo systemctl start chainweb-node
sudo systemctl status chainweb-node
Comandos útiles
sudo journalctl -u chainweb-node -f # logs tiempo real
sudo systemctl restart chainweb-node # reiniciar
sudo systemctl stop chainweb-node # detener
8. Configurar Firewall
sudo ufw enable
sudo ufw allow 22/tcp # SSH
sudo ufw allow 1789/tcp # P2P (requerido)
# sudo ufw allow 1848/tcp # API (opcional)
sudo ufw status
- 1789 TCP → IP servidor (P2P)
- 1848 TCP → IP servidor (API, opcional)
9. Monitoreo
# Altura local
curl -s http://localhost:1848/chainweb/0.0/mainnet01/cut | jq '.hashes["0"].height'
# Comparar con nodo público
curl -s https://api.chainweb-community.org/chainweb/0.0/mainnet01/cut | jq '.hashes["0"].height'
10. Actualización
sudo systemctl stop chainweb-node
sudo su - kadena
cp ~/bin/chainweb-node ~/bin/chainweb-node.backup
cd ~/bin
wget https://github.com/kadena-community/chainweb-node/releases/download/NUEVA_VERSION/...
tar -xzf chainweb-node-*.tar.gz
chmod +x chainweb-node
exit
sudo systemctl start chainweb-node
11. Troubleshooting
El nodo no arranca
sudo journalctl -u chainweb-node -n 50 --no-pager- Verificar permisos usuario kadena
- Puerto ocupado:
sudo lsof -i :1789 - Base de datos corrupta → snapshot nuevo
Sincronización lenta
- Usar snapshot reciente
- Verificar puerto 1789 abierto
- Comprobar disco:
sudo iotop
12. FAQ
~500-700 GB adicionales. Recomendamos 1 TB mínimo.
No recomendado. Las 20 cadenas requieren mucha CPU/RAM.
Muy recomendable. Con IP dinámica perderás peers al cambiar.
No directamente. Solo vía minería. Pero ayudas a descentralizar.
🎉 ¡Felicidades!
Ya tienes tu nodo Chainweb funcionando. Recuerda:
- Mantener actualizado
- Monitorear espacio en disco
- Hacer backups de config
- Unirte al Discord si hay problemas