摘要
Astar 是一个 Polkadot 平行链,支持 EVM 和 Wasm 智能合约。本页面列出了公共和提供商托管的 Astar RPC 端点、链配置详情,以及为生产级 dApp 选择 RPC 提供商的指南。
Astar RPC 决策检查清单
在选择适合您项目的 Astar RPC 端点之前,请考虑以下因素:
| 标准 | 检查内容 | 重要性说明 |
|---|---|---|
| 公共 vs. 私有 | 速率限制、可靠性和正常运行时间保证 | 公共端点可能会限制请求;私有端点为生产应用提供专用容量 |
| EVM vs. Substrate | 端点是否支持 EVM JSON-RPC 方法? | Astar 同时拥有 EVM 和原生 Substrate 层;确保您的提供商支持您需要的方法 |
| WebSocket 支持 | wss:// 端点的可用性 | 实时事件监听和订阅所必需 |
| 归档数据 | 节点是否存储历史状态? | 查询过往余额或事件的 dApp 需要此功能 |
| 地理延迟 | 节点与用户或后端的距离 | 较低的延迟可提升交易提交速度和用户体验 |
| 提供商声誉 | 过往记录、支持和网络覆盖范围 | 可靠的提供商可减少停机时间和维护开销 |
Astar 网络概述
Astar Network 是一个 Polkadot 平行链,同时支持 EVM 和 WebAssembly (Wasm) 智能合约。它作为跨链 dApp 的中心枢纽,连接 Polkadot 生态系统与以太坊及其他主要区块链。在 Astar 上构建的开发者可以使用标准的以太坊工具(MetaMask、Hardhat、ethers.js)以及 Substrate 原生工具。
Astar 链配置
要连接到 Astar,您需要以下链信息:
- 链 ID: 592 (0x250)
- 货币: ASTR
- 区块浏览器: https://astar.subscan.io 或 https://blockscout.com/astar
- 网络名称: Astar 主网
- RPC URL: 请参见下方端点
公共 Astar RPC 端点
公共端点可免费使用,但存在速率限制且无正常运行时间保证。它们适用于测试、轻量级 dApp 使用和开发。以下是一些常用的公共端点:
| 提供商 | HTTPS URL | WebSocket URL |
|---|---|---|
| Astar 团队 | https://evm.astar.network | wss://rpc.astar.network |
| OnFinality | https://astar.api.onfinality.io/public | wss://astar.api.onfinality.io/public-ws |
| Dwellir | https://astar-rpc.n.dwellir.com | wss://astar-rpc.n.dwellir.com |
| BlastAPI | https://astar.public.blastapi.io | wss://astar.public.blastapi.io |
| 1RPC | https://1rpc.io/astr | – |
| RadiumBlock | https://astar.public.curie.radiumblock.co/http | wss://astar.public.curie.radiumblock.co/ws |
| Alchemy | https://astar-mainnet.g.alchemy.com/v2/demo | – |
注意: 公共端点有速率限制。对于生产工作负载,请考虑使用专用节点或托管 RPC 服务。
使用以太坊库连接 Astar RPC
由于 Astar 兼容 EVM,您可以使用标准的以太坊库与之交互。以下是使用 ethers.js 的示例:
const { ethers } = require("ethers");
// 通过公共端点连接到 Astar
const provider = new ethers.providers.JsonRpcProvider("https://astar.api.onfinality.io/public");
// 获取最新区块号
provider.getBlockNumber().then((blockNumber) => {
console.log("当前区块号:", blockNumber);
});
// 获取地址的 ASTR 余额
const address = "0x...";
provider.getBalance(address).then((balance) => {
console.log("余额:", ethers.utils.formatEther(balance), "ASTR");
});
何时需要超越公共端点
公共端点便于原型开发,但它们存在局限性:
- 速率限制: 请求过多可能导致 429 错误。
- 无 SLA: 正常运行时间和性能无法保证。
- 共享资源: 其他用户的流量可能会影响您的延迟。
- 方法受限: 某些高级 RPC 方法(例如
trace_*、debug_*)可能不可用。
对于生产级 dApp,您需要一个可靠的 RPC 提供商,能够提供:
- 专用节点,保证吞吐量。
- 归档节点,用于历史数据查询。
- WebSocket 支持,用于实时订阅。
- 全球基础设施,以最小化延迟。
选择 Astar RPC 提供商
在评估 Astar 的 RPC 提供商时,请考虑以下因素:
- 网络覆盖: 提供商是否在多个区域部署节点?
- 定价模式: 按需付费 vs. 订阅制;是否有免费套餐。
- 支持的方法: 确保提供商支持您的 dApp 所需的 JSON-RPC 方法(例如
eth_call、eth_getLogs、eth_subscribe)。 - 归档数据: 如果您的 dApp 需要历史状态,请确认归档节点支持。
- WebSocket: 对事件驱动型应用至关重要。
- 文档和支持: 清晰的 API 文档和响应迅速的支持渠道。
OnFinality 提供具有竞争力的定价的专用和共享 Astar RPC 端点。您可以在 Astar 网络页面 和 RPC 定价页面 上找到更多详细信息。
常见陷阱与故障排除
- 链 ID 错误: 始终为 Astar 主网使用链 ID 592。使用错误的链 ID 会导致交易失败。
- 超出速率限制: 如果收到 HTTP 429 错误,请降低请求频率或升级到私有端点。
- WebSocket 断开连接: 确保您的客户端优雅地处理重连逻辑。
- 方法未找到: 某些公共端点禁用了特定的 RPC 方法。请查阅提供商的文档。
关键要点
- Astar 是一个兼容 EVM 的 Polkadot 平行链,链 ID 为 592。
- 公共 RPC 端点可用于测试和轻量级使用,但存在速率限制且无 SLA。
- 对于生产级 dApp,请选择提供专用节点、归档数据和 WebSocket 支持的托管 RPC 提供商。
- 根据延迟、可靠性、定价和支持的方法评估提供商。
- OnFinality 作为其多链基础设施的一部分提供 Astar RPC 端点。请访问 支持的网络页面 获取更多信息。
常见问题
Astar 的链 ID 是什么?
Astar 主网的链 ID 是 592 (0x250)。
我可以在 MetaMask 上使用 Astar 吗?
是的,MetaMask 支持 Astar。添加一个自定义网络,使用 RPC URL 和链 ID 592。
Astar 有测试网端点吗?
是的,Astar 有一个名为 Shibuya 的测试网。端点可从 Astar 团队和其他提供商获取。
如何通过 RPC 获取 ASTR 余额?
使用 eth_getBalance 方法,传入地址和区块参数。余额以 Wei 为单位返回。
公共和私有 RPC 端点有什么区别?
公共端点免费但有速率限制且共享。私有端点提供专用容量、更高的速率限制和 SLA。
OnFinality 支持 Astar 吗?
是的,OnFinality 提供公共和私有的 Astar RPC 端点。详情请参见 [Astar 网络页面](/networks/astar)。