Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

在测试时,Solana RPC 提供商订阅计划中应该关注什么?

摘要

测试 Solana 应用需要一个 RPC 计划,该计划需平衡成本、速率限制以及对 devnet 或 mainnet 的访问。本文解释了在订阅计划中应评估哪些内容(例如请求配额、WebSocket 支持和存档数据),以及如何将计划与测试阶段(从快速原型到负载测试)相匹配。

当你在测试 Solana 应用时,你选择的 RPC 提供商订阅计划会影响你迭代的速度和结果的真实性。计划太小会因速率限制错误而阻塞你的测试套件;计划太大则会浪费预算在从未使用的容量上。本文介绍了对测试重要的计划功能、如何将计划与测试阶段匹配,以及在订阅前需要检查什么。

快速建议:将计划与测试阶段匹配

在比较提供商之前,先确定你正在进行的测试类型。这个决定会缩小你实际需要的计划功能范围。

  • 原型设计和单元测试:免费或低成本的共享计划,并能访问 Solana devnet,通常就足够了。你需要基本的 JSON-RPC 方法和用于账户订阅的 WebSocket 端点。
  • 针对 mainnet 的集成测试:你会需要付费的共享计划,具有更高的请求配额和一致的性能,因为 devnet 的行为可能与 mainnet 不同。
  • 负载测试或性能基准测试:专用节点或具有高速率限制的计划更安全。共享计划可能会在突发流量时限制你,这会使你的结果产生偏差。

如果你的测试主要在 devnet 上进行,请检查提供商是否确实提供 devnet 端点。一些提供商仅在付费层级上暴露 mainnet,这迫使你为你尚不需要的 mainnet 容量付费。例如,OnFinality 提供公共的 Solana devnet 端点和 mainnet 端点,因此你可以在没有付费计划的情况下开始测试,并在流量增长时升级。

用于测试的订阅计划应包含什么

并非所有 Solana RPC 计划都是相同的。以下是你在评估用于测试目的的计划时要比较的功能。

请求限制和速率限制

每个共享 RPC 计划都有请求配额,通常以每秒请求数(RPS)或每月积分来衡量。对于测试,关键问题是:当你超过限制时会发生什么?

  • 提供商是返回 HTTP 429 错误,还是排队请求?
  • 限制是按秒、按天还是按月?
  • 你能为负载测试临时提高限制吗?

低 RPS 上限的计划可能适合单元测试,但在负载测试期间会阻塞你。寻找一个允许你监控使用情况的计划,以便你知道何时接近限制。

Devnet 和 testnet 访问

Solana 有几个测试环境:devnet、testnet 和 localnet。Devnet 是应用程序测试中最常见的,因为它是一个公共集群,带有 SOL 水龙头。检查提供商的订阅是否包含对 devnet 端点的访问,以及该访问是否与 mainnet 计入相同的请求配额。

一些提供商将 devnet 视为具有自己限制的单独产品。其他提供商将其包含在同一计划中。如果你在 devnet 上进行大量测试,你需要一个不会耗尽 mainnet 配额的计划。

WebSocket 支持

许多 Solana 应用通过 WebSocket 订阅账户或程序变更。如果你的测试涉及实时更新,你需要一个支持 WebSocket 连接的计划。检查:

  • 允许多少并发 WebSocket 连接?
  • WebSocket 使用是否单独收费?
  • 在长时间测试运行期间,WebSocket 订阅是否稳定?

仅提供 HTTP JSON-RPC 的计划可能不足以测试依赖实时更新的 dApp。

存档数据和历史访问

某些测试需要重放历史状态或查询旧账户数据。这需要存档节点。并非所有提供商在每个计划上都提供存档数据。如果你的测试涉及历史分析或调试过去的交易,请确认计划包含存档访问。

地理覆盖和延迟

即使在测试中,延迟也很重要,尤其是在测量性能时。在多个区域提供端点的提供商可以减少往返时间。对于基本功能测试,延迟不太关键,但对于负载测试,附近的端点可以为你提供更准确的吞吐量数字。

比较用于测试的 Solana RPC 提供商

下表总结了在选择用于测试的订阅计划时,跨提供商需要比较的内容。在评估选项时,将其用作检查清单。

