Guía de Inicio Rápido
En el vasto universo de las tecnologías blockchain, donde cada segundo cuenta y la complejidad técnica puede intimidar, KodeChain emerge como un faro de simplicidad y poder. Esta guía te llevará de la curiosidad inicial a tener un nodo completamente funcional en menos de 10 minutos, revelando cómo el código en main.go y los módulos subyacentes transforman comandos simples en una infraestructura blockchain robusta y segura.
Requisitos Previos
Requisitos de Hardware
- CPU: 2+ cores - El corazón computacional que ejecutará el consenso DPoS y PBFT
- RAM: 4 GB mínimo, 8 GB recomendado - Memoria para mantener el estado de la blockchain y procesar transacciones
- Almacenamiento: 50 GB SSD - Espacio para la base de datos LevelDB que almacena bloques y estado
- Red: Conexión a Internet estable (1 Mbps+) - Conectividad para el protocolo P2P y sincronización
Requisitos de Software
- Sistema Operativo: Ubuntu 20.04+, macOS 11+, o Windows 10+ - Plataformas probadas para la estabilidad del runtime Go
- Go: Versión 1.24.0 o superior - El lenguaje que impulsa toda la lógica de KodeChain, desde el consenso hasta la VM
- Git: Para clonar el repositorio - Herramienta esencial para acceder al código fuente
- Make: Para compilación (opcional) - Automatiza el proceso de build definido en los Makefiles
Instalación Rápida
1. Clonar el Repositorio
El viaje comienza con una simple clonación que trae todo el poder de KodeChain a tu máquina local:
git clone https://github.com/kodechain/kodechain-node-validator.git
cd kodechain-node-validator
Este comando descarga no solo el código fuente, sino toda la arquitectura modular que hace de KodeChain un sistema tan versátil.
2. Instalar Dependencias
Go gestiona las dependencias a través de módulos, asegurando que todas las bibliotecas criptográficas, de red y de consenso estén disponibles:
go mod download
Este paso instala dependencias críticas como las bibliotecas post-cuánticas ML-DSA-65, los paquetes de red P2P, y las utilidades de consenso.
3. Compilar el Nodo
La compilación transforma el código Go en un ejecutable nativo, optimizado para tu arquitectura:
go build -o kodechain main.go
O usando Make para una experiencia más automatizada:
make build
El resultado es un binario que encapsula toda la lógica desde main.go, pasando por los módulos de consenso en consensus/, hasta la máquina virtual en vm/.
4. Configurar el Nodo
La configuración es el puente entre el código y tu entorno específico. Crea un archivo config.json que defina cómo tu nodo interactuará con la red:
{
"node_id": "node-1",
"consensus_type": "dpos",
"network": {
"p2p_port": 30303,
"http_port": 8545,
"discovery_port": 30301
},
"bootstrap_nodes": [
"enode://[node-id]@seed1.kodechain.io:30303",
"enode://[node-id]@seed2.kodechain.io:30303"
]
}
Cada parámetro tiene un propósito específico: el node_id identifica tu nodo en la red P2P, el consensus_type determina si usarás DPoS o PBFT, y los puertos definen los puntos de comunicación.
5. Iniciar el Nodo
Con la configuración lista, un simple comando despierta toda la infraestructura blockchain:
./kodechain --config config.json
O con parámetros en línea para mayor flexibilidad:
./kodechain \
--node-id "node-1" \
--consensus dpos \
--http-port 8545 \
--p2p-port 30303
En este momento, el código en main.go inicializa la aplicación, carga la configuración, y comienza el proceso de arranque que incluye la sincronización con peers, la inicialización del consenso, y la apertura de la API REST.
Verificación de Instalación
1. Verificar Estado del Nodo
La primera verificación confirma que tu nodo no solo está ejecutándose, sino que está vivo y comunicándose con la red:
curl http://localhost:8545/api/blockchain/status
Respuesta esperada:
{
"status": "syncing",
"current_height": 1250,
"latest_hash": "0x123...",
"peer_count": 8,
"consensus_type": "dpos"
}
Esta respuesta revela el estado interno del nodo: está sincronizando con la red (el proceso que descarga y valida la blockchain completa), conoce otros 8 nodos peers, y está configurado para usar consenso DPoS.
2. Verificar Peers Conectados
Los peers son los otros nodos con los que tu instancia se comunica para mantener la red distribuida:
curl http://localhost:8545/api/network/peers
Esta llamada revela la tabla de enrutamiento Kademlia que mantiene el módulo P2P, mostrando cómo tu nodo se integra en la red peer-to-peer.
3. Verificar Sincronización
La sincronización es el proceso crítico donde tu nodo descarga toda la historia de la blockchain:
curl http://localhost:8545/api/blockchain/latest
Este endpoint retorna el último bloque conocido, permitiéndote verificar que la sincronización progresa correctamente y que tu nodo tiene acceso a la información más reciente de la cadena.
Crear tu Primera Wallet
1. Generar Claves
La seguridad post-cuántica comienza con la generación de claves resistente a ataques cuánticos:
cd handlers
make generate
Este comando ejecuta el código en handlers/validator_key_generator.go, que utiliza algoritmos ML-DSA-65 para crear claves que resistirán tanto ataques clásicos como cuánticos. Generará:
keystore-[timestamp].json- Tu clave privada encriptada, protegida por criptografía post-cuánticadeposit_data-[timestamp].json- Los datos necesarios para staking y validaciónwithdrawal_credentials.json- Las credenciales para retirar fondos de staking
2. Obtener tu Address
Tu dirección es la identidad pública derivada de tu clave privada:
cat keystore-*.json | jq -r '.address'
Esta dirección, con el prefijo 0x, es lo que usarás para recibir transacciones y participar en el staking.
3. Solicitar Tokens de Testnet
Para experimentar sin riesgos, únete a la comunidad KodeChain en Discord y solicita tokens de prueba:
!faucet [tu-address]
El faucet de testnet te proporcionará KDC gratuitos para experimentar con transacciones, contratos inteligentes y staking sin comprometer fondos reales.
Realizar tu Primera Transacción
1. Crear Transacción
Tu primera transacción marca el momento en que pasas de observador a participante activo en la red KodeChain:
curl -X POST http://localhost:8545/api/transactions/send \
-H "Content-Type: application/json" \
-d '{
"from": "0xYourAddress",
"to": "0xRecipientAddress",
"amount": "1000000000000000000",
"privateKey": "your-private-key"
}'
Esta llamada HTTP llega al endpoint definido en api/endpoints/transactions.go, que valida la transacción, la firma con tu clave privada usando ML-DSA-65, y la añade al mempool para ser incluida en el siguiente bloque por el consenso DPoS.
2. Verificar Transacción
Una vez enviada, puedes rastrear el viaje de tu transacción a través de la red:
curl http://localhost:8545/api/transactions/[tx-hash]
Este endpoint consulta la base de datos LevelDB para encontrar tu transacción, mostrando su estado: pendiente en el mempool, confirmada en un bloque, o fallida por algún motivo.
Explorar la Blockchain
Ver Últimos Bloques
curl http://localhost:8545/api/blockchain/blocks?limit=10
Ver Bloque Específico
curl http://localhost:8545/api/blockchain/blocks/100
Ver Transacciones Pendientes
curl http://localhost:8545/api/transactions/pending
Monitoreo Básico
Ver Logs del Nodo
tail -f kodechain.log
Estadísticas de Red
curl http://localhost:8545/api/network/status
Estado de Mempool
curl http://localhost:8545/api/mempool/stats
Problemas Comunes
El nodo no sincroniza
Solución:
- Verificar conexión a Internet
- Verificar que los puertos estén abiertos
- Verificar nodos bootstrap en configuración
# Verificar conectividad
curl http://localhost:8545/api/network/peers
# Reiniciar nodo
./kodechain --config config.json
No puedo conectarme a peers
Solución:
- Verificar configuración de firewall
- Verificar que puertos estén abiertos
- Intentar con UPnP habilitado
# Verificar puertos abiertos
netstat -tuln | grep -E '30303|8545'
# Habilitar UPnP
./kodechain --config config.json --upnp
Errores de memoria
Solución:
- Aumentar memoria asignada
- Limpiar blockchain antigua
- Reducir cache size
# Limpiar blockchain
rm -rf ./data/blockchain
# Reiniciar con menos cache
./kodechain --config config.json --cache 512