Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

Enjin RPC:端点、链设置与开发者工作流

摘要

Enjin 运行两条基于 Substrate 的链:Enjin Matrix Chain(NFT 和代币的应用层)和 Enjin Relay Chain(共识和安全层)。两者都使用 Substrate RPC(而非 EVM JSON-RPC),因此开发者需要使用 Polkadot.js 或原始的 WebSocket/HTTPS 调用。本文涵盖公共和私有 RPC 端点、链设置、常见 RPC 方法以及如何为生产级 dApp 选择基础设施。

Enjin RPC 决策检查清单

在集成 Enjin RPC 端点之前,请考虑以下标准:

标准检查内容重要性
链类型Matrix Chain(应用层) vs Relay Chain(共识层)每条链有独立的端点和 RPC 方法。NFT 和代币操作使用 Matrix Chain。
协议Substrate RPC(非 EVM)不能使用 eth_* 方法。请使用 Polkadot.js 或原始的 Substrate JSON-RPC。
数据保留归档节点 vs 全节点 vs 修剪节点归档节点存储完整历史记录,用于历史查询。
端点类型公共 vs 私有 vs 专用公共端点有速率限制;私有/专用端点提供更高的吞吐量和可靠性。
吞吐量需求每秒请求数(RPS)估算峰值负载。共享计划可能限流;专用节点提供一致的性能。
WebSocket 支持用于实时订阅的 WSS事件监听(如新区块、代币转账)必需。
地理延迟节点相对于用户的位置低延迟可提高 dApp 响应速度。
提供商声誉运行时间历史、支持、文档查看独立评论和提供商的 SLA。

什么是 Enjin RPC?

Enjin 是一个专注于 NFT 和游戏的区块链生态系统,基于 Substrate 构建,作为 Polkadot 平行链运行。它由两条链组成:

  • Enjin Matrix Chain:应用层,NFT、代币和智能合约在此运行。大多数 dApp 交互发生在此。
  • Enjin Relay Chain:共识和安全层,继承自 Polkadot。开发者很少直接与之交互,但它提供最终性和跨链通信。

两条链都通过 Substrate JSON-RPC 协议暴露 RPC 端点。这与以太坊的 JSON-RPC 不同:没有 eth_* 方法。相反,您使用 system_*chain_*state_* 和自定义 pallet 方法。

Enjin RPC 端点

要与 Enjin 网络交互,您需要一个 RPC 端点。选项包括:

  • 公共端点:免费但有速率限制,适用于测试和低流量应用。
  • 私有端点:由 OnFinality 等基础设施服务提供,具有更高的速率限制和专门支持。
  • 专用节点:完全控制节点实例,最适合高吞吐量的生产工作负载。

示例端点(仅供说明)

HTTPSWSS
Matrix Chainhttps://enjin-matrix-rpc.example.comwss://enjin-matrix-rpc.example.com
Relay Chainhttps://enjin-relay-rpc.example.comwss://enjin-relay-rpc.example.com

注意:请替换为您的提供商的实际端点。OnFinality 在其支持的网络中提供 Enjin RPC 端点。

连接到 Enjin RPC

使用 Polkadot.js

Polkadot.js 是与 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 });

  // 获取链信息
  const chain = await api.rpc.system.chain();
  const version = await api.rpc.system.version();
  console.log(`已连接到 ${chain} v${version}`);

  // 获取最新区块哈希
  const lastHash = await api.rpc.chain.getBlockHash();
  console.log(`最新区块哈希: ${lastHash}`);
}

main().catch(console.error);

使用 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]}'

使用 WebSocket(原始)

wscat -c wss://enjin-matrix-rpc.example.com
> {"id":1,"jsonrpc":"2.0","method":"chain_getBlockHash","params":[0]}

常见 RPC 方法

Enjin 暴露标准的 Substrate RPC 方法以及用于 NFT 操作的自定义 pallet 方法。

系统方法

  • system_chain – 返回链名称。
  • system_version – 返回节点版本。
  • system_health – 返回节点健康状态(对等节点数、同步状态)。

链方法

  • chain_getBlock – 根据哈希或编号返回区块。
  • chain_getBlockHash – 根据编号返回区块哈希。
  • chain_getHeader – 返回区块头。
  • chain_subscribeNewHeads – 订阅新区块头。

状态方法

  • state_getStorage – 返回给定键的存储值。
  • state_getMetadata – 返回运行时元数据。
  • state_queryStorage – 查询特定区块的存储。

NFT 方法(Enjin 特有)

Enjin 的多代币标准内置于运行时。常见操作包括:

  • nft.balanceOf(account, tokenId) – 获取代币余额。
  • nft.totalSupply(tokenId) – 获取总供应量。
  • nft.ownerOf(tokenId) – 获取代币所有者。

注意:具体方法名称取决于运行时版本。请查阅 Enjin 文档 获取最新的 pallet 详情。

选择 RPC 提供商

