摘要
Solana Devnet 是一个公共测试集群,用于构建和测试 Solana 程序,而无需冒真实资金的风险。其官方公共 RPC 端点是 https://api.devnet.solana.com,但公共端点有速率限制且为共享资源,因此严肃的开发通常使用像 OnFinality 这样的托管 RPC 提供商,以获得更高的限制和可靠性。本文解释了端点、如何连接、常见陷阱以及何时迁移到专用端点。
快速解答:Solana Devnet RPC 端点
官方公共 Solana Devnet RPC 端点是 https://api.devnet.solana.com。它由 Solana Labs 运营,免费使用,但有速率限制且所有开发者共享。对于更重的测试,您可以使用像 OnFinality 这样的托管 RPC 提供商,它提供具有更高吞吐量和可靠性的专用 Solana Devnet 端点。
Solana Devnet 是一个公共测试集群,您可以在其中部署程序、运行交易并测试您的 dApp,而无需花费真实的 SOL。它的行为类似于主网,但可以从水龙头获取免费的 SOL。这使其成为开发和集成测试的标准环境。
决策指南:何时使用公共端点与托管提供商
在开始编码之前,请决定哪个端点适合您的工作流程:
- 快速实验和简单脚本:公共端点
https://api.devnet.solana.com适用于偶尔的请求。您可以了解 RPC API 并测试基本调用。 - 活跃开发和集成测试:如果您正在构建 dApp、运行自动化测试或发出大量请求,公共速率限制可能会限制您。像 OnFinality 这样的托管 RPC 提供商提供更高的速率限制、专用吞吐量和更好的可靠性。
- 生产级负载测试:如果您需要模拟真实用户流量或测试性能,请使用专用端点。公共端点不适合持续负载。
如果您不确定,请先从公共端点开始进行原型设计,然后在测试要求更高时迁移到托管提供商。OnFinality 提供 Solana Devnet RPC 和灵活的计划,您可以查看 RPC 定价 了解详情。
Solana 集群概览
Solana 有三个主要集群,每个都有不同的用途:
| 集群 | 端点 | 用途 |
|---|---|---|
| 主网 | https://api.mainnet.solana.com | 实时生产环境 |
| Devnet | https://api.devnet.solana.com | 公共测试,提供免费 SOL |
| 测试网 | https://api.testnet.solana.com | 压力测试网络升级 |
Devnet 是应用程序开发中最常用的,因为它可公开访问且有水龙头。测试网更侧重于验证器性能和网络升级。
连接到 Solana Devnet
您可以使用 Solana CLI、JavaScript 库或直接 JSON-RPC 调用来连接 Solana Devnet。以下是常见方式。
使用 Solana CLI
将您的 CLI 设置为使用 Devnet:
solana config set --url https://api.devnet.solana.com
然后您可以检查配置:
solana config get
您应该看到 RPC URL 设置为 https://api.devnet.solana.com。
使用 @solana/web3.js
在 Node.js 或浏览器环境中,您可以创建连接:
import { Connection, clusterApiUrl } from '@solana/web3.js';
const connection = new Connection('https://api.devnet.solana.com', 'confirmed');
// 或使用辅助函数:
// const connection = new Connection(clusterApiUrl('devnet'), 'confirmed');
// 示例:获取当前 slot
const slot = await connection.getSlot();
console.log('当前 slot:', slot);
直接 JSON-RPC 调用
您还可以发出原始 HTTP 请求:
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getSlot"
}
'
这将返回当前 slot 编号,确认连接。
从 Devnet 水龙头获取免费 SOL
为了支付 Devnet 上的交易费用和租金,您需要 Devnet SOL。您可以从官方水龙头 https://faucet.solana.com 获取,或使用 CLI:
solana airdrop 1
这将向您配置的密钥对空投 1 个 SOL。请注意,水龙头有速率限制,因此如果您需要大量 SOL,请分小量请求或等待请求间隔。
常见陷阱及调试方法
在使用 Solana Devnet 时,您可能会遇到几个问题。以下是常见症状和修复方法:
| 症状 | 可能原因 | 修复 |
|---|---|---|
429 Too Many Requests | 超出公共端点速率限制 | 使用托管 RPC 提供商或降低请求频率 |
Transaction simulation failed | 程序错误或资金不足 | 检查错误日志,确保您有 Devnet SOL,并验证程序逻辑 |
Blockhash not found | 交易太旧或网络拥塞 | 使用新的 blockhash 重试或增加超时时间 |
Connection refused | 网络问题或端点宕机 | 检查您的互联网,重试,或使用备用端点 |
使用日志调试
当交易失败时,使用 CLI 获取更多详细信息:
solana confirm -v <transaction-signature>
这将显示交易状态和日志,其中通常包含具体错误。
何时迁移到托管 RPC 提供商
随着项目的增长,公共 Devnet 端点可能成为瓶颈。以下是您需要托管提供商的迹象:
- 您经常遇到速率限制。
- 由于限流,您的测试变慢。
- 您需要 WebSocket 订阅以获取实时数据。
- 您希望为 CI/CD 管道提供更高的可靠性和正常运行时间。
OnFinality 提供 Solana Devnet RPC 和专用端点、更高的速率限制以及 WebSocket 支持。您还可以探索 所有支持的网络,查看您使用的其他链是否涵盖。
关键要点
- 官方 Solana Devnet RPC 端点是
https://api.devnet.solana.com。 - Devnet 用于使用免费 SOL 进行测试,而主网用于生产。
- 公共端点有速率限制;对于严肃的开发,请考虑使用托管提供商。
- 使用 Solana CLI、
@solana/web3.js或直接 JSON-RPC 进行连接。 - 从水龙头获取免费 SOL 以支付交易费用。
- 使用正确的工具调试常见问题,如速率限制和交易失败。
常见问题解答
Solana Devnet RPC URL 是什么?
官方公共 URL 是 https://api.devnet.solana.com。像 OnFinality 这样的托管提供商提供自己的端点,具有更高的限制。
Solana Devnet 免费使用吗?
是的,公共端点免费,您可以从水龙头获取免费的 Devnet SOL。但是,存在速率限制。
我可以在 Solana Devnet 上使用 WebSocket 吗?
公共端点支持 WebSocket,地址为 wss://api.devnet.solana.com。托管提供商可能提供更可靠的 WebSocket 连接。
如何获取 Devnet SOL?
使用官方水龙头 https://faucet.solana.com 或 solana airdrop 命令。
Devnet 和 Testnet 有什么区别?
Devnet 用于应用程序开发和测试,而 Testnet 用于压力测试网络本身。Devnet 更适合大多数开发者。