摘要
Astar Network 是一个专注于智能合约的 Polkadot 平行链,支持 EVM 和 WebAssembly。它使用 ASTR 作为 gas 和治理代币,并具有 dApp Staking 功能以奖励开发者。本页介绍网络的核心概念以及如何通过 RPC 端点连接以用于开发和生产的指南。
快速决策指南:连接 Astar Network
在编写第一个查询之前,请决定您需要哪个 Astar 端点。对于原型或黑客松,公共端点就足够了。对于生产级 dApp,专用 RPC 节点可提供更可预测的吞吐量并避免共享速率限制。如果您需要历史状态,请检查提供商是否提供归档数据。Astar 是一个基于 Substrate 的链,带有 EVM 层,因此您可以使用 Substrate RPC 方法和以太坊风格的 JSON-RPC 与之交互。OnFinality 提供 Astar RPC 端点 和 专用节点,支持这两种接口。
什么是 Astar Network?
Astar Network 是一个基于 Substrate 构建并作为平行链连接到 Polkadot 的智能合约平台。它于 2022 年 1 月启动主网,最初名为 Plasm Network。Astar 的目标是成为 dApp 的中心,支持 EVM 和 WebAssembly (Wasm) 智能合约。这种双重支持让开发者可以选择适合其项目的执行环境,同时仍然受益于 Polkadot 的共享安全性和互操作性。
原生代币 ASTR 用于交易费用、治理和质押。一个显著的特点是 dApp Staking,ASTR 持有者可以质押他们的代币来支持特定的 dApp 及其开发者。该机制旨在协调建设者和社区之间的激励,为项目提供可持续的资助模式。
Astar 因其与日本企业的合作而受到关注,包括 Sony Network Communications、Toyota 和 NTT Docomo,探索 NFT 和孵化计划等 Web3 用例。该网络也是 Astar Collective 的一部分,该集体构建了 Astar Portal 和 Astar Fi 等产品。
Astar Network 架构:Substrate 和 EVM
Astar 构建在 Substrate 上,Substrate 是支持 Polkadot 的框架。这意味着它使用 Substrate 的 RPC 接口进行核心操作,如查询链元数据和提交交易。然而,Astar 还包含一个 EVM 兼容层,允许以太坊开发者以最小的更改部署 Solidity 合约。这种双重性质对于 RPC 使用非常重要:您可以使用 eth_* 方法(如 eth_call 和 eth_sendRawTransaction)以及 Substrate 特定方法(如 state_getStorage)。
对于开发者来说,这意味着您可以使用熟悉的以太坊工具,如 ethers.js 或 viem,以及 Polkadot 工具,如 polkadot.js。选择取决于您是在构建基于 EVM 的 dApp 还是基于 Substrate 的 dApp。
链设置一览
以下是您需要配置钱包或 dApp 以连接到 Astar 主网的关键参数:
| 参数 | 值 |
|---|---|
| 网络名称 | Astar |
| RPC URL | https://astar.api.onfinality.io/public(示例) |
| Chain ID | 592 |
| 货币符号 | ASTR |
| 区块浏览器 | https://astar.subscan.io |
| 类型 | Substrate + EVM |
请注意,上面的 RPC URL 是公共端点;对于生产环境,请考虑使用像 OnFinality 这样的提供商提供的专用端点。始终查看最新的官方文档以获取最新的设置。
如何连接 Astar Network
您可以通过多种方式连接到 Astar,具体取决于您的用例。
使用钱包
要将 Astar 添加到 MetaMask 或其他 EVM 钱包,请使用上面的链设置。Chain ID 是 592,货币是 ASTR。这允许您发送交易并与 EVM dApp 交互。
使用 ethers.js 或 viem
对于基于 EVM 的开发,您可以使用 ethers.js 或 viem 与 Astar RPC 端点。以下是使用 ethers.js 的示例:
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://astar.api.onfinality.io/public");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block number:", blockNumber);
}
getBlockNumber();
使用 polkadot.js
对于 Substrate 原生交互,您可以使用 polkadot.js:
const { ApiPromise, WsProvider } = require("@polkadot/api");
const wsProvider = new WsProvider("wss://astar.api.onfinality.io/public-ws");
const api = await ApiPromise.create({ provider: wsProvider });
const chain = await api.rpc.system.chain();
console.log("Connected to:", chain.toString());
使用 curl 进行 JSON-RPC
您还可以使用简单的 curl 命令测试端点:
curl -X POST https://astar.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
这将返回最新的区块号,确认端点响应正常。
RPC 方法和用例
Astar 支持广泛的 RPC 方法,包括以太坊和 Substrate API。常见用例包括:
- 读取区块链数据:使用
eth_getBalance、eth_call或state_getStorage查询链上状态。 - 发送交易:使用
eth_sendRawTransaction进行 EVM 交易,或使用author_submitExtrinsic进行 Substrate 交易。 - 订阅事件:使用 WebSocket 订阅,如
eth_subscribe或chain_subscribeNewHeads来监控新区块。 - 与智能合约交互:使用
eth_call读取合约数据,使用eth_sendRawTransaction写入。
对于分析或索引,您可能需要归档数据来访问历史状态。并非所有提供商都提供归档节点,因此在构建之前请检查。
公共 RPC 与专用 RPC:需要考虑什么
公共 RPC 端点对于开发很方便,但它们有局限性:
- 速率限制:公共端点通常会限制请求,这可能会破坏生产应用。
- 可靠性:它们可能会在高峰使用期间宕机或变慢。
- 隐私:您的请求对提供商可见。
对于生产环境,专用 RPC 节点提供:
- 更高的吞吐量:您获得具有更多容量的私有端点。
- 自定义配置:您可以启用归档数据、WebSocket 或特定方法。
- 更好的可靠性:专用基础设施专为正常运行时间而设计。
OnFinality 为 Astar 和其他网络提供 专用节点,并具有灵活的定价。您还可以比较 RPC 定价 以找到适合您需求的计划。
常见陷阱和故障排除
以下是您连接 Astar 时可能遇到的一些问题:
| 症状 | 可能原因 | 修复 |
|---|---|---|
eth_chainId 返回错误值 | 使用了不同的网络 | 检查 Chain ID 是否为 592 |
| 交易卡住 | Nonce 太低或 gas 价格太低 | 以更高的 gas 或正确的 nonce 重新提交 |
| WebSocket 连接断开 | 网络不稳定或提供商限制 | 使用专用的 WebSocket 端点 |
eth_call 返回错误 | 合约地址或 ABI 不正确 | 验证合约地址和 ABI |
| 速率限制错误 | 对公共端点的请求过多 | 升级到专用节点 |
如果您使用公共端点并遇到速率限制,请考虑使用 OnFinality 的专用节点。对于调试,如果提供商支持,您还可以使用 debug_traceTransaction 方法。
关键要点
- Astar Network 是一个 Polkadot 平行链,支持 EVM 和 Wasm 智能合约。
- ASTR 是用于 gas、治理和 dApp Staking 的原生代币。
- 您可以通过以太坊兼容的 RPC 或 Substrate RPC 连接,具体取决于您的技术栈。
- 对于生产环境,请使用专用 RPC 节点以避免速率限制并确保可靠性。
- 在部署前始终验证链设置,如 Chain ID (592) 和 RPC URL。
常见问题解答
Astar Network 的 Chain ID 是什么?
Astar 主网的 Chain ID 是 592。这用于基于 EVM 的交易和钱包配置。
Astar Network 是以太坊第 2 层吗?
不,Astar 是 Polkadot 上的平行链,不是以太坊第 2 层。它具有 EVM 兼容层,因此以太坊工具可以工作,但它是一个独立的网络。
Astar 上的 dApp Staking 是什么?
dApp Staking 允许 ASTR 持有者质押他们的代币来支持特定的 dApp。作为回报,他们获得奖励,开发者获得项目资金。
我可以使用 MetaMask 与 Astar 交互吗?
是的,您可以使用链设置将 Astar 添加到 MetaMask:RPC URL、Chain ID 592 和 ASTR 作为货币符号。
我在哪里可以找到可靠的 Astar RPC 端点?
您可以使用公共端点进行测试,但对于生产环境,请考虑使用像 OnFinality 这样的提供商提供的专用 RPC 节点。查看 Astar 网络页面 以获取可用选项。