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

如何连接 Solana devnet API 进行测试?

摘要

Solana devnet 是一个公共测试集群,开发者可以在其中部署和测试程序、运行交易以及验证客户端逻辑,而无需冒真实资金的风险。连接到可靠的 devnet RPC API 是构建和调试 Solana 应用程序的第一步。

本指南将说明如何为 devnet 配置 Solana 工具、从水龙头获取测试 SOL,以及选择符合您开发工作流程的 RPC 端点。无论您使用的是 Solana CLI、web3.js 还是自定义后端,都可以在这里找到实用的设置步骤和故障排除技巧。

快速建议:应该使用哪个 devnet 端点?

对于大多数开发工作,公共 Solana devnet 端点 https://api.devnet.solana.com 足以入门。它由 Solana 基金会运营,是 Solana CLI 和 web3.js 的默认端点。然而,公共端点在测试高峰期可能会变得拥堵,并且由许多开发者共享。如果您正在运行集成测试、负载测试或持续集成管道,您可能需要一个更可靠的端点。

OnFinality 提供了一个托管的 Solana devnet RPC 端点,您可以将其与现有工具一起使用。它专为需要一致性能和比典型公共端点更高速率限制的开发者而设计。您可以在 Solana Devnet 网络页面 找到端点详细信息。对于生产环境的主网工作负载,请参阅 Solana 主网 RPC 选项。

决策指南:

  • 只是试验? 使用公共 devnet 端点或提供商的免费层。
  • 构建需要可靠正常运行时间的 dApp 或机器人? 考虑使用像 OnFinality 这样的托管 RPC 服务,以避免速率限制和停机。
  • 运行验证器或需要完全控制? 您可以运行自己的 devnet 节点,但这会增加运营开销。

什么是 Solana devnet API?

Solana devnet 是一个模拟主网环境的测试集群。它运行相同的软件并使用相同的 JSON-RPC API,但使用没有真实价值的测试代币(devnet SOL)。开发者使用 devnet API 来:

  • 部署和测试 Solana 程序(智能合约)
  • 发送交易并测试钱包集成
  • 验证客户端逻辑和错误处理
  • 运行自动化测试而无需花费真实的 SOL

该 API 基于 JSON-RPC,类似于以太坊的 JSON-RPC,但具有 Solana 特定的方法。您可以使用 Solana CLI、web3.js 或任何可以发送 JSON-RPC 请求的 HTTP 客户端与之交互。

Solana devnet 链设置一览

设置值
网络名称Solana Devnet
集群Devnet
默认 RPC URLhttps://api.devnet.solana.com
OnFinality RPC URL参见 Solana Devnet 网络页面
WebSocket URLwss://api.devnet.solana.com/
链 ID不适用(Solana 使用不同的寻址方案)
原生代币SOL (devnet)
代币小数位9
浏览器https://explorer.solana.com/?cluster=devnet
水龙头https://faucet.solana.com

注意:Solana 不像 EVM 链那样使用链 ID。相反,您在配置中指定集群(devnet、testnet、mainnet-beta)。

为 devnet 设置 Solana CLI

如果您使用 Solana CLI,可以通过一条命令切换到 devnet:

solana config set --url https://api.devnet.solana.com

要验证配置,请运行:

solana config get

您应该看到 RPC URL 设置为 devnet 端点。现在您可以创建钱包并获取测试 SOL:

solana-keygen new --outfile ~/.config/solana/devnet.json
solana config set --keypair ~/.config/solana/devnet.json
solana airdrop 1

solana airdrop 命令从水龙头请求 devnet SOL。如果您需要更多,可以使用 Solana 水龙头 或使用 solana airdrop 命令请求更大的数量(受速率限制)。

使用 web3.js 连接

对于 JavaScript 开发者,@solana/web3.js 库是与 Solana 交互的标准方式。以下是一个连接到 devnet 并检查余额的基本示例:

import { Connection, LAMPORTS_PER_SOL, PublicKey } from '@solana/web3.js';

