X Layer RPC 端点完整指南与操作方法

·

X Layer 是一个兼容以太坊 JSON-RPC 并支持 ZKEVM RPC 方法的 zkEVM 区块链网络,开发者可以通过标准接口与其进行交互。本文将全面介绍其主要网络与测试网络的接入方式、支持的 RPC 方法及使用建议。

在开始之前,请注意:X Layer 对每个 IP 地址的请求频率限制为每秒 100 次,无论是在主网还是测试网络。

主网信息 (chain-id: 0xC4, 十进制 196)

X Layer 主网为正式上线的生产环境,其基础配置如下:

测试网络信息 (chain-id: 0xC3, 十进制 195)

测试网络适用于开发与调试阶段,配置如下:


支持的 JSON-RPC 方法

X Layer 提供两类 RPC 方法:一类兼容标准的以太坊 JSON-RPC,另一类为专为 zkEVM 设计的 ZKEVM RPC 方法。

一、以太坊兼容 RPC 方法

以下是 X Layer 已支持的以太坊标准 RPC 方法列表。若方法未在下表中列出,则表示暂不支持。如需详细了解各方法,可参考以太坊官方 JSON-RPC 文档

方法名命名空间说明
web3_clientVersionWeb3获取客户端版本号
web3_sha3Web3计算给定数据的 keccak-256 哈希(非标准 SHA3-256)
net_versionNet返回当前网络 ID
eth_protocolVersionETH返回值始终为 ‘zero’
eth_syncingETH返回同步状态数据对象或 false
eth_gasPriceETH返回当前 Gas 价格(以 OKB 计价)
eth_blockNumberETH返回当前区块高度
eth_chainIdETH返回十六进制格式的网络链 ID
eth_getBalanceETH根据账户地址和区块号查询余额
eth_getStorageAtETH获取指定账户的存储内容
eth_getTransactionCountETH返回某地址在特定区块的交易数量
eth_getBlockTransactionCountByNumberETH返回指定区块号的交易总数
eth_getBlockTransactionCountByHashETH返回指定区块哈希的交易总数
eth_getCodeETH返回合约地址的字节码
eth_signETH对数据进行以太坊签名
eth_sendTransactionETH发送交易
eth_sendRawTransactionETH发送已签名的原始交易
eth_callETH执行消息调用(不上链)
eth_estimateGasETH估算交易所需 Gas 量
eth_getBlockByNumberETH根据区块号获取区块信息
eth_getBlockByHashETH根据区块哈希获取区块信息
eth_getTransactionByHashETH根据交易哈希获取交易详情
eth_getTransactionByBlockHashAndIndexETH根据区块哈希和交易索引获取交易
eth_getTransactionReceiptETH根据交易哈希获取交易回执
eth_newFilterETH创建新日志过滤器
eth_newBlockFilterETH创建新区块过滤器
eth_uninstallFilterETH卸载过滤器
eth_getFilterChangesETH轮询过滤器的新日志
eth_getLogsETH根据筛选条件返回日志数组
eth_getFilterLogsETH返回符合过滤器 ID 的所有日志
eth_getTransactionbyBlockNumberAndIndexETH根据区块高度和索引获取交易
eth_subscribeWebSocket通过 JSON-RPC 订阅事件
eth_unsubscribeWebSocket取消事件订阅
debug_traceBlockByHashDebug跟踪指定哈希区块的所有交易执行过程
debug_traceBlockByNumberDebug跟踪指定区块号的所有交易执行过程
debug_traceTransactionDebug跟踪指定交易的所有执行轨迹
注意:部分方法如 eth_getCompilerseth_getUncleCountByBlockHashtxpool_content 等目前返回为空,不支持相关功能。

二、ZKEVM 专用 RPC 方法

除了以太坊兼容方法外,X Layer 还提供了一系列 ZKEVM 专用方法,用于处理零知识证明相关的批次操作与状态查询:

方法名功能描述
zkevm_batchNumber返回最新的批次号
zkevm_batchNumberByBlockNumber返回与某区块关联的批次号
zkevm_consolidatedBlockNumber返回已验证的最新批次所关联的区块号
zkevm_getBatchByNumber根据批次号获取批次详情
zkevm_isBlockVirtualized检查某区块是否已虚拟化
zkevm_isBlockConsolidated检查某区块是否已验证
zkevm_virtualBatchNumber返回最新虚拟化批次号
zkevm_verifiedBatchNumber返回最新已验证批次号

常用 ZKEVM 方法详解

zkevm_batchNumber

返回最新的批次编号。

zkevm_batchNumberByBlockNumber

返回某区块所对应的批次号。

zkevm_getBatchByNumber

获取指定批次的详细信息,包括 coinbase 地址、状态根、全局退出根、时间戳、交易列表等。

zkevm_isBlockConsolidated

判断某区块是否已经关联到已验证的批次。

zkevm_verifiedBatchNumber

返回最新已验证的批次号。

👉 查看完整的 ZKEVM 方法示例和实时调试工具


基础设施服务提供商

如果公共 RPC 无法满足高频或企业级需求,您也可以选择以下专业基础设施服务商,它们提供免费或高可用性的专用 RPC 服务:


常见问题

X Layer 的 RPC 请求是否有限制?

是的,X Layer 对每个 IP 地址的请求频率限制为每秒 100 次,适用于主网和测试网。

如何在代码中连接 X Layer 网络?

您可以使用 Web3.js、Ethers.js 或其它兼容以太坊的开发库,通过填入相应的 RPC URL 和 ChainID(主网196,测试网195)即可连接。

是否支持 WebSocket 订阅?

是的,X Layer 支持通过 eth_subscribeeth_unsubscribe 方法进行事件订阅,如新区块和日志监听。

哪些以太坊方法在 X Layer 中不受支持?

目前如 eth_getCompilers、与叔块相关的方法以及 txpool_content 返回为空或暂未实现。

ZKEVM 方法的主要用途是什么?

ZKEVM 方法主要用于查询和验证与零知识证明相关的批次状态,包括批次号、验证状态、虚拟化状态等,适合高级开发者和节点操作者使用。

如果遇到 RPC 连接问题怎么办?

建议首先检查网络设置和 ChainID 是否正确,如果问题持续,可尝试切换不同的 RPC 地址或使用专业基础设施服务。


希望本指南帮助您高效使用 X Layer 的 RPC 接口。无论是构建 dApp、调试智能合约还是管理节点,掌握这些方法将大大提升您的开发体验。