Saltar al contenido principal

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

  1. 🔑 Genera tus claves de validador
  2. 💰 Haz stake de 10 KDC
  3. 🔐 Activa tu validador
  4. 📊 Configura monitoreo avanzado

Instalación en Ubuntu completada