摘要
Gnosis Chain 是一个兼容 EVM 的网络,链 ID 为 100,原生货币为 xDAI。像 https://rpc.gnosischain.com 这样的公共 RPC 端点适合轻量测试,但生产应用需要可靠、可扩展的基础设施。本文列出了常见的 Gnosis RPC 端点,解释了如何评估它们,并展示了如何使用 ethers.js、viem 和 MetaMask 进行连接。
快速建议:如何选择 Gnosis RPC 端点
如果您正在原型开发或测试钱包连接,公共 Gnosis RPC 端点(如 https://rpc.gnosischain.com 或 https://gnosis.api.onfinality.io/public)就足够了。对于生产环境的 dApp、索引器或交易机器人,您需要的不仅仅是一个 URL:您需要吞吐量保证、WebSocket 支持、归档数据,以及能够吸收流量峰值而不会对用户限流的提供商。
在您决定使用某个端点之前,请先问自己这些问题:
- 您需要哪些方法? 基本的
eth_call和eth_getBalance在大多数公共端点上都能工作。Trace 和 debug 方法通常需要专用节点或归档节点。 - 您需要 WebSocket 吗? 如果您的应用订阅待处理交易或新区块,请检查提供商是否提供稳定的 WSS URL。
- 您的请求量是多少? 公共端点是共享的,可能会对您进行限流。估算您的峰值每秒请求数,并与提供商限制进行比较。
- 您需要历史状态吗? 归档节点允许您查询任何过去区块的状态。如果您的应用需要此功能,使用支持归档的托管提供商更安全。
对于生产环境,请考虑使用像 OnFinality 这样的托管 RPC 提供商。您将获得专用吞吐量、多个端点以及对应用所依赖方法的支持。查看 支持的网络 页面,了解 Gnosis 是否被覆盖。
Gnosis 链设置一览
Gnosis Chain 是一个兼容 EVM 的网络,采用权益证明共识。以下是钱包和 dApp 所需的关键设置:
| 设置 | 值 |
|---|---|
| 链 ID | 100 (0x64) |
| 原生货币 | xDAI (XDAI) |
| 符号 | XDAI |
| 小数位数 | 18 |
| 区块浏览器 | https://gnosisscan.io |
| 公共 RPC(官方) | https://rpc.gnosischain.com |
| 公共 RPC(OnFinality) | https://gnosis.api.onfinality.io/public |
| WebSocket(官方) | wss://rpc.gnosischain.com/wss |
这些值与大多数钱包和工具使用的链配置一致。当您将 Gnosis 添加到 MetaMask 或其他钱包时,您需要链 ID、货币符号和 RPC URL。
在哪里找到可靠的 Gnosis RPC 列表
存在多个社区维护的列表,例如 ChainList 和 RPC Node List。它们显示公共端点的延迟和状态,但不能替代您自己对提供商的评估。公共列表可以帮助您发现选项,但不会告诉您速率限制、数据新鲜度或提供商的运营实践。
对于生产决策,请使用官方 Gnosis 文档 作为起点。它列出了 Gnosis 团队推荐的专业 RPC 提供商。您还可以查看 OnFinality Gnosis 网络页面 获取托管端点选项。
公共 Gnosis RPC 端点:预期效果
公共端点是免费且易于使用的,但也有权衡。以下是一些常见的公共 Gnosis RPC URL:
https://rpc.gnosischain.com– 官方 Gnosis 入门 RPChttps://gnosis.api.onfinality.io/public– OnFinality 公共端点https://rpc.ankr.com/gnosis– Ankr 公共端点https://gnosis.drpc.org– dRPC 公共端点https://public.1rpc.io/gnosis– 1RPC 公共端点
这些端点适合开发,但它们是共享的。如果您的应用发出大量请求,您可能会遇到速率限制或在高峰时段响应变慢。对于生产环境,您应该使用提供 SLA 和专用资源的托管提供商。
如何使用 ethers.js 连接 Gnosis
以下是一个使用 ethers.js v6 连接 Gnosis 并检查链 ID 的简单示例:
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider("https://gnosis.api.onfinality.io/public");
async function main() {
const network = await provider.getNetwork();
console.log("Chain ID:", network.chainId); // 100n
const blockNumber = await provider.getBlockNumber();
console.log("Latest block:", blockNumber);
}
main().catch(console.error);
将 URL 替换为您提供商提供的任何端点。对于 WebSocket 订阅,请使用 WSS URL:
import { ethers } from "ethers";
const provider = new ethers.WebSocketProvider("wss://rpc.gnosischain.com/wss");
provider.on("block", (blockNumber) => {
console.log("New block:", blockNumber);
});
将 Gnosis 添加到 MetaMask
要将 Gnosis 添加到 MetaMask,请使用以下网络设置:
- 网络名称: Gnosis
- 新的 RPC URL:
https://gnosis.api.onfinality.io/public - 链 ID: 100
- 货币符号: XDAI
- 区块浏览器 URL:
https://gnosisscan.io
您也可以使用 ChainList 网站一键添加网络,但在确认之前请验证 RPC URL 和链 ID。
公共 Gnosis RPC 与托管 Gnosis RPC:比较什么
在评估 Gnosis RPC 提供商时,请比较以下因素:
| 因素 | 公共端点 | 托管提供商(例如 OnFinality) |
|---|---|---|
| 成本 | 免费 | 按使用量或订阅 |
| 速率限制 | 通常严格 | 可配置,限制更高 |
| 可靠性 | 尽力而为 | SLA 和监控 |
| WebSocket | 有时可用 | 通常包含 |
| 归档数据 | 很少 | 通常可用 |
| Trace/debug 方法 | 通常不支持 | 在专用节点上可用 |
| 支持 | 社区 | 专门支持 |
对于生产应用,选择很明确:使用托管提供商。成本由您获得的可靠性和功能所证明。
使用 viem 与 Gnosis
如果您更喜欢 viem,以下是如何创建公共客户端:
import { createPublicClient, http } from "viem";
import { gnosis } from "viem/chains";
const client = createPublicClient({
chain: gnosis,
transport: http("https://gnosis.api.onfinality.io/public"),
});
const blockNumber = await client.getBlockNumber();
console.log("Latest block:", blockNumber);
Viem 在其链定义中包含了 Gnosis,因此您无需手动定义链。
使用 Gnosis RPC 时的常见陷阱
- 使用错误的链 ID: 始终使用 100,而不是 1 或 56。不匹配会导致交易失败。
- 忽略速率限制: 公共端点可能会对您限流。监控您的请求量,如果达到限制,请切换到托管提供商。
- 假设支持归档: 许多公共端点仅提供最近状态。如果您需要历史数据,请确认归档支持。
- 使用 HTTP 进行订阅: 实时事件需要 WebSocket。HTTP 轮询效率低下,并且可能错过事件。
- 未测试故障转移: 如果您的应用依赖单个 RPC URL,则存在单点故障。使用多个端点或具有内置故障转移的提供商。
关键要点
- Gnosis Chain 使用链 ID 100,原生货币为 xDAI。
- 公共 RPC 端点适合开发,但生产应用需要托管基础设施。
- 评估提供商时,考虑速率限制、WebSocket 支持、归档数据和可靠性。
- 使用官方 Gnosis 文档和提供商列表作为起点,但请自行验证端点。
- OnFinality 提供具有可扩展基础设施的托管 Gnosis RPC。请参阅 RPC 定价 和 支持的网络。
常见问题解答
Gnosis 主网的 RPC URL 是什么?
常见的公共 RPC URL 是 https://rpc.gnosischain.com。OnFinality 还提供公共端点 https://gnosis.api.onfinality.io/public。对于生产环境,请使用托管提供商。
Gnosis 的链 ID 是什么?
链 ID 是 100 (0x64)。
Gnosis 的原生货币是什么?
原生货币是 xDAI,符号为 XDAI,18 位小数。
如何将 Gnosis 添加到 MetaMask?
使用网络设置:RPC URL https://gnosis.api.onfinality.io/public,链 ID 100,符号 XDAI,浏览器 https://gnosisscan.io。
OnFinality 支持 Gnosis 吗?
是的,OnFinality 提供 Gnosis RPC 端点。请访问 Gnosis 网络页面 了解详情。