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 内容

网络 RPCOptimism

Optimism Nodes: Public, Managed, or Self-Hosted?

Optimism nodes are the software clients that let you read and write data on OP Mainnet, the leading Ethereum Layer 2. You can run your own node for fu...

RPC 提供商选择Solana

Solana RPC 提供商对比:您应该关注什么?

选择 Solana RPC 提供商意味着要根据您的应用需求权衡吞吐量、可靠性、数据访问和成本。本对比聚焦于区分公共、共享和专用 Solana RPC 服务的关键技术和运营因素,帮助您根据对生产工作负载真正重要的标准来评估提供商。...

RPC 提供商选择Nodle Testing Parachain

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

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

网络 RPCPolygon

Polygon RPC 列表:面向开发者的主网和 Amoy 测试网端点

查找 Polygon 主网和 Amoy 测试网的官方 RPC 端点,包括 HTTPS 和 WebSocket URL。了解如何根据应用需求在公共、托管和专用 RPC 提供商之间进行选择,并获取钱包和开发者的配置示例。...

区块链基础设施Efinity

什么是TON全节点,何时应该运行一个?

TON全节点存储完整的区块链状态并验证The Open Network的交易。运行一个全节点可以让您直接访问TON数据,无需中间人,但需要大量的硬件、存储和持续的维护。本文解释了TON全节点的功能、运行与租用基础设施的权衡,以及如何决定哪种方法适合您的项目。...

测试网 RPCEthereumSolanaBNB Chain

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

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

永远不用担心基础设施

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

开始