摘要
Arbitrum API 允许开发者使用标准的以太坊 JSON-RPC 方法与 Arbitrum One 和 Arbitrum Nova 交互,完全兼容 EVM。本文涵盖链设置、常见 API 调用、提供商选择标准以及生产环境 dApp 的最佳实践。
Arbitrum API 决策清单
在将 Arbitrum API 集成到您的项目之前,评估以下关键领域:
| 标准 | 检查内容 | 重要性说明 |
|---|---|---|
| 网络选择 | Arbitrum One 与 Arbitrum Nova 对比测试网 (Sepolia) | 不同链服务于不同用例:One 用于 DeFi,Nova 用于游戏/社交,Sepolia 用于预演环境 |
| RPC 提供商 | 支持的端点、速率限制、WebSocket 可用性、归档数据 | 免费公共端点在生产环境中不可靠;专用节点或托管服务可保证正常运行时间 |
| 方法兼容性 | 所有标准 eth_ 方法均可使用;验证自定义 Arbitrum 方法 | Arbitrum 通过 rollup 特定方法(如 arb_getL1BaseFee)扩展了以太坊 RPC |
| Gas 定价 | EIP-1559,L1 数据费用部分 | 交易成本估算与以太坊主网不同;使用 eth_estimateGas 和 arb_gasPrice |
| WebSocket 支持 | 用于实时订阅 (eth_subscribe) | 对于监控事件、待处理交易和价格源至关重要 |
| 归档数据 | 追踪和历史状态访问 | 调试、分析和索引通常需要归档节点 |
| 故障转移与冗余 | 多个端点、自动重试、负载均衡 | 消除生产环境中的单点故障 |
Arbitrum 网络概览
Arbitrum 是以太坊领先的第 2 层扩展解决方案,使用乐观 rollup 提供快速、低成本的交易,同时继承以太坊的安全性。它完全兼容 EVM,意味着现有的 Solidity 合约和以太坊工具(Hardhat、Foundry、ethers.js)只需极少更改即可使用。主网包括:
- Arbitrum One – 主网,用于高价值 DeFi、交易和通用 dApp(链 ID:42161)。
- Arbitrum Nova – 基于 AnyTrust 的侧链,针对游戏和社交应用优化(链 ID:42170)。
- Arbitrum Sepolia – 用于开发和预演的测试网(链 ID:421614)。
所有网络都提供相同的 JSON-RPC 接口,但提供商可能限制对某些网络或端点的访问。
Arbitrum API 端点
要与 Arbitrum 交互,您需要向 RPC 端点发送 JSON-RPC 请求。存在公共端点,但通常有速率限制且在生产环境中不可靠。对于生产工作负载,请使用托管 RPC 服务或运行自己的节点。
示例 Arbitrum One 主网端点(仅用于测试):
https://arb1.arbitrum.io/rpc
使用 curl 的示例请求:
curl https://arb1.arbitrum.io/rpc \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
响应:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x1234567"
}
对于具有更高速率限制和 WebSocket 支持的私有端点,像 OnFinality 这样的服务提供专用 Arbitrum RPC 端点,具有可配置的限制和分析功能。
支持的 JSON-RPC 方法
Arbitrum 支持所有标准的以太坊 JSON-RPC 方法(eth_*、net_*、web3_*)。此外,它还提供了针对 rollup 相关查询的 Arbitrum 特定方法:
| 方法 | 描述 |
|---|---|
eth_blockNumber | 最新区块号 |
eth_getBalance | 账户余额(以 wei 为单位) |
eth_call | 执行常量函数调用 |
eth_sendRawTransaction | 广播已签名的交易 |
eth_getTransactionReceipt | 根据哈希获取交易回执 |
eth_estimateGas | 估算交易的 gas 成本 |
eth_subscribe | 订阅事件(仅 WebSocket) |
arb_getL1BaseFee | 当前 L1 基础费用(以 wei 为单位) |
arb_gasPrice | 当前 gas 价格,包含 L1 数据费用 |
在 JavaScript 中使用 Arbitrum API
以下是如何使用 viem(或 ethers.js)连接到 Arbitrum:
import { createPublicClient, http } from 'viem'
import { arbitrum } from 'viem/chains'
const client = createPublicClient({
chain: arbitrum,
transport: http('https://arb1.arbitrum.io/rpc')
})
async function getBlockNumber() {
const blockNumber = await client.getBlockNumber()
console.log('Current block:', blockNumber)
}
对于生产环境,请将公共端点替换为提供商的私有端点,以避免速率限制。
Arbitrum 上的 Gas 定价
Arbitrum 交易包含两部分费用:
- L2 执行费用 – 覆盖 rollup 上的计算,以 gwei 计价(EIP-1559)。
- L1 数据费用 – 将交易数据发布到以太坊 L1 的成本,随 L1 gas 价格变化。
使用 arb_gasPrice 获取总 gas 价格(包括 L1 开销)。估算 gas 时,调用 eth_estimateGas 然后添加缓冲区(例如 20%)以避免在 L1 拥堵时出现 gas 不足错误。
使用 curl 的示例估算:
curl https://arb1.arbitrum.io/rpc \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{"from":"0x...","to":"0x...","value":"0x0"}],"id":1}'
为 Arbitrum 选择 RPC 提供商
为您的 Arbitrum dApp 选择提供商时,请考虑:
- 速率限制 – 免费层限制可能会阻止高频请求。检查应用预期的请求量。
- WebSocket 支持 – 实时数据源必需。许多公共端点禁用 WebSocket。
- 归档数据 – 如果需要历史状态或追踪(例如,用于浏览器或分析),请确保提供商提供归档节点。
- 地理延迟 – 选择靠近用户群的端点或在多个区域部署。
像 OnFinality 这样的托管提供商提供专用 Arbitrum 端点,具有可定制的速率限制、WebSocket 和归档访问。比较 RPC 定价 以找到适合您的扩展规模的计划。
常见陷阱与故障排除
- 错误的网络 ID – 验证链 ID:Arbitrum One 为 42161,Nova 为 42170,Sepolia 测试网为 421614。
- L1 数据费用波动 – L1 gas 价格可能飙升,使交易更昂贵。定期监控
arb_getL1BaseFee。 - 公共端点数据过时 – 公共端点可能落后于最新区块。使用经确认延迟低的私有端点。
- WebSocket 断开连接 – 实现重连逻辑(例如指数退避)以处理临时故障。
- Nonce 管理 – Arbitrum 使用与以太坊相同的 nonce 系统。跟踪待处理交易以避免 nonce 不匹配。
关键要点
- Arbitrum API 完全兼容以太坊 JSON-RPC,因此大多数现有代码无需更改即可使用。
- 使用
arb_gasPrice和arb_getL1BaseFee进行准确的费用估算。 - 公共 RPC 端点仅适用于开发;生产应用需要具有 WebSocket 和归档支持的可靠提供商。
- 根据速率限制、地理覆盖范围以及专用节点等附加服务评估提供商。
- 在部署到主网之前,先在 Arbitrum Sepolia 上测试,以捕获任何特定于网络的问题。
常见问题
问:Arbitrum API 与以太坊 API 相同吗? 答:是的,Arbitrum 支持全套以太坊 JSON-RPC 方法。它额外增加了一些用于 L1 费用数据的 rollup 特定方法。
问:使用 Arbitrum 需要 API 密钥吗? 答:公共端点不需要 API 密钥,但有速率限制。大多数托管服务需要 API 密钥进行身份验证和使用跟踪。
问:我可以将相同的代码用于 Arbitrum One 和 Nova 吗? 答:可以,两个网络共享相同的 RPC 接口。只需更新链 ID 和端点 URL 即可。
问:如何获取 L1 数据费用?
答:调用 arb_getL1BaseFee 获取以 wei 为单位的当前 L1 基础费用。
问:Arbitrum 的最佳 RPC 提供商是什么? 答:最佳提供商取决于您的工作负载。根据速率限制、WebSocket、归档数据和支持评估选项。查看支持的网络以了解各提供商的 Arbitrum 可用性。
有关更多详细信息,请探索 OnFinality 的 Arbitrum RPC 端点 并选择适合项目需求的计划。