摘要
本指南涵盖C链、P链和X链的Avalanche RPC端点,包括主网和Fuji测试网的URL、链ID,以及如何选择可靠的RPC提供商。其中包含决策清单、评估标准和代码示例,帮助开发者将Avalanche RPC集成到他们的dApp中。
Avalanche RPC决策清单
在集成Avalanche RPC端点之前,请考虑以下事项:
- 你需要哪条链? C链(兼容EVM的智能合约)、P链(验证器/子网管理)还是X链(资产转移)?
- 主网还是测试网? 使用Fuji测试网进行开发和测试。
- 公共RPC还是私有RPC? 公共端点有速率限制,可能不适合生产环境。私有端点提供更高的速率限制和专用资源。
- 你需要归档数据吗? 归档节点提供历史状态访问,适用于分析或查询过去区块的dApp。
- 是否支持WebSocket? 对于实时订阅(例如待处理交易),确保提供商支持WebSocket端点。
- 地理分布? 低延迟需要端点靠近你的用户或基础设施。
Avalanche网络架构
Avalanche包含三个内置区块链,每个都有其自己的RPC接口:
- C链(合约链): 兼容EVM,运行智能合约。使用标准的以太坊JSON-RPC方法。
- P链(平台链): 协调验证器,管理子网和质押。拥有自己的一套API方法。
- X链(交易链): 处理数字资产(例如AVAX)的创建和转移。使用Avalanche特定的API。
此外,Avalanche支持子网——具有自己验证器集和虚拟机的自定义区块链。每个子网都有自己的RPC端点。
Avalanche RPC端点
主网
| 链 | RPC端点(HTTP) | WebSocket端点 | 链ID |
|---|---|---|---|
| C链 | https://api.avax.network/ext/bc/C/rpc | wss://api.avax.network/ext/bc/C/ws | 43114 (0xa86a) |
| P链 | https://api.avax.network/ext/bc/P | 不公开提供 | — |
| X链 | https://api.avax.network/ext/bc/X | 不公开提供 | — |
Fuji测试网
| 链 | RPC端点(HTTP) | WebSocket端点 | 链ID |
|---|---|---|---|
| C链 | https://api.avax-test.network/ext/bc/C/rpc | wss://api.avax-test.network/ext/bc/C/ws | 43113 (0xa869) |
| P链 | https://api.avax-test.network/ext/bc/P | 不公开提供 | — |
| X链 | https://api.avax-test.network/ext/bc/X | 不公开提供 | — |
注意: 公共API节点(
api.avax.network)有速率限制,可能不适合生产工作负载。对于生产环境,请考虑使用专用RPC提供商,如OnFinality,它提供更高的速率限制和专用节点。
如何选择Avalanche RPC提供商
在评估Avalanche的RPC提供商时,请使用以下标准:
| 标准 | 检查内容 | 重要性 |
|---|---|---|
| 端点覆盖 | 提供商是否支持C链、P链、X链和Fuji测试网? | 你的dApp可能需要多条链。 |
| 速率限制 | 每秒请求数(RPS)限制是多少? | 公共端点经常限流;生产应用需要更高的限制。 |
| 正常运行时间和可靠性 | 是否有服务等级协议(SLA)? | 停机可能破坏你的应用程序。 |
| 延迟 | 节点地理位置在哪里? | 更低的延迟改善用户体验。 |
| 归档数据 | 提供商是否提供归档节点? | 历史查询和分析需要。 |
| WebSocket支持 | 是否提供WebSocket端点? | 实时更新需要。 |
| 定价模式 | 按需付费、订阅还是免费层? | 根据预算和使用模式选择。 |
深入了解,请参阅我们的指南如何选择RPC提供商。
向Avalanche C链发起RPC调用
由于C链兼容EVM,你可以使用标准的以太坊库,如ethers.js或web3.js。以下是使用curl和ethers.js的示例。
使用curl
curl -X POST https://api.avax.network/ext/bc/C/rpc \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_blockNumber",
"params": [],
"id": 1
}'
使用ethers.js
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://api.avax.network/ext/bc/C/rpc");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("当前区块号:", blockNumber);
}
getBlockNumber();
WebSocket订阅示例
const { WebSocket } = require("ws");
const ws = new WebSocket("wss://api.avax.network/ext/bc/C/ws");
ws.on("open", function open() {
ws.send(JSON.stringify({
jsonrpc: "2.0",
method: "eth_subscribe",
params: ["newHeads"],
id: 1
}));
});
ws.on("message", function incoming(data) {
console.log("新区块:", JSON.parse(data));
});
常见陷阱与故障排除
1. 速率限制
公共端点经常返回429 Too Many Requests。切换到具有更高限制的私有RPC提供商。
2. 链ID错误
确保你的钱包或dApp使用正确的链ID:主网为43114,Fuji测试网为43113。
3. P链/X链不支持WebSocket
只有C链在公共API上支持WebSocket连接。对于其他链,请使用HTTP轮询。
4. 方法未找到
某些以太坊方法(例如eth_getLogs)在C链上受支持,但在P链或X链上不受支持。请查看AvalancheGo C链RPC文档获取完整列表。
下一步
关键要点
- Avalanche有三条主要链:C链(EVM)、P链(平台)和X链(资产)。
- 公共端点适合测试,但由于速率限制不适合生产环境。
- 根据端点覆盖、速率限制、延迟和归档支持选择提供商。
- 使用标准以太坊工具进行C链开发;P链和X链需要Avalanche特定的API。
- 在集成之前,始终验证链ID和WebSocket可用性。
常见问题
Avalanche C链的RPC URL是什么?
主网C链RPC URL是https://api.avax.network/ext/bc/C/rpc。对于Fuji测试网,使用https://api.avax-test.network/ext/bc/C/rpc。
Avalanche是否支持WebSocket RPC?
是的,C链支持WebSocket,地址为wss://api.avax.network/ext/bc/C/ws(主网)和wss://api.avax-test.network/ext/bc/C/ws(测试网)。
Avalanche C链的链ID是什么?
主网链ID是43114(0xa86a)。Fuji测试网链ID是43113(0xa869)。
我可以使用以太坊库与Avalanche交互吗?
是的,C链完全兼容EVM,因此你可以使用ethers.js、web3.js、Hardhat和其他以太坊工具。
在哪里可以找到可靠的Avalanche RPC提供商?
OnFinality提供具有更高速率限制和专用节点选项的Avalanche RPC端点。请查看我们的支持的网络页面了解详情。