摘要
Astar zkEVM 是一个基于以太坊的 Layer 2 解决方案,将 Astar 生态系统引入零知识 rollup。本文介绍如何使用正确的 RPC 端点、链 ID 和配置将您的 dApp 连接到 Astar zkEVM,以及如何为生产环境选择可靠的 RPC 提供商。
快速决策:您应该使用哪个 Astar zkEVM RPC?
如果您正在 Astar zkEVM 上构建,您的第一个决策是使用公共 RPC 端点、共享托管端点还是专用节点。公共端点适合原型设计和轻量使用,但它们通常有速率限制,并且在负载下可能变得不可靠。对于生产 dApp,您需要提供高可用性、可扩展性和支持的管理型 RPC 服务。
OnFinality 为 Astar zkEVM 提供托管 RPC 端点,以及为需要可预测性能和隔离的团队提供专用节点选项。您可以查看 Astar 网络页面 获取最新的端点详细信息和可用性。有关定价和计划选项,请参阅 RPC 定价。
如果您刚刚开始,请使用公共端点进行测试,但计划在启动前迁移到托管服务。如果您已经投入生产,请评估您当前提供商的可靠性、速率限制以及对 WebSocket 和归档数据的支持。
什么是 Astar zkEVM?
Astar zkEVM 是构建在以太坊上的 Layer 2 扩展解决方案,使用零知识 rollup 来提高吞吐量并降低交易成本。它是 Astar 网络生态系统的一部分,该生态系统最初作为 Polkadot 平行链启动。Astar zkEVM 与以太坊虚拟机(EVM)兼容,这意味着您可以部署现有的 Solidity 智能合约,并使用 MetaMask、Hardhat 和 ethers.js 等以太坊工具,而无需进行重大更改。
Astar zkEVM 的主要优势在于它结合了以太坊的安全性和 zk-rollup 的可扩展性,同时与以太坊开发者体验完全兼容。这使其成为希望将 dApp 扩展到新受众的开发者的有吸引力的选择。
链设置一览
要连接到 Astar zkEVM,您需要正确的网络配置。下表总结了基本设置:
| 设置 | 值 |
|---|---|
| 网络名称 | Astar zkEVM |
| RPC URL | (使用您提供商的端点,例如 OnFinality) |
| 链 ID | 3776 |
| 货币符号 | ETH |
| 区块浏览器 URL | https://astar-zkevm.explorer.startale.com/ |
注意:链 ID 和浏览器 URL 基于公共信息。请始终从官方 Astar 文档或您的 RPC 提供商验证最新详细信息。
如何配置您的钱包和 dApp
要连接到 Astar zkEVM,您需要将网络添加到您的钱包或配置您的 dApp 的 RPC 设置。以下是使用 MetaMask 的示例:
- 打开 MetaMask 并点击网络下拉菜单。
- 点击“添加网络”并填写详细信息:
- 网络名称:Astar zkEVM
- 新的 RPC URL:(您的 RPC 端点)
- 链 ID:3776
- 货币符号:ETH
- 区块浏览器 URL:https://astar-zkevm.explorer.startale.com/
- 点击保存。
对于开发者,您可以使用 ethers.js 或 viem 配置您的 dApp。以下是使用 ethers.js 的示例:
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider("https://astar-zkevm-rpc.example.com");
const network = await provider.getNetwork();
console.log("Chain ID:", network.chainId); // 应为 3776
将 RPC URL 替换为您的实际端点。如果您使用 OnFinality,您可以在 OnFinality 仪表板 中找到您的专用端点。
进行您的第一个 JSON-RPC 调用
一旦您有了端点,您可以使用简单的 JSON-RPC 请求进行测试。以下是一个获取最新区块号的 curl 示例:
curl -X POST https://astar-zkevm-rpc.example.com \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
您应该收到类似以下的响应:
{"jsonrpc":"2.0","result":"0x123456","id":1}
结果是十六进制编码的区块号。这确认了您的 RPC 端点正常工作。
使用 WebSocket 进行实时更新
许多 dApp 需要实时数据,例如新区块或交易确认。为此,您可以使用 WebSocket 连接。大多数 RPC 提供商(包括 OnFinality)都提供 WebSocket 端点。以下是使用 viem 的示例:
import { createPublicClient, webSocket } from 'viem';
const client = createPublicClient({
transport: webSocket('wss://astar-zkevm-rpc.example.com'),
});
const unwatch = client.watchBlocks({
onBlock: (block) => console.log('New block:', block.number),
});
WebSocket 连接对于订阅更高效,并且可以减少与轮询相比的延迟。
常见陷阱和故障排除
在使用 Astar zkEVM RPC 时,您可能会遇到一些常见问题:
- 错误的链 ID:确保使用 3776。使用错误的链 ID 将导致交易被拒绝。
- 速率限制:公共端点通常有速率限制。如果您看到 429 错误,请考虑升级到托管服务。
- WebSocket 断开:如果您的 WebSocket 连接频繁断开,请检查您提供商的稳定性,并考虑使用专用节点。
- 找不到交易:如果您找不到交易,请确保您查询了正确的区块范围,并且您的节点已同步。
如果您需要帮助,OnFinality 为其所有 RPC 服务提供支持。您还可以查看 Astar 文档 了解网络特定详细信息。
如何为 Astar zkEVM 选择 RPC 提供商
在选择 Astar zkEVM 的 RPC 提供商时,请考虑以下标准:
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 可靠性 | 正常运行时间历史、冗余 | 停机会破坏您的 dApp |
| 性能 | 延迟、吞吐量 | 响应缓慢会损害用户体验 |
| 速率限制 | 免费层限制、付费计划 | 避免意外限流 |
| WebSocket 支持 | wss:// 端点 | 实时功能所需 |
| 归档数据 | 访问历史状态 | 某些分析和调试需要 |
| 专用选项 | 隔离节点 | 适用于高流量或合规需求 |
OnFinality 为 Astar zkEVM 提供共享和专用 RPC 节点。您可以从免费层开始,随着项目增长进行扩展。有关更多指导,请阅读我们的 如何选择 RPC 提供商 文章。
生产就绪检查清单
在 Astar zkEVM 上启动您的 dApp 之前,请确保您:
- 使用具有可靠正常运行时间保证的托管 RPC 提供商。
- 为您的 RPC 端点设置监控。
- 在提供商出现问题时实施备用端点。
- 如果可用,在测试网上测试您的 dApp。
- 了解速率限制并规划扩展。
OnFinality 为您的端点提供监控和分析,帮助您保持 dApp 健康。
关键要点
- Astar zkEVM 是一个与以太坊兼容的 Layer 2,链 ID 为 3776。
- 使用正确的 RPC 端点和链 ID 来连接您的 dApp。
- 公共端点适合测试,但生产应用需要可靠的管理型 RPC 提供商。
- 在选择提供商时,考虑 WebSocket 支持、归档数据和专用节点选项。
- OnFinality 为 Astar zkEVM 提供托管 RPC 和专用节点,并提供适合您需求的定价选项。
常见问题解答
Astar zkEVM RPC URL 是什么?
公共 RPC URL 由 Astar 团队提供,可以在他们的文档中找到。对于可靠的托管端点,您可以使用 OnFinality 的服务,它为您的项目提供专用 URL。
Astar zkEVM 使用什么链 ID?
Astar zkEVM 使用链 ID 3776。
Astar zkEVM 是否与以太坊工具兼容?
是的,Astar zkEVM 与 EVM 兼容,因此您可以使用 MetaMask、Hardhat、ethers.js、viem 和其他以太坊工具。
如何获得专用的 Astar zkEVM RPC 节点?
您可以通过 OnFinality 获得专用节点。访问 专用节点页面 了解更多信息。
公共 Astar zkEVM RPC 的速率限制是多少?
公共端点通常有速率限制,但具体限制没有官方文档。对于生产环境,建议使用像 OnFinality 这样的托管提供商以避免限流。