Instalación en Ubuntu
Guía paso a paso para instalar KodeChain en Ubuntu 20.04 LTS o superior.
Requisitos Previos
- Ubuntu 20.04 LTS, 22.04 LTS, o 24.04 LTS
- Acceso sudo
- Conexión a Internet
1. Actualizar el Sistema
sudo apt update && sudo apt upgrade -y
2. Instalar Dependencias
Instalar Go 1.24
# Descargar Go
wget https://go.dev/dl/go1.24.0.linux-amd64.tar.gz
# Extraer
sudo tar -C /usr/local -xzf go1.24.0.linux-amd64.tar.gz
# Configurar variables de entorno
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc
source ~/.bashrc
# Verificar instalación
go version
Instalar Git y Make
sudo apt install -y git make build-essential
Instalar LevelDB (opcional)
sudo apt install -y libleveldb-dev
3. Clonar el Repositorio
cd ~
git clone https://github.com/kodechain/kodechain-node-validator.git
cd kodechain-node-validator
4. Instalar Dependencias de Go
go mod download
go mod verify
5. Compilar KodeChain
go build -o kodechain main.go
O usando Make:
make build
6. Crear Estructura de Directorios
mkdir -p ~/.kodechain/{data,keystore,logs}
7. Configurar el Nodo
Crea el archivo de configuración:
nano ~/.kodechain/config.json
Contenido:
{
"node_id": "ubuntu-node-1",
"consensus_type": "dpos",
"network": {
"p2p_port": 30303,
"http_port": 8545,
"discovery_port": 30301
},
"bootstrap_nodes": [
"enode://[id]@seed1.kodechain.io:30303",
"enode://[id]@seed2.kodechain.io:30303"
],
"data_dir": "/home/$USER/.kodechain/data",
"keystore_dir": "/home/$USER/.kodechain/keystore",
"log_level": "info"
}
8. Configurar Firewall (UFW)
# Habilitar UFW
sudo ufw enable
# Permitir SSH (importante!)
sudo ufw allow ssh
# Permitir puertos de KodeChain
sudo ufw allow 30303/tcp comment 'KodeChain P2P TCP'
sudo ufw allow 30303/udp comment 'KodeChain P2P UDP'
sudo ufw allow 8545/tcp comment 'KodeChain HTTP API'
sudo ufw allow 30301/udp comment 'KodeChain Discovery'
# Verificar reglas
sudo ufw status
9. Crear Servicio Systemd (Opcional)
Para que el nodo se inicie automáticamente:
sudo nano /etc/systemd/system/kodechain.service
Contenido:
[Unit]
Description=KodeChain Node
After=network.target
[Service]
Type=simple
User=YOUR_USERNAME
WorkingDirectory=/home/YOUR_USERNAME/kodechain-node-validator
ExecStart=/home/YOUR_USERNAME/kodechain-node-validator/kodechain --config /home/YOUR_USERNAME/.kodechain/config.json
Restart=on-failure
RestartSec=10
StandardOutput=append:/home/YOUR_USERNAME/.kodechain/logs/kodechain.log
StandardError=append:/home/YOUR_USERNAME/.kodechain/logs/kodechain-error.log
# Límites de recursos
LimitNOFILE=65536
LimitNPROC=32768
[Install]
WantedBy=multi-user.target
Reemplaza YOUR_USERNAME con tu usuario.
Habilita y inicia el servicio:
sudo systemctl daemon-reload
sudo systemctl enable kodechain
sudo systemctl start kodechain
Verifica el estado:
sudo systemctl status kodechain
Ver logs:
sudo journalctl -u kodechain -f
10. Verificar Instalación
# Verificar que el nodo está corriendo
curl http://localhost:8545/api/blockchain/status
# Verificar peers
curl http://localhost:8545/api/network/peers
# Ver logs
tail -f ~/.kodechain/logs/kodechain.log
11. Optimización para Producción
Aumentar Límites del Sistema
sudo nano /etc/security/limits.conf
Añadir:
* soft nofile 65536
* hard nofile 65536
* soft nproc 32768
* hard nproc 32768
Configurar Swap (si es necesario)
# Crear archivo swap de 4GB
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Hacer permanente
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Configurar NTP para sincronización de tiempo
sudo apt install -y ntp
sudo systemctl enable ntp
sudo systemctl start ntp
12. Seguridad Adicional
Configurar Fail2Ban
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Deshabilitar Root Login SSH
sudo nano /etc/ssh/sshd_config
Cambiar:
PermitRootLogin no
Reiniciar SSH:
sudo systemctl restart sshd
Configurar Actualizaciones Automáticas
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
13. Backup Automático
Crea un script de backup:
nano ~/backup-kodechain.sh
Contenido:
#!/bin/bash
BACKUP_DIR="/backup/kodechain"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Backup de keystore
tar -czf $BACKUP_DIR/keystore_$DATE.tar.gz ~/.kodechain/keystore/
# Backup de configuración
cp ~/.kodechain/config.json $BACKUP_DIR/config_$DATE.json
# Limpiar backups antiguos (mantener últimos 7 días)
find $BACKUP_DIR -type f -mtime +7 -delete
echo "Backup completado: $DATE"
Dale permisos:
chmod +x ~/backup-kodechain.sh
Programa con cron:
crontab -e
Añadir (backup diario a las 2 AM):
0 2 * * * /home/YOUR_USERNAME/backup-kodechain.sh
Solución de Problemas
Error: "cannot find module"
go clean -modcache
go mod download
Error: "port already in use"
# Encontrar proceso
sudo lsof -i :8545
sudo lsof -i :30303
# Terminar proceso
sudo kill -9 [PID]
Nodo no sincroniza
# Verificar conectividad
ping seed1.kodechain.io
# Verificar DNS
nslookup seed1.kodechain.io
# Reiniciar nodo
sudo systemctl restart kodechain
Problemas de rendimiento
# Ver uso de recursos
htop
# Ver uso de disco
df -h
# Ver estadísticas de red
nethogs
Monitoreo
Instala herramientas de monitoreo:
# htop para CPU/RAM
sudo apt install -y htop
# iotop para I/O de disco
sudo apt install -y iotop
# nethogs para red
sudo apt install -y nethogs
# glances (dashboard completo)
sudo apt install -y glances
Próximos Pasos
- 🔑 Genera tus claves de validador
- 💰 Haz stake de 10 KDC
- 🔐 Activa tu validador
- 📊 Configura monitoreo avanzado
Instalación en Ubuntu completada ✅