功能要检查什么为什么对测试重要
Devnet 访问是否包含 devnet?是否有单独的配额?避免在你只需要 devnet 时支付 mainnet 费用
请求限制RPS 上限、每月积分、突发策略防止测试运行期间出现 429 错误
WebSocket 支持并发连接、稳定性实时订阅测试所需
存档数据计划中是否可用?额外费用?历史状态重放所需
速率限制监控使用仪表板、警报知道何时接近限制
地理端点提供的区域减少负载测试的延迟
免费层级是否存在?有什么限制?无需成本即可开始原型设计

当你比较提供商时,请优先考虑你自己的测试工作负载。在 mainnet 生产流量方面表现出色的提供商可能不具备你测试所需的 devnet 灵活性。

如何在承诺之前测试提供商

大多数提供商提供免费层级或试用期。利用这段时间进行结构化评估,而不仅仅是几个 curl 命令。以下是一种实用的方法:

  1. 创建一个测试脚本,练习你的应用最常用的方法,例如 getBalancegetLatestBlockhashsendTransaction
  2. 针对 devnet 端点运行脚本几个小时,看看是否遇到速率限制。
  3. 测试 WebSocket 订阅,通过订阅一个账户并保持连接长时间打开。
  4. 从你的开发环境测量到端点的延迟
  5. 检查提供商的文档,了解任何特定于测试的指导或限制。

以下是一个使用 Solana web3.js 库测试基本 RPC 调用的简单 JavaScript 示例:

const { Connection, clusterApiUrl } = require('@solana/web3.js');

// 替换为你的提供商的 devnet 端点
const endpoint = 'https://solana.api.onfinality.io/public';
const connection = new Connection(endpoint, 'confirmed');

async function testConnection() {
  try {
    const version = await connection.getVersion();
    console.log('Solana node version:', version);

    const slot = await connection.getSlot();
    console.log('Current slot:', slot);
  } catch (error) {
    console.error('RPC test failed:', error);
  }
}

testConnection();

注意:示例中的公共端点用于 mainnet。对于 devnet 测试,请使用提供商的 devnet URL,你可以在其网络页面上找到。OnFinality 的 Solana devnet 页面 列出了正确的端点。

使用订阅计划测试时的常见陷阱

即使有一个好的计划,你也可能遇到浪费时间的问题。以下是常见陷阱以及如何避免它们。

陷阱 1:将本应在 devnet 上运行的测试用于 mainnet

如果你的测试不需要真实资金或 mainnet 状态,请使用 devnet。它是免费的,并且不会消耗你的 mainnet 配额。一些提供商提供单独的 devnet 端点,你可以在没有付费计划的情况下使用。

陷阱 2:忽略 WebSocket 连接限制

如果你的应用打开许多 WebSocket 连接,你可能会在测试期间达到提供商的限制。在编写依赖数十个订阅的测试之前,请检查计划的 WebSocket 策略。

陷阱 3:不监控速率限制标头

许多提供商在 HTTP 响应标头中包含速率限制信息。如果你忽略它们,你将不知道即将被限制。向你的测试客户端添加日志记录以捕获这些标头。

陷阱 4:假设 devnet 和 mainnet 行为相同

Devnet 可能具有与 mainnet 不同的验证器版本或拥塞级别。如果你的测试结果不一致,请检查问题是否是特定于网络的,而不是代码中的错误。

如何随着测试的增长扩展你的计划

随着项目的成熟,你的测试需求会发生变化。以下是一个典型的进展:

  1. 从免费层级开始,在 devnet 上验证你的应用的基本功能。
  2. 升级到付费共享计划,当你需要更高的速率限制或 mainnet 访问以进行集成测试时。
  3. 考虑专用节点,当你运行负载测试或需要一致的性能进行基准测试时。

专用节点让你完全控制 RPC 端点,并消除其他用户的争用。如果你需要测试自定义配置或运行自己的索引器,它也很有用。OnFinality 提供 专用节点,你可以为 Solana 配置,并且可以通过与共享 RPC 端点相同的仪表板进行管理。

升级时,请先查看你的实际使用指标。如果你只使用了当前计划配额的 10%,更大的计划可能为时过早。但如果你在常规测试期间遇到速率限制,那么是时候升级了。