// 使用公共 devnet 端点或您的 OnFinality 端点
const connection = new Connection('https://api.devnet.solana.com', 'confirmed');

// 替换为您的 devnet 钱包地址
const address = new PublicKey('YOUR_DEVNET_WALLET_ADDRESS');

const balance = await connection.getBalance(address);
console.log(`Balance: ${balance / LAMPORTS_PER_SOL} SOL`);

如果您使用自定义 RPC 提供商,请将 URL 替换为 OnFinality 提供的 URL。对于 WebSocket 支持,您可以使用 wss:// 端点进行订阅。

直接使用 JSON-RPC API

您还可以使用原始 JSON-RPC 请求与 Solana devnet API 交互。这对于调试或没有原生 SDK 的语言很有用。以下是一个使用 curl 获取最新区块哈希的示例:

curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getLatestBlockhash"
  }
'

响应将包含一个 blockhash,您可以使用它来构建交易。有关方法的完整列表,请参阅 Solana RPC 文档。

从 devnet 水龙头获取测试 SOL

要测试交易,您需要 devnet SOL。官方水龙头位于 https://faucet.solana.com。您可以通过输入钱包地址来请求 SOL。也有社区水龙头,但请谨慎使用,只使用可信来源。

如果您使用 CLI,solana airdrop 命令很方便,但它有速率限制。对于自动化测试,请考虑一次性请求较大数量并重复使用该钱包。

常见的 devnet API 问题及调试方法

即使使用可靠的端点,您也可能会遇到问题。以下是常见问题及其修复方法:

症状可能原因修复
429 Too Many Requests公共端点上的速率限制使用托管 RPC 提供商或降低请求频率
Transaction simulation failed无效交易或资金不足检查您的钱包余额和交易指令
Blockhash not found交易太旧使用新的区块哈希重试
Connection refused端点关闭或无法访问检查您的网络连接并尝试其他端点
Unauthorized需要 API 密钥如果使用私有端点,请确保您的 API 密钥正确

要进行更深入的调试,您可以在 Solana CLI 中启用 RPC 日志记录:

solana config set --url https://api.devnet.solana.com -v

-v 标志启用详细输出,显示 JSON-RPC 请求和响应。

在公共和托管 devnet RPC 之间选择

公共端点是免费的且易于使用,但它们有局限性:

  • 速率限制:公共端点通常限制每秒请求数,如果您进行大量调用,可能会中断您的测试。
  • 正常运行时间:它们可能会因维护而停机或过载。
  • 无支持:如果您遇到问题,没有人可以联系。

像 OnFinality 这样的托管 RPC 提供商提供:

  • 更高的速率限制:适用于负载测试和 CI/CD 管道。
  • 更好的正常运行时间:冗余基础设施降低了停机风险。
  • 支持:如果您遇到问题,可以从提供商处获得帮助。

对于生产主网应用程序,几乎总是建议使用托管 RPC。对于 devnet,这取决于您的需求。如果您只是学习,公共端点就足够了。如果您正在构建严肃的项目,请考虑使用托管服务以避免意外。

如何从 devnet 切换到主网

当您准备好部署到主网时,您需要更改 RPC 端点并使用真实的 SOL。过程类似:

  1. 更新您的 CLI 配置以指向主网端点:solana config set --url https://api.mainnet-beta.solana.com
  2. 将您的 web3.js 连接 URL 更新为主网端点。
  3. 确保您的钱包有真实的 SOL 用于交易费用。

如果您使用 OnFinality,您可以在 devnet 和主网上使用相同的 API 密钥,但您需要在仪表板中切换网络。有关详细信息,请参阅 Solana 主网网络页面。

关键要点

  • Solana devnet API 是一个免费的测试环境,镜像主网功能。
  • 对于简单测试,使用公共端点 https://api.devnet.solana.com,但考虑使用托管 RPC 以获得可靠的性能。
  • 使用 devnet URL 配置您的 CLI 和 web3.js 以开始构建。
  • 从水龙头获取测试 SOL 以为您的交易提供资金。
  • 使用上述提示调试常见问题,如速率限制和交易失败。
  • 当迁移到生产环境时,切换到主网端点并使用真实的 SOL。

