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 内容

网络 RPCSolana

什么是 Solana 浏览器 API,如何使用它?

Solana 浏览器 API 允许你以编程方式查询链上数据,如交易、账户和区块,为自定义浏览器和分析仪表板提供支持。本文解释了核心 RPC 方法、如何选择公共端点与托管端点,以及如何构建简单的浏览器查询工作流。...

网络 RPCSORA

关于SORA网络RPC端点,我需要了解什么?

SORA是一个基于Substrate的区块链货币系统,为数字货币提供去中心化框架。在SORA上构建的开发者需要可靠的RPC端点来读取链上数据、提交交易以及与Polkaswap DEX交互。本指南涵盖主网和Taira测试网的链设置、公共和专用RPC选项、水龙头详情以及常见调试技巧。...

网络 RPCMantle

关于 Mantle RPC 端点,我需要了解什么?

# 关于 Mantle RPC 端点,我需要了解什么? Mantle RPC 端点之所以重要,是因为 Web3 应用程序依赖稳定的端点访问来进行读取、交易、仪表盘和后端工作流。正确的设置应匹配你的工作负载,支持你所需的网络和测试网,使限制可见,并在共享 RPC 不再足够时为你提供扩展路径。 对于 M...

RPC 提供商选择

即用即付区块链节点如何运作,何时应该使用它们?

即用即付区块链节点是按实际使用量计费而非固定月费的托管 RPC 端点。这种模式适合流量不均衡、多链实验或早期阶段产品的团队,因为它能使基础设施成本与需求保持一致。 在采用按使用量计费的计划之前,请将速率限制、超额定价、WebSocket 支持和归档数据访问与您的预期工作负载进行比较。使用真实流量样本...

网络 RPCAvalanche

Polygon 网络 RPC:端点、链设置和调试

了解如何通过 RPC 连接到 Polygon 网络,包括 OnFinality 官方公共端点、链设置和常见故障排除步骤。本指南涵盖 JSON-RPC 方法、WebSocket 支持,以及如何为您的 dApp 选择公共、共享和专用 RPC 基础设施。...

RPC 提供商选择

Dedicated vs Shared Node Access: A Detailed Comparison for Developers

When choosing an RPC provider, developers must decide between shared and dedicated node access. Shared nodes offer cost efficiency and quick setup, wh...

永远不用担心基础设施

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

开始