Resumen
La API de Kusama proporciona acceso JSON-RPC y WebSocket a la red canaria de Kusama. Esta página cubre los endpoints disponibles, métodos comunes, ejemplos de conexión y cómo elegir entre infraestructura de nodos públicos, compartidos y dedicados para tu proyecto.
Lista de Verificación para la Decisión de la API de Kusama
Antes de integrar la API de Kusama, considera estos factores:
| Criterio | Qué verificar | Por qué es importante |
|---|---|---|
| Tipo de endpoint | Público, compartido (clave API) o nodo dedicado | Los endpoints públicos tienen límites de tasa; los nodos dedicados ofrecen control total |
| Datos de archivo | ¿Tu aplicación necesita estado histórico? | Los nodos de archivo proporcionan el historial completo del estado; los nodos completos solo datos recientes |
| Soporte WebSocket | ¿Se requieren suscripciones en tiempo real? | WebSocket permite actualizaciones basadas en eventos para billeteras y exploradores |
| Latencia geográfica | ¿Dónde están tus usuarios? | Elige un proveedor con nodos en regiones cercanas a tu base de usuarios |
| Límites de tasa | Solicitudes por segundo / por mes | Asegúrate de que los límites coincidan con tus patrones de tráfico |
| Fiabilidad | Historial de tiempo de actividad y conmutación por error | Las aplicaciones de producción necesitan endpoints redundantes |
| Modelo de costo | Pago por uso vs. tarifa plana mensual | Iguala el precio a tu volumen de uso esperado |
¿Qué es la API de Kusama?
La API de Kusama se refiere a las interfaces JSON-RPC y WebSocket que permiten a los desarrolladores interactuar con la blockchain de Kusama. Kusama es la red canaria de Polkadot — un entorno multicadena construido con Substrate que sirve como campo de pruebas para actualizaciones de runtime y despliegues de parachain antes de que se activen en Polkadot.
A través de la API de Kusama, puedes consultar datos en cadena (bloques, transacciones, cuentas, eventos), enviar extrínsecos (transacciones) y suscribirte a actualizaciones en tiempo real. La API sigue la especificación JSON-RPC de Substrate, con métodos adicionales para pallets específicos.
Endpoints de la API de Kusama
Endpoint Público (Con Límite de Tasa)
Para pruebas y uso de bajo volumen, está disponible un endpoint público:
HTTPS: https://kusama.api.onfinality.io/public
WSS: wss://kusama.api.onfinality.io/public-ws
Este endpoint tiene límite de tasa y no debe usarse en aplicaciones de producción.
Endpoint Compartido con Clave API
Después de registrarte para obtener una clave API, puedes usar un endpoint dedicado con límites de tasa más altos y acceso a datos de archivo:
HTTPS: https://kusama.api.onfinality.io/rpc?apikey=YOUR_API_KEY
WSS: wss://kusama.api.onfinality.io/ws?apikey=YOUR_API_KEY
Nodo Dedicado
Para máximo rendimiento y control, despliega un nodo dedicado de Kusama. Puedes elegir entre tipos de nodo completo, de archivo y validador, con opciones de ubicación geográfica.
Métodos Comunes de la API de Kusama
Aquí hay algunos métodos JSON-RPC usados frecuentemente en Kusama:
Métodos de Cadena
chain_getBlock— Obtener el último bloque o un bloque por hashchain_getBlockHash— Obtener el hash de un bloque por númerochain_getHeader— Obtener el encabezado de un bloquechain_subscribeNewHeads— Suscribirse a nuevos encabezados de bloque
Métodos de Estado
state_getStorage— Consultar almacenamiento por clavestate_getMetadata— Obtener metadatos del runtimestate_getRuntimeVersion— Obtener la versión actual del runtime
Métodos del Sistema
system_chain— Obtener el nombre de la cadenasystem_health— Obtener el estado de salud del nodosystem_peers— Listar pares conectados
Métodos de Autor
author_submitExtrinsic— Enviar un extrínseco firmadoauthor_pendingExtrinsics— Listar extrínsecos pendientes
Conectarse a la API de Kusama
Usando cURL
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method": "chain_getBlock"}' \
https://kusama.api.onfinality.io/public
Usando JavaScript (Polkadot.js)
const { ApiPromise, WsProvider } = require('@polkadot/api');
async function main() {
const provider = new WsProvider('wss://kusama.api.onfinality.io/public-ws');
const api = await ApiPromise.create({ provider });
// Obtener información de la cadena
const chain = await api.rpc.system.chain();
const lastHeader = await api.rpc.chain.getHeader();
console.log(`Cadena: ${chain}`);
console.log(`Último bloque: ${lastHeader.number}`);
// Suscribirse a nuevos bloques
api.rpc.chain.subscribeNewHeads((header) => {
console.log(`Nuevo bloque #${header.number}`);
});
}
main().catch(console.error);
Usando Python
import requests
import json
url = "https://kusama.api.onfinality.io/public"
payload = {
"jsonrpc": "2.0",
"method": "chain_getBlock",
"params": [],
"id": 1
}
response = requests.post(url, json=payload)
print(response.json())
API de Kusama vs. API de Subscan
Mientras que la API JSON-RPC de Kusama proporciona acceso directo a la blockchain, la API de Subscan ofrece una interfaz RESTful con datos agregados como historial de cuentas, transferencias de tokens e información de precios. La API de Subscan es útil para análisis y aplicaciones frontend, pero no permite enviar transacciones ni suscribirse a eventos en tiempo real. Para control total e interacción en tiempo real, usa la API JSON-RPC nativa.
Consideraciones de Infraestructura
Endpoints Públicos vs. Privados
Los endpoints públicos son convenientes para desarrollo pero no adecuados para producción debido a límites de tasa y posible inestabilidad. Para aplicaciones de producción, considera:
- Servicio de API compartido: Proporciona límites de tasa más altos, datos de archivo y múltiples regiones geográficas. Adecuado para la mayoría de dApps y billeteras.
- Nodo dedicado: Un nodo completo o de archivo dedicado a tu aplicación. Ofrece el mejor rendimiento, límites de tasa claros y control total sobre la configuración del nodo.
Nodo de Archivo vs. Nodo Completo
- Nodo completo: Almacena solo el estado reciente (generalmente 256 bloques). Adecuado para enviar transacciones y consultar el estado actual.
- Nodo de archivo: Almacena todo el estado histórico. Necesario para aplicaciones que requieren consultar saldos de cuentas pasados, eventos históricos o ejecutar análisis.
Ubicación Geográfica
Elige un proveedor con nodos en regiones cercanas a tus usuarios para minimizar la latencia. OnFinality ofrece endpoints de Kusama en múltiples regiones, incluyendo Hong Kong y Virginia del Norte.
Solución de Problemas Comunes
Tiempos de Espera de Conexión
- Verifica que tu cortafuegos permita conexiones salientes en los puertos 443 (HTTPS) y 443 (WSS).
- Si usas un endpoint público, asegúrate de no estar siendo limitado por tasa. Cambia a un endpoint con clave API.
Errores "Método no encontrado"
- Verifica que el nombre del método coincida con la especificación JSON-RPC de Substrate. Algunos métodos pueden estar disponibles solo en ciertos tipos de nodo.
- Asegúrate de estar usando el endpoint correcto (por ejemplo, nodo de archivo para
state_getStoragecon claves históricas).
Respuestas Lentas
- Los endpoints públicos pueden experimentar congestión durante alta actividad de red.
- Considera actualizar a un nodo dedicado o un servicio de API compartido con recursos garantizados.
Conclusiones Clave
- La API de Kusama proporciona acceso JSON-RPC y WebSocket a la blockchain de Kusama, permitiendo consultas, envío de transacciones y suscripciones en tiempo real.
- Los endpoints públicos son adecuados para pruebas; las aplicaciones de producción deben usar infraestructura basada en clave API o nodo dedicado.
- Los nodos de archivo son necesarios para consultas de datos históricos.
- Elige un proveedor con diversidad geográfica y tiempo de actividad fiable para cargas de trabajo de producción.
- Para información detallada de endpoints y precios, visita la página de la red Kusama y la página de precios RPC.
Preguntas Frecuentes
¿Cuál es la diferencia entre las APIs de Kusama y Polkadot? Ambas usan la misma especificación JSON-RPC de Substrate. La principal diferencia es la red — Kusama es una red canaria con gobernanza más rápida y menor valor en juego, mientras que Polkadot es la mainnet con mayor seguridad y estabilidad.
¿Puedo usar la API de Kusama para interactuar con parachains? Sí, pero necesitas conectarte al endpoint RPC de la parachain específica. La API de la cadena de relevo de Kusama no expone el estado de las parachains directamente.
¿Cómo obtengo una clave API para Kusama? Regístrate en OnFinality y crea una clave API desde el panel de control. Luego puedes usarla con el endpoint compartido.
¿Cuál es el límite de tasa para el endpoint público? El endpoint público tiene límite de tasa para prevenir abusos. Los límites exactos no se publican; para uso en producción, obtén una clave API o un nodo dedicado.
¿La API de Kusama soporta suscripciones WebSocket?
Sí, el endpoint WebSocket soporta suscripciones como chain_subscribeNewHeads y state_subscribeStorage.
Para una lista completa de redes soportadas y sus endpoints, consulta la página de redes soportadas.