摘要
Gnosis Chain 是一个兼容 EVM 的网络,链 ID 为 100,原生 Gas 代币为 xDAI。要与其交互,你需要一个支持标准 JSON-RPC 方法的可靠 RPC 端点。本文介绍了链设置、公共端点选项,以及如何为开发和生产环境配置你的应用程序。
你将学习如何使用 curl、ethers.js 和钱包配置进行连接,以及如何根据工作负载、归档需求和故障转移来评估 Gnosis 的 RPC 提供商。OnFinality 作为其 RPC API 服务的一部分,提供公共和专用的 Gnosis RPC 端点。
快速推荐:哪种 Gnosis RPC 配置适合你的项目?
如果你正在构建原型、运行脚本或测试钱包连接,公共 Gnosis RPC 端点通常就足够了。它让你无需注册即可立即访问链 ID 100。对于服务真实用户的生产应用程序,你会需要一个具有可预测吞吐量、监控以及当请求量增长时能够升级到专用节点的托管 RPC 服务。
使用此表将你的工作负载与正确的端点类型匹配:
| 工作负载 | 推荐的端点类型 | 原因 |
|---|---|---|
| 本地开发、快速测试 | 公共 RPC | 无需设置,可与标准工具配合使用 |
| 测试网或预发布环境 | 公共或共享 RPC | 成本低,易于切换 |
| 中等流量的生产 dApp | 共享托管 RPC | 比公共端点更好的可靠性和支持 |
| 高流量后端、索引器或机器人 | 专用 Gnosis 节点 | 资源一致,无邻居干扰 |
| 归档查询(历史状态) | 启用归档的 RPC | 公共端点通常会修剪旧状态 |
OnFinality 提供共享和专用的 Gnosis RPC 选项。你可以查看 RPC 定价 和 Gnosis 网络页面 了解当前详情。
Gnosis Chain 设置一览
Gnosis Chain 是一个兼容 EVM 的网络。大多数以太坊工具只需极少的改动即可使用。以下是将 Gnosis 添加到钱包或 Web3 库时所需的核心参数:
| 参数 | 值 |
|---|---|
| 网络名称 | Gnosis |
| 链 ID | 100 |
| 原生货币 | xDAI (XDAI),18 位小数 |
| 区块浏览器 | https://gnosisscan.io |
| RPC 端点(公共) | https://gnosis.api.onfinality.io/public |
| 传输方式 | HTTP |
请注意,Gnosis 使用 xDAI 作为其 Gas 代币。用户以 xDAI 支付交易费用,而不是使用单独的代币。这是在跨链资产或设置新钱包时常见的混淆点。
使用 curl、ethers.js 和钱包配置进行连接
验证端点最快的方法是简单的 eth_chainId 调用。如果你使用的是私有服务,请将占位符替换为你自己的端点。
curl -X POST https://gnosis.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
响应应返回 0x64,这是 100 的十六进制表示。
对于 JavaScript 应用程序,ethers.js v6 开箱即用:
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider('https://gnosis.api.onfinality.io/public');
const network = await provider.getNetwork();
console.log(network.chainId); // 100n
const block = await provider.getBlockNumber();
console.log('Current block:', block);
如果你使用 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();
要将 Gnosis 添加到 MetaMask 等浏览器钱包,请使用以下网络配置:
{
"chainId": "0x64",
"chainName": "Gnosis",
"nativeCurrency": {
"name": "xDAI",
"symbol": "XDAI",
"decimals": 18
},
"rpcUrls": ["https://gnosis.api.onfinality.io/public"],
"blockExplorerUrls": ["https://gnosisscan.io"]
}
Gnosis 上常见的 JSON-RPC 方法
Gnosis 支持标准的以太坊 JSON-RPC API。你最常使用的方法包括:
eth_blockNumber– 最新区块高度eth_getBalance– 地址的 xDAI 余额eth_call– 只读合约交互eth_getLogs– 事件日志,通常由索引器使用eth_sendRawTransaction– 广播已签名交易eth_getTransactionReceipt– 交易状态和日志
由于 Gnosis 与 EVM 等效,合约部署和交互遵循与以太坊相同的模式。主要区别在于 Gas 成本、出块时间和已部署合约的集合。
如果你依赖 eth_getLogs 进行索引,请检查端点的区块范围限制。公共端点通常会限制单次调用可查询的区块数量。托管服务通常允许更大的范围,而专用节点让你可以控制限制。
何时从公共 Gnosis RPC 迁移到专用 Gnosis RPC
公共端点是共享的。这意味着你的请求会与其他用户竞争,在高峰时段可能会遇到速率限制或响应变慢。对于许多开发者来说,这对于开发和低流量应用程序来说没问题。但随着项目增长,你会遇到影响用户体验的限制。
在以下情况下考虑迁移到专用 Gnosis 节点:
- 你的应用程序每秒发送大量请求。
- 你需要面向用户的 dApp 具有一致的响应时间。
- 你依赖归档数据进行历史查询。
- 你希望避免速率限制和邻居干扰效应。
- 你需要 WebSocket 支持订阅(请与你的提供商确认可用性)。
OnFinality 的 专用节点 产品提供隔离的 Gnosis 基础设施。你也可以从共享计划开始,稍后升级。RPC 定价 页面列出了各种选项。
Gnosis RPC 生产环境准备检查清单
在发布之前,请运行以下检查以避免常见陷阱:
- 端点冗余 – 使用至少两个 RPC 提供商或端点。配置你的应用程序在一个无响应时进行故障转移。这可以防止单点故障。
- 链 ID 验证 – 始终确认你连接的是链 ID 100。配置错误的端点可能会连接到测试网或其他链。
- Gas 代币意识 – 确保你的用户了解交易费用以 xDAI 支付。如果你赞助交易,请相应地进行预算。
- 速率限制规划 – 了解你的端点的请求限制。对于公共端点,假设限制较低。对于托管服务,请检查计划详情。
- 归档需求 – 如果你查询历史状态(例如,旧区块的余额),你需要一个归档节点。请与你的提供商确认。
- 监控 – 为 RPC 错误、延迟峰值和失败交易设置警报。一个简单的健康检查可以及早发现问题。
- WebSocket 与 HTTP – 如果你需要实时事件,请检查你的提供商是否支持 WebSocket 订阅。对于大多数读/写操作,HTTP 就足够了。
调试常见的 Gnosis RPC 问题
即使有好的端点,你也可能遇到错误。以下是典型的症状和修复方法:
| 症状 | 可能原因 | 尝试方法 |
|---|---|---|
eth_chainId 返回错误值 | 连接到错误的网络 | 验证端点 URL 和链 ID |
eth_getLogs 返回关于区块范围的错误 | 查询范围太大 | 减小范围或使用限制更高的提供商 |
| 交易卡在待处理状态 | Gas 价格太低或 nonce 问题 | 检查 Gas 估算和 nonce 管理 |
eth_call 意外回滚 | 合约状态改变或参数不正确 | 使用 eth_call 模拟调用并检查回滚原因 |
| 响应缓慢或超时 | 公共端点拥塞 | 切换到托管或专用端点 |
| WebSocket 断开连接 | 网络不稳定或提供商限制 | 实现重连逻辑并回退到 HTTP |
有关 nonce 相关的错误,请参阅我们关于 区块链 nonce 的文章。
评估 Gnosis RPC 提供商
在比较提供商时,不要只看标价。考虑以下因素:
- 支持的方法 – 提供商是否支持你需要的 JSON-RPC 方法,包括
eth_getLogs和归档查询? - 传输选项 – HTTP 是标准。WebSocket 可能可用于订阅。
- 速率限制 – 了解每秒请求数和每日上限。公共端点通常受到严格限制。
- 归档数据 – 如果你需要历史状态,请确认归档支持。
- 故障转移和冗余 – 提供商是否提供多个区域或自动故障转移?
- 支持和 SLA – 对于生产环境,支持渠道和明确的正常运行时间预期很重要。
- 定价模式 – 按请求付费、订阅或专用节点定价。与你的使用模式匹配。
OnFinality 作为其 API 服务的一部分提供 Gnosis RPC。你可以在 定价页面 上比较计划,并查看所有 支持的网络。
关键要点
- Gnosis Chain 使用链 ID 100 和 xDAI 作为其原生 Gas 代币。
- 公共 RPC 端点适合开发,但在生产环境中可能会受到速率限制。
- 使用提供的 curl、ethers.js 和钱包配置示例快速连接。
- 对于生产环境,考虑使用托管或专用的 Gnosis RPC 端点以避免邻居干扰问题。
- 始终实施故障转移并监控你的 RPC 使用情况。
- OnFinality 提供 Gnosis RPC,并提供共享和专用基础设施选项。
常见问题解答
什么是 Gnosis RPC 端点?
Gnosis RPC 端点是一个接受 Gnosis Chain 网络(链 ID 100)的 JSON-RPC 请求的 URL。OnFinality 在 https://gnosis.api.onfinality.io/public 提供公共端点,并提供专用选项。
Gnosis 的链 ID 是什么? Gnosis Chain 使用链 ID 100(十六进制:0x64)。
Gnosis 的原生代币是什么? 原生 Gas 代币是 xDAI (XDAI),具有 18 位小数。
我可以将 MetaMask 与 Gnosis 一起使用吗? 可以。使用本文提供的设置添加自定义网络。
Gnosis 支持 WebSocket RPC 吗? WebSocket 支持取决于提供商。请与你的 RPC 提供商确认可用性。
如何获取用于测试的 xDAI? 你可以将资产跨链到 Gnosis,或使用水龙头(如果有)。对于测试网 xDAI,请寻找 Gnosis 测试网水龙头。
常见的 Gnosis RPC 错误有哪些?
常见问题包括速率限制、eth_getLogs 的区块范围错误以及 nonce 问题。请参阅上面的调试部分。
Gnosis RPC 是免费的吗? 公共端点通常是免费的,但有限制。托管和专用服务有相关费用。详情请参阅 RPC 定价。