为 Enjin 选择 RPC 提供商时,请考虑:

  • 支持的链:确保提供商同时提供 Matrix Chain 和 Relay Chain 端点。
  • 速率限制:公共端点通常限制每秒请求数。对于生产环境,请使用私有或专用节点。
  • WebSocket 支持:实时功能(如事件订阅)必需。
  • 地理分布:具有多个区域的提供商可减少延迟。
  • 归档数据:如果需要历史状态,请选择归档节点提供商。

OnFinality 提供 Enjin RPC 端点,具有灵活的方案,包括共享和专用选项。详情请参阅 RPC 定价支持的网络

常见陷阱与故障排除

1. 使用 EVM 方法

Enjin 不兼容 EVM。调用 eth_blockNumber 会失败。始终使用 Substrate 方法。

2. 速率限制

公共端点可能会限制高频请求。如果遇到 HTTP 429 错误,请升级到私有端点或在客户端实现退避策略。

3. WebSocket 断开

WebSocket 连接可能因网络问题或服务器负载而断开。在客户端实现重连逻辑。

4. 区块最终性

Enjin Relay Chain 在几个区块后提供最终性。对于不可逆交易,请等待最终确认后再操作。

5. 数据保留

全节点会修剪历史状态。对于过去区块的查询,请使用归档节点或 Enjin Platform 等索引器。

关键要点

  • Enjin 使用 Substrate RPC,而非 EVM JSON-RPC。请使用 Polkadot.js 或原始的 Substrate 调用。
  • 两条链:Matrix Chain(应用层)和 Relay Chain(共识层)。大多数交互发生在 Matrix Chain。
  • 公共端点适用于开发;生产应用需要私有或专用基础设施。
  • OnFinality 提供 Enjin RPC 端点,包括共享和专用选项。请查看支持的网络了解可用性。
  • 在扩展之前,始终使用小规模工作负载进行测试。

常见问题

问:我可以在 Enjin 上使用 MetaMask 吗? 答:不可以,Enjin 不兼容 EVM。请使用 Polkadot.js 或 Substrate 钱包。

问:Matrix Chain 和 Relay Chain 有什么区别? 答:Matrix Chain 处理应用逻辑(NFT、代币)。Relay Chain 提供共识和安全。大多数 dApp 与 Matrix Chain 交互。

问:如何获取用于 gas 的 ENJ 代币? 答:ENJ 是 Matrix Chain 的原生代币。您可以从交易所或水龙头(测试网)获取。

问:Enjin 支持 WebSocket 订阅吗? 答:是的,两条链都支持 WSS 用于实时更新。

问:在哪里可以找到最新的 Enjin RPC 方法? 答:请参考 Enjin 文档 以及通过 state_getMetadata 获取的运行时元数据。

RPC 知识库

相关 RPC 内容

网络 RPCAvalanche

Sonic 网络 RPC:链设置、端点和提供商选择

Sonic 是一个高性能的 EVM 兼容 Layer-1 区块链,具有亚秒级最终性。本页涵盖官方 Sonic 网络 RPC 设置、如何连接您的钱包或 dApp,以及如何评估用于生产环境的 RPC 提供商。我们还解释了何时选择托管或专用的 Sonic RPC 端点是正确的选择。...

RPC 提供商选择Solana

Solana RPC 提供商应提供哪些高级分析 API?

Solana 上的高级分析需要能够处理高吞吐量数据提取、历史查询和实时流而不会降低应用程序性能的 RPC 基础设施。本文概述了评估 Solana RPC 提供商时需要考察的关键 API 能力,从 getSignaturesForAddress 和 getTransaction 到 WebSocket...

网络 RPCEfinity

Polygon 节点 RPC:端点、链设置和提供商选择

Polygon 节点 RPC 端点允许应用程序使用标准 JSON-RPC 接口在 Polygon 网络上读写数据。本页涵盖主网和 Amoy 测试网的链设置、如何使用常见工具连接,以及在选择公共、共享和专用 RPC 提供商时需要考虑的因素。...

网络 RPCStellar

什么是 Stellar RPC,如何使用它?

# 什么是 Stellar RPC,如何使用它? Stellar RPC(远程过程调用)是与 Stellar 区块链网络交互的标准接口。它允许开发者以编程方式查询账本数据、提交交易和管理账户。Stellar 的 RPC API 与兼容以太坊的 JSON-RPC 不同;它使用基于 RESTful 原则...

网络 RPC多链

什么是 Composable Finance,如何在其上构建?

Composable Finance 是一个跨链 DeFi 基础设施项目,使用 IBC 实现不同区块链生态系统之间的无信任通信。其核心组件包括用于编排的跨链虚拟机(XCVM)和用于桥接的 Centauri,并以 Picasso 作为其平行链。对于开发者来说,与这些网络交互需要可靠的 RPC 端点来查...

网络 RPCUnichain

选择Unichain RPC提供商时应注意什么?

# 选择Unichain RPC提供商时应注意什么? Unichain RPC提供商至关重要,因为Web3应用依赖稳定的端点访问来进行读取、交易、仪表盘和后端工作流。正确的设置应匹配你的工作负载,支持所需的网络和测试网,使限制透明化,并在共享RPC不再足够时提供扩展路径。 对于Unichain构建者...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始