常见问题解答

Solana devnet 和 testnet 有什么区别?

Solana 有多个测试集群。Devnet 是主要的开发环境,开发者在此部署和测试程序。Testnet 用于验证器测试和网络升级。Devnet 更稳定,是大多数开发者的推荐选择。

我可以在 devnet 和主网上使用相同的 API 密钥吗?

是的,使用 OnFinality,您可以在不同网络中使用相同的 API 密钥,但您需要在请求中指定网络或使用特定于网络的端点。有关详细信息,请查看 网络文档。

如果水龙头受到速率限制,如何获取更多 devnet SOL?

您可以稍后重试,或使用其他水龙头。一些社区水龙头提供更大的数量,但请谨慎分享您的私钥。

devnet API 与主网 API 相同吗?

是的,JSON-RPC 方法是相同的。唯一的区别是网络状态和代币的价值。这使得通过更改端点 URL 即可轻松在 devnet 和主网之间切换。

公共 devnet 端点的速率限制是多少?

确切的限制未公布,并且可能会更改。如果您遇到速率限制,请考虑使用像 OnFinality 这样的托管 RPC 提供商,它提供更高的限制和更好的可靠性。

有关 RPC 定价和支持网络的更多信息,请访问 RPC 定价页面 和 支持的网络页面。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

具有企业级支持的 Solana RPC 提供商:评估要点

为生产工作负载选择 Solana RPC 提供商时,需要评估的不仅仅是原始吞吐量。企业级支持意味着拥有明确的 SLA、专用容量和响应迅速的升级路径。本文概述了关键标准——从端点可靠性到故障转移策略——并解释了如何针对您的特定用例评估提供商。...

RPC 提供商选择Solana

如何评估用于生产环境的地理分布式 Solana RPC 服务?

地理分布式 Solana RPC 之所以重要,是因为 Solana 的时隙时间和确认窗口很短,因此用户、后端和验证者集合之间的物理距离直接决定了交易上链的速度。单区域端点可能在仪表板上看起来没问题,但其他大洲的用户却要承受延迟。 本文解释了如何评估地理分布式 Solana RPC 服务:需要测量什么...

测试网 RPCEthereumSolanaBNB Chain

开发者应如何选择测试网 RPC 端点?

# 开发者应如何选择测试网 RPC 端点? 测试网 RPC 之所以重要,是因为多链测试网应用依赖稳定的端点访问来进行读取、交易、仪表盘和后端工作流。合适的提供商应匹配你的工作负载,支持你所需的网络和测试网,使限制透明可见,并在共享 RPC 不再足够时提供扩展路径。 对于开发者、QA 团队、协议团队和...

RPC 提供商选择Solana

你能推荐一个针对特定工作负载提供增强 API 的 Solana RPC 提供商吗?

可以。OnFinality 提供支持 HTTP 和 WebSocket 的 Solana RPC 端点,并为需要更可预测容量的团队提供专用节点选项。Solana 上的增强 API 访问通常不仅仅意味着基本的 JSON-RPC 端点:它包括 WebSocket 订阅、支持归档的历史查询,以及在不与整个...

RPC 提供商选择Mantle

Mantle RPC 提供商评估:生产部署的关键标准

为生产环境选择 Mantle RPC 提供商需要评估可靠性、延迟、存档数据支持和定价。本文介绍了开发人员应了解的基本标准和决策清单。...

RPC 提供商选择Solana

你能从限流和吞吐量的角度比较 Solana RPC 提供商吗?

可以。Solana RPC 提供商的主要区别在于它们如何计量请求(按秒 vs 按方法 vs 按计算单元)、允许的突发余量,以及当共享限制成为障碍时,你是否可以迁移到专用节点。本文详细介绍了你会遇到的限流模型,并为你提供了一种在做出承诺之前进行比较的实用方法。 你将获得一个比较表格、常见 Solana...

永远不用担心基础设施

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

开始