摘要
Metis API 是指 Metis Andromeda 第二层区块链的 JSON-RPC 接口,这是一个兼容以太坊的 Rollup。本文涵盖链配置、基本 RPC 方法、如何连接钱包和 dApp,以及为生产工作负载选择可靠 RPC 提供商的标准。
Metis API 决策清单
在集成 Metis API 之前,请评估以下标准,确保您的基础设施与工作负载匹配:
| 标准 | 检查内容 | 重要性 |
|---|---|---|
| 链 ID | 1088(Metis Andromeda 主网) | 错误的链 ID 会导致交易被拒绝 |
| RPC 端点可靠性 | 运行时间历史、速率限制、故障转移支持 | 不可靠的端点会破坏 dApp 并导致用户不满 |
| 归档数据可用性 | 支持 eth_getLogs 和 eth_call 的历史区块 | 分析、索引和事件历史所需 |
| WebSocket 支持 | 用于实时订阅的 WSS 端点 | 钱包和交易应用中的实时更新需要 |
| Gas 估算准确性 | eth_estimateGas 响应一致性 | 防止因 Gas 定价过低导致交易失败 |
| 提供商透明度 | 公布的速率限制、定价和条款 | 避免意外的限流或成本 |
| 测试网可用性 | 基于 Sepolia 的 Metis 测试网用于开发 | 在主网部署前进行安全测试至关重要 |
什么是 Metis API?
Metis API 是 Metis Andromeda 区块链的 JSON-RPC 接口,Metis 是一种使用乐观 Rollup 的以太坊第二层(L2)扩展解决方案。它与以太坊 JSON-RPC 规范完全兼容,这意味着任何与以太坊兼容的工具或库(例如 ethers.js、web3.js、Hardhat)都可以通过指向 Metis RPC 端点来连接到 Metis。
开发者使用 Metis API 可以:
- 发送交易和部署智能合约
- 查询链上数据,如余额、日志和交易收据
- 估算 Gas 成本和模拟合约调用
- 通过 WebSocket 订阅实时事件
由于 Metis 与 EVM 等效,从以太坊或其他 EVM 链迁移 dApp 只需进行最小更改——通常只需更新 RPC 端点和链 ID。
Metis 链设置
要连接到 Metis Andromeda,请使用以下参数配置您的钱包或应用程序:
| 参数 | 值 |
|---|---|
| 网络名称 | Metis Andromeda |
| RPC URL | (由您的 RPC 提供商提供) |
| 链 ID | 1088 |
| 货币符号 | METIS |
| 区块浏览器 | https://andromeda-explorer.metis.io |
| WebSocket URL | (由您的 RPC 提供商提供) |
对于 Metis Sepolia 测试网,请使用链 ID 59902 和相应的测试网浏览器。
Metis 上常用的 RPC 方法
由于 Metis 与 EVM 兼容,标准的以太坊 JSON-RPC 方法可以完全相同的方式工作。以下是最常用的方法:
eth_getBalance
返回地址的余额。
curl -X POST https://your-metis-rpc.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": ["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18", "latest"],
"id": 1
}'
eth_call
执行智能合约调用而不创建交易。
curl -X POST https://your-metis-rpc.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_call",
"params": [{"to": "0x...", "data": "0x..."}, "latest"],
"id": 1
}'
eth_getLogs
检索与过滤器匹配的事件日志。用于索引代币转账或合约事件。
curl -X POST https://your-metis-rpc.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getLogs",
"params": [{
"address": "0x...",
"fromBlock": "0x0",
"toBlock": "latest"
}],
"id": 1
}'
eth_estimateGas
估算交易所需的 Gas。
curl -X POST https://your-metis-rpc.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_estimateGas",
"params": [{
"from": "0x...",
"to": "0x...",
"value": "0x0",
"data": "0x..."
}],
"id": 1
}'
eth_subscribe (WebSocket)
订阅实时事件。需要 WebSocket 连接。
const WebSocket = require('ws');
const ws = new WebSocket('wss://your-metis-rpc.com');
ws.on('open', () => {
ws.send(JSON.stringify({
jsonrpc: '2.0',
method: 'eth_subscribe',
params: ['newHeads'],
id: 1
}));
});
ws.on('message', (data) => {
console.log(JSON.parse(data));
});
连接钱包和 dApp
大多数 EVM 钱包(MetaMask、WalletConnect 等)允许添加自定义网络。使用上面的链设置表。对于程序化访问,请配置您的提供商库:
ethers.js
import { ethers } from 'ethers';
const provider = new ethers.JsonRpcProvider('https://your-metis-rpc.com', 1088);
const signer = provider.getSigner();
web3.js
import Web3 from 'web3';
const web3 = new Web3('https://your-metis-rpc.com');
选择 Metis RPC 提供商
公共 RPC 端点(如 Metis 官方文档提供的)适合测试,但通常有严格的速率限制且没有 SLA。对于生产 dApp,请考虑使用托管 RPC 服务,该服务提供:
- 专用端点:具有更高吞吐量且无共享限流的私有 RPC URL。
- 归档数据:用于从创世块开始的查询(如
eth_getLogs)的完整历史状态。 - WebSocket 支持:用于实时订阅。
- 地理分布:来自多个地区的低延迟访问。
- 透明定价:基于使用量或固定费用的可预测成本。
OnFinality 为 Metis Andromeda 和测试网提供 RPC 端点,并提供公共访问和专用节点选项。有关详细信息,请查看 定价页面。
常见问题排查
“链 ID 不匹配”
确保您的钱包或应用程序使用主网的链 ID 1088 和测试网的 59902。
“超出速率限制”
公共端点通常限制每秒请求数。切换到私有端点或升级您的计划。
“eth_getLogs 返回空”
验证合约地址和区块范围。某些提供商限制归档查询的范围;请使用具有完整归档支持的提供商。
“WebSocket 频繁断开”
检查您的提供商的 WebSocket 稳定性。专用端点通常提供更可靠的连接。
关键要点
- Metis API 完全兼容 EVM,因此现有的以太坊工具只需进行最小更改即可使用。
- 链 ID 1088 对于 Metis Andromeda 至关重要;测试网使用 59902。
- 标准 JSON-RPC 方法如
eth_getBalance、eth_call和eth_getLogs用于数据检索。 - 对于生产环境,请选择具有专用端点、归档支持和 WebSocket 功能的提供商。
- OnFinality 在其 支持的网络 中提供 Metis RPC 端点。
常见问题
问:Metis API 与以太坊的 JSON-RPC 相同吗? 答:是的,Metis 实现了以太坊 JSON-RPC 规范,因此方法和参数完全相同。
问:Metis 测试网的 RPC URL 是什么? 答:Metis Sepolia 测试网使用链 ID 59902。请联系您的 RPC 提供商获取端点 URL。
问:我可以免费使用 Metis API 吗? 答:公共端点可用于测试,但生产使用需要付费计划以避免速率限制。
问:Metis 支持 WebSocket 吗? 答:是的,大多数提供商提供用于实时订阅的 WSS 端点。
问:如何获得专用的 Metis RPC 端点? 答:像 OnFinality 这样的服务提供专用节点和 RPC 端点。请访问 网络页面 了解详情。