关键要点

  • 将你的订阅计划与测试阶段匹配:原型设计使用免费层级,集成测试使用付费共享,负载测试使用专用。
  • 在订阅之前检查 devnet 访问、WebSocket 限制和存档数据可用性。
  • 使用提供商的试用期对你的应用使用的方法和连接类型进行结构化测试。
  • 监控你的使用情况和速率限制标头,以避免意外的限制。
  • 根据实际指标扩展你的计划,而不是猜测。

常见问题解答

我可以免费测试 Solana 应用吗?

是的,大多数提供商提供免费层级,包括对 devnet 的访问。OnFinality 提供公共的 Solana devnet 端点,你可以在没有付费计划的情况下用于测试。查看 Solana devnet 页面 了解详情。

对于测试,devnet 和 mainnet 有什么区别?

Devnet 是一个公共测试集群,你可以从水龙头获得免费的 SOL。它非常适合功能测试。Mainnet 使用真实的 SOL,并反映生产条件。大多数测试使用 devnet,但对于需要真实世界状态的集成测试,请切换到 mainnet。

我需要专用节点进行测试吗?

通常不需要。共享计划足以满足大多数测试。你可能需要专用节点进行负载测试,或者如果你需要一致性能而不受其他用户干扰。OnFinality 提供 专用节点,你可以在需要时启动。

我如何知道计划的速率限制是否足够?

估计测试期间的峰值请求速率。如果你每秒发出数百个请求,你将需要更高层级的计划。大多数提供商公布其 RPS 限制,你可以使用脚本测试是否收到 429 错误。

WebSocket 连接是否单独计数?

一些提供商将 WebSocket 连接计入计划的连接限制,而其他提供商则有单独的配额。请查看提供商的文档以了解 WebSocket 使用如何计费。

如果我的测试需求发生变化,我可以轻松切换计划吗?

大多数提供商允许你随时升级或降级计划。OnFinality 允许你从仪表板管理订阅,因此你可以随着测试的发展进行调整。查看 RPC 定价 页面了解当前计划选项。

有关 Solana RPC 提供商比较的更广泛了解,请参阅我们的 Solana RPC 提供商比较。如果你稍后评估提供商用于生产,我们的 选择 RPC 提供商指南 涵盖了其他标准,如正常运行时间和支持。

RPC 知识库

相关 RPC 内容

RPC 提供商选择

如何评估 Alchemy 作为 Web3 项目的 RPC 提供商

本文提供了一个结构化框架,用于评估 Alchemy 作为 RPC 提供商,涵盖功能集、定价模型、性能考虑和开发者体验等关键标准。它帮助开发者和基础设施采购者通过将 Alchemy 的产品与常见生产需求进行比较,做出明智的决策。...

区块链基础设施

Dedicated vs Shared Nodes: Performance Insights for Developers

Choosing between dedicated and shared RPC nodes impacts latency, rate limits, and reliability. Dedicated nodes provide exclusive resources, predictabl...

RPC 提供商选择TON

TON RPC Provider Comparison: What to Check Before Going to Production

Choosing the right TON RPC provider is critical for dApps, Telegram Mini Apps, and payment flows. This guide breaks down the key evaluation criteria—l...

RPC 提供商选择Solana

您能推荐提供增强型NFT数据API的Solana RPC服务吗?

是的。对于Solana NFT数据,您需要超越标准JSON-RPC并提供专门用于元数据、压缩NFT(cNFT)和资产索引的端点的RPC服务。本文介绍了需要关注的内容,比较了提供商的能力,并展示了如何为您的NFT市场、钱包或分析应用评估它们。...

RPC 提供商选择Efinity

无限Solana RPC节点:它意味着什么,何时需要?

无限Solana RPC节点移除了按请求的速率限制,让您的应用可以扩展而不会遇到请求上限。本文解释了无限访问的实际含义、如何评估提供商,以及何时专用节点是生产工作负载的正确选择。...

网络 RPCSolana

Solana 端点:如何为生产应用连接 Solana RPC

Solana 端点是您的 dApp 或后端用于向 Solana 网络发送 JSON-RPC 请求的 URL。选择合适的端点会影响延迟、可靠性以及您的应用在负载下的扩展能力。本指南解释了什么是 Solana 端点、如何配置端点,以及如何评估生产环境中的提供商。...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始