Resumen
Esta guía cubre todo lo que los desarrolladores necesitan saber sobre los nodos de Polkadot: tipos de nodos, cómo ejecutar tu propio nodo, cómo conectarte mediante endpoints RPC y cómo elegir entre nodos autogestionados y proporcionados por un proveedor. Ya sea que estés construyendo una dApp, una billetera o una herramienta de infraestructura, aprenderás los pasos prácticos para interactuar con la red de Polkadot de manera confiable.
Lista de verificación para decidir sobre nodos de Polkadot
Antes de decidir cómo conectarte a Polkadot, considera estos factores:
- ¿Necesitas acceso al estado histórico? Si es así, usa un nodo de archivo o un proveedor de RPC con soporte de archivo.
- ¿Cuál es tu volumen de solicitudes? Las dApps de alto rendimiento pueden beneficiarse de nodos dedicados o un proveedor con límites de tasa escalables.
- ¿Necesitas soporte WebSocket? Las aplicaciones en tiempo real requieren endpoints WebSocket.
- ¿Cuál es tu presupuesto? El autoalojamiento implica costos de servidor y mantenimiento; los planes de proveedores ofrecen precios predecibles.
- ¿Qué tan importante es el tiempo de actividad? Los proveedores a menudo tienen SLA; los nodos autogestionados requieren tu propio monitoreo.
- ¿Necesitas redundancia multirregión? Los proveedores distribuyen nodos globalmente para baja latencia.
¿Qué es un nodo de Polkadot?
Un nodo de Polkadot es un cliente de software que se conecta a la cadena de relevos de Polkadot o a una parachain. Mantiene una copia del estado de la blockchain, valida transacciones y sirve datos a las aplicaciones a través de JSON-RPC o WebSocket. Los nodos son esenciales para los desarrolladores que necesitan acceso directo y sin filtros a la red.
Tipos de nodos
| Tipo de nodo | Datos almacenados | Caso de uso |
|---|---|---|
| Nodo completo | Bloques recientes (historial podado) | Interacción general, consultas de saldo, envío de transacciones |
| Nodo de archivo | Historial completo desde el génesis | Consultas históricas, análisis, exploradores de bloques |
| Nodo validador | Nodo completo + producción de bloques | Staking, participación en consenso |
| Nodo collator | Nodo completo de parachain | Producción de bloques de parachain |
| Nodo ligero | Solo encabezados de bloque | Billeteras móviles, entornos de bajos recursos |
Cómo ejecutar tu propio nodo de Polkadot
Ejecutar un nodo te da control total sobre tu infraestructura. Aquí tienes una guía de configuración rápida.
Prerrequisitos
- Una máquina con al menos 4 núcleos de CPU, 8 GB de RAM y 200 GB de SSD (nodo completo) o 1 TB+ (nodo de archivo).
- Rust instalado (sigue rustup.rs).
- Dependencias de compilación:
build-essential,clang,cmake, etc.
Instalar y ejecutar
# Clonar el repositorio de Polkadot
git clone https://github.com/paritytech/polkadot-sdk.git
cd polkadot-sdk
# Compilar el binario (esto puede tomar un tiempo)
cargo build --release --features fast-runtime
# Ejecutar un nodo completo
./target/release/polkadot --chain polkadot --pruning archive --name my-node
Para nodos de archivo, usa --pruning archive. Para nodos validadores, añade --validator y configura las claves de sesión.
Opción con Docker
docker run -d --name polkadot-node \
-v /data:/data \
-p 30333:30333 \
-p 9933:9933 \
-p 9944:9944 \
parity/polkadot:latest \
--chain polkadot \
--pruning archive \
--name my-docker-node
Configuración RPC
Por defecto, el nodo expone RPC en 127.0.0.1:9933 (HTTP) y 127.0.0.1:9944 (WebSocket). Para acceso externo, usa --rpc-external y --ws-external, pero asegúralos con firewalls o TLS.
Conectarse a un nodo de Polkadot mediante RPC
Una vez que tu nodo esté ejecutándose, puedes interactuar con él usando JSON-RPC.
Ejemplo: Obtener el último bloque
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method": "chain_getBlock"}' \
http://localhost:9933
Ejemplo: Obtener saldo de cuenta
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method": "system_account", "params": ["5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"]}' \
http://localhost:9933
Usando WebSocket (JavaScript)
const { ApiPromise, WsProvider } = require('@polkadot/api');
async function main() {
const wsProvider = new WsProvider('ws://localhost:9944');
const api = await ApiPromise.create({ provider: wsProvider });
const chain = await api.rpc.system.chain();
console.log(`Connected to ${chain}`);
const lastHeader = await api.rpc.chain.getHeader();
console.log(`Last block number: ${lastHeader.number}`);
}
main().catch(console.error);
Autogestionado vs Proveedor RPC: ¿Cuál elegir?
| Criterio | Qué verificar | Por qué es importante |
|---|---|---|
| Costo | Autogestionado: servidor + ancho de banda. Proveedor: pago por uso o suscripción. | El autoalojamiento puede ser más barato con alto volumen, pero requiere gastos operativos. |
| Mantenimiento | Autogestionado: tú manejas actualizaciones, copias de seguridad, monitoreo. Proveedor: gestionado. | Reduce tiempo de ingeniería y riesgo de inactividad. |
| Escalabilidad | Autogestionado: escalado vertical limitado. Proveedor: escalado horizontal integrado. | Los picos repentinos de tráfico pueden abrumar un solo nodo. |
| Latencia | Autogestionado: depende de la ubicación de tu servidor. Proveedor: multirregión. | Menor latencia mejora la experiencia del usuario. |
| Fiabilidad | Autogestionado: punto único de fallo. Proveedor: clústeres redundantes. | Mayor tiempo de actividad para aplicaciones de producción. |
| Datos históricos | Autogestionado: se requiere nodo de archivo. Proveedor: a menudo incluye acceso de archivo. | Necesario para análisis y consultas históricas. |
Errores comunes y solución de problemas
- El nodo no sincroniza: Verifica la conectividad de red, el espacio en disco y que estés en la cadena correcta (Polkadot vs Kusama).
- Conexión RPC rechazada: Asegúrate de que el nodo esté ejecutándose y los puertos RPC estén abiertos. Usa
--rpc-cors allpara desarrollo. - Desconexiones de WebSocket: Algunos proveedores limitan la duración de la conexión. Usa pings keep-alive.
- Límite de tasa: Los endpoints públicos tienen límites. Para producción, usa un nodo dedicado o un proveedor con límites más altos.
- Falta de memoria: Los nodos de archivo requieren RAM significativa. Considera usar un proveedor para consultas de archivo.
Usar un proveedor RPC para Polkadot
Si prefieres no ejecutar tu propio nodo, los proveedores RPC ofrecen endpoints gestionados con alta disponibilidad. OnFinality proporciona endpoints RPC de Polkadot con soporte de archivo, trace y WebSocket. Puedes comenzar con una clave API gratuita y escalar según sea necesario.
Para conectarte al endpoint de Polkadot de OnFinality:
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method": "chain_getBlock"}' \
https://polkadot.api.onfinality.io/public
Para producción, regístrate para obtener una clave API y acceder a límites de tasa más altos y opciones de nodos dedicados. Consulta Precios de RPC y Redes compatibles para más detalles.
Conclusiones clave
- Los nodos de Polkadot vienen en varios tipos: completo, de archivo, validador, collator y ligero.
- Ejecutar tu propio nodo te da control total, pero requiere gestión de infraestructura.
- Los proveedores RPC ofrecen conveniencia, escalabilidad y fiabilidad para dApps de producción.
- Siempre usa endpoints autenticados para producción para evitar límites de tasa.
- Evalúa tus necesidades de datos históricos, rendimiento y latencia antes de elegir una configuración.
Preguntas frecuentes
¿Cuál es la diferencia entre un nodo completo y un nodo de archivo?
Un nodo completo almacena solo bloques recientes (historial podado), mientras que un nodo de archivo almacena todos los bloques desde el génesis. Los nodos de archivo son necesarios para consultas históricas, pero requieren más espacio en disco.
¿Puedo ejecutar un nodo de Polkadot en una laptop?
Sí, para desarrollo o pruebas. Para producción, usa un servidor con recursos adecuados.
¿Cuánto tiempo lleva sincronizar un nodo de Polkadot?
Sincronizar un nodo completo puede llevar varias horas; un nodo de archivo puede tardar días. Usar un proveedor como OnFinality elimina el tiempo de sincronización.
¿Necesito ejecutar un nodo para construir en Polkadot?
No, puedes usar proveedores RPC para interactuar con la red. Ejecutar un nodo es opcional, pero te da más control.
¿Qué métodos RPC están disponibles en Polkadot?
Polkadot admite métodos JSON-RPC estándar como chain_getBlock, system_account y state_getStorage, además de métodos específicos de Substrate. Consulta la documentación RPC de Polkadot para una lista completa.