Resumen
Enjin ejecuta dos cadenas basadas en Substrate: la Enjin Matrix Chain (capa de aplicación para NFTs y tokens) y la Enjin Relay Chain (consenso y seguridad). Ambas usan RPC de Substrate (no JSON-RPC de EVM), por lo que los desarrolladores deben usar Polkadot.js o llamadas WebSocket/HTTPS directas. Este artículo cubre endpoints RPC públicos y privados, configuración de red, métodos RPC comunes y cómo elegir infraestructura para dApps en producción.
Lista de Verificación para Decidir sobre Enjin RPC
Antes de integrar endpoints RPC de Enjin, considere estos criterios:
| Criterio | Qué verificar | Por qué es importante |
|---|---|---|
| Tipo de cadena | Matrix Chain (aplicación) vs Relay Chain (consenso) | Cada cadena tiene endpoints y métodos RPC separados. Use Matrix Chain para operaciones con NFTs y tokens. |
| Protocolo | RPC de Substrate (no EVM) | No puede usar métodos eth_*. Use Polkadot.js o JSON-RPC de Substrate directamente. |
| Retención de datos | Archive vs full vs pruned | Los nodos archive almacenan el historial completo; necesarios para consultas históricas. |
| Tipo de endpoint | Público vs privado vs dedicado | Los endpoints públicos tienen límites de tasa; los privados/dedicados ofrecen mayor rendimiento y fiabilidad. |
| Necesidades de rendimiento | Solicitudes por segundo (RPS) | Estime la carga máxima. Los planes compartidos pueden limitar; los nodos dedicados proporcionan rendimiento consistente. |
| Soporte WebSocket | WSS para suscripciones en tiempo real | Necesario para escuchar eventos (ej. nuevos bloques, transferencias de tokens). |
| Latencia geográfica | Ubicación del nodo relativa a sus usuarios | Menor latencia mejora la capacidad de respuesta de la dApp. |
| Reputación del proveedor | Historial de disponibilidad, soporte, documentación | Revise reseñas independientes y los SLA del proveedor. |
¿Qué es Enjin RPC?
Enjin es un ecosistema blockchain enfocado en NFTs y juegos, construido sobre Substrate como una parachain de Polkadot. Consta de dos cadenas:
- Enjin Matrix Chain: La capa de aplicación donde residen NFTs, tokens y contratos inteligentes. La mayoría de las interacciones de dApps ocurren aquí.
- Enjin Relay Chain: La capa de consenso y seguridad, heredada de Polkadot. Los desarrolladores rara vez interactúan directamente con ella, pero proporciona finalidad y comunicación entre cadenas.
Ambas cadenas exponen endpoints RPC usando el protocolo JSON-RPC de Substrate. Esto es diferente del JSON-RPC de Ethereum: no hay métodos eth_*. En su lugar, se usan métodos system_*, chain_*, state_* y métodos personalizados de pallets.
Endpoints RPC de Enjin
Para interactuar con la red Enjin, necesita un endpoint RPC. Las opciones incluyen:
- Endpoints públicos: Gratuitos pero con límite de tasa, adecuados para pruebas y aplicaciones de bajo tráfico.
- Endpoints privados: Proporcionados por servicios de infraestructura como OnFinality, que ofrecen límites de tasa más altos y soporte dedicado.
- Nodos dedicados: Control total sobre una instancia de nodo, ideal para cargas de trabajo de producción con alto rendimiento.
Ejemplos de Endpoints (para ilustración)
| Cadena | HTTPS | WSS |
|---|---|---|
| Matrix Chain | https://enjin-matrix-rpc.example.com | wss://enjin-matrix-rpc.example.com |
| Relay Chain | https://enjin-relay-rpc.example.com | wss://enjin-relay-rpc.example.com |
Nota: Reemplace con endpoints reales de su proveedor. OnFinality ofrece endpoints RPC de Enjin como parte de sus redes soportadas.
Conectándose a Enjin RPC
Usando Polkadot.js
Polkadot.js es la biblioteca estándar para interactuar con cadenas basadas en Substrate.
const { ApiPromise, WsProvider } = require('@polkadot/api');
async function main() {
const wsProvider = new WsProvider('wss://enjin-matrix-rpc.example.com');
const api = await ApiPromise.create({ provider: wsProvider });
// Obtener información de la cadena
const chain = await api.rpc.system.chain();
const version = await api.rpc.system.version();
console.log(`Conectado a ${chain} v${version}`);
// Obtener el hash del último bloque
const lastHash = await api.rpc.chain.getBlockHash();
console.log(`Hash del último bloque: ${lastHash}`);
}
main().catch(console.error);
Usando curl (HTTPS)
curl -s -X POST https://enjin-matrix-rpc.example.com \
-H 'Content-Type: application/json' \
-d '{"id":1,"jsonrpc":"2.0","method":"chain_getBlockHash","params":[0]}'
Usando WebSocket (directo)
wscat -c wss://enjin-matrix-rpc.example.com
> {"id":1,"jsonrpc":"2.0","method":"chain_getBlockHash","params":[0]}
Métodos RPC Comunes
Enjin expone métodos RPC estándar de Substrate más métodos personalizados de pallets para operaciones con NFTs.
Métodos del Sistema
system_chain– Devuelve el nombre de la cadena.system_version– Devuelve la versión del nodo.system_health– Devuelve la salud del nodo (pares, estado de sincronización).
Métodos de Cadena
chain_getBlock– Devuelve un bloque por hash o número.chain_getBlockHash– Devuelve el hash de un bloque por número.chain_getHeader– Devuelve la cabecera de un bloque.chain_subscribeNewHeads– Suscribirse a nuevas cabeceras de bloque.
Métodos de Estado
state_getStorage– Devuelve el valor de almacenamiento para una clave dada.state_getMetadata– Devuelve los metadatos del runtime.state_queryStorage– Consulta el almacenamiento en un bloque específico.
Métodos NFT (específicos de Enjin)
El estándar Multi-Token de Enjin está integrado en el runtime. Las operaciones comunes incluyen:
nft.balanceOf(account, tokenId)– Obtener saldo de token.nft.totalSupply(tokenId)– Obtener suministro total.nft.ownerOf(tokenId)– Obtener propietario del token.
Nota: Los nombres exactos de los métodos dependen de la versión del runtime. Consulte la documentación de Enjin para conocer los últimos detalles del pallet.
Elegir un Proveedor RPC
Al seleccionar un proveedor RPC para Enjin, considere:
- Cadenas soportadas: Asegúrese de que el proveedor ofrezca endpoints tanto para Matrix Chain como para Relay Chain.
- Límites de tasa: Los endpoints públicos a menudo limitan las solicitudes por segundo. Para producción, use un nodo privado o dedicado.
- Soporte WebSocket: Necesario para funciones en tiempo real como suscripciones a eventos.
- Distribución geográfica: Los proveedores con múltiples regiones reducen la latencia.
- Datos archive: Si necesita estado histórico, elija un proveedor de nodos archive.
OnFinality proporciona endpoints RPC de Enjin con planes flexibles, incluyendo opciones compartidas y dedicadas. Consulte precios RPC y redes soportadas para más detalles.
Errores Comunes y Solución de Problemas
1. Usar Métodos EVM
Enjin no es compatible con EVM. Llamar a eth_blockNumber fallará. Use siempre métodos de Substrate.
2. Límite de Tasa
Los endpoints públicos pueden limitar solicitudes de alta frecuencia. Si ve errores HTTP 429, actualice a un endpoint privado o implemente retroceso en el cliente.
3. Desconexiones WebSocket
Las conexiones WebSocket pueden caer debido a problemas de red o carga del servidor. Implemente lógica de reconexión en su cliente.
4. Finalidad de Bloque
Enjin Relay Chain proporciona finalidad después de unos pocos bloques. Para transacciones irreversibles, espere la finalización antes de actuar.
5. Retención de Datos
Los nodos full podan el estado histórico. Para consultas sobre bloques pasados, use un nodo archive o un indexador como Enjin Platform.
Conclusiones Clave
- Enjin usa RPC de Substrate, no JSON-RPC de EVM. Use Polkadot.js o llamadas directas de Substrate.
- Dos cadenas: Matrix Chain (aplicación) y Relay Chain (consenso). La mayoría de las interacciones son con Matrix Chain.
- Los endpoints públicos son adecuados para desarrollo; las aplicaciones en producción necesitan infraestructura privada o dedicada.
- OnFinality ofrece endpoints RPC de Enjin con opciones compartidas y dedicadas. Consulte redes soportadas para disponibilidad.
- Siempre pruebe con una carga de trabajo pequeña antes de escalar.
Preguntas Frecuentes
P: ¿Puedo usar MetaMask con Enjin? R: No, Enjin no es compatible con EVM. Use Polkadot.js o una billetera de Substrate.
P: ¿Cuál es la diferencia entre Matrix Chain y Relay Chain? R: Matrix Chain maneja la lógica de aplicación (NFTs, tokens). Relay Chain proporciona consenso y seguridad. La mayoría de las dApps interactúan con Matrix Chain.
P: ¿Cómo obtengo tokens ENJ para gas? R: ENJ es el token nativo en Matrix Chain. Puede adquirirlo en exchanges o faucets (para testnets).
P: ¿Enjin soporta suscripciones WebSocket? R: Sí, ambas cadenas soportan WSS para actualizaciones en tiempo real.
P: ¿Dónde puedo encontrar los últimos métodos RPC de Enjin?
R: Consulte la documentación de Enjin y los metadatos del runtime a través de state_getMetadata.