摘要
了解如何连接到 Solana Devnet RPC 端点、从水龙头获取测试 SOL 并调试常见问题。本指南涵盖链设置、请求示例以及如何在开发中选择公共和专用 RPC 基础设施。
快速决策指南:应该使用哪个 Solana Devnet RPC?
在开始基于 Solana Devnet 构建之前,决定如何连接。你的选择会影响可靠性、速率限制以及你需要管理的基础设施量。
- 公共 RPC 端点(如官方 Solana 公共端点)适用于快速测试和简单脚本,但它们是共享的,在负载下可能会受到速率限制或不稳定。
- 托管 RPC 服务(如 OnFinality)提供专用或共享端点,具有更好的可靠性、更高的吞吐量以及对 WebSocket 订阅的支持。它们非常适合需要一致访问的开发团队。
- 运行自己的验证器/RPC 节点 可以完全控制,但需要硬件、维护和持续监控。对于 devnet 来说通常是大材小用,除非你在测试验证器行为。
对于大多数开发工作,托管 RPC 端点是正确的平衡。OnFinality 提供了一个 Solana Devnet RPC 端点,你可以在开发期间免费使用。如果你需要专用容量或更高的速率限制,请查看我们的 RPC 定价 和 支持的网络。
什么是 Solana Devnet?
Solana Devnet 是一个测试网环境,模拟 Solana 主网,但使用没有真实价值的测试代币(devnet SOL)。开发者使用它来部署和测试程序(智能合约)、练习客户端集成以及验证交易流程,而无需冒真实资金的风险。
Devnet 与 Solana Testnet 不同。Testnet 用于全网测试,可能会频繁重置。Devnet 更稳定,是应用程序开发的推荐环境。
Solana Devnet 链设置
以下是配置钱包或 dApp 所需的关键参数:
| 设置 | 值 |
|---|---|
| 网络名称 | Solana Devnet |
| RPC URL | https://api.devnet.solana.com(公共)或你的托管提供商的 URL |
| WebSocket URL | wss://api.devnet.solana.com/(公共)或你的托管提供商的 WS URL |
| 链 ID | devnet |
| 原生货币 | SOL(测试) |
| 小数位数 | 9 |
| 浏览器 | https://explorer.solana.com/?cluster=devnet |
注意:公共端点有速率限制,不建议用于生产或大量测试。为了获得更可靠的 devnet RPC,请考虑使用像 OnFinality 这样的托管服务。你可以在我们的 Solana Devnet 网络页面 上找到官方的 OnFinality 公共端点。
从水龙头获取测试 SOL
要与 devnet 交互,你需要 devnet SOL。官方水龙头位于 https://faucet.solana.com。你也可以使用 Solana CLI:
solana airdrop 1 <YOUR_WALLET_ADDRESS> --url https://api.devnet.solana.com
如果由于速率限制导致空投失败,请等待几分钟后重试。某些水龙头要求最低余额或有每日上限。
连接到 Solana Devnet RPC:代码示例
使用 Solana Web3.js(JavaScript)
import { Connection, clusterApiUrl } from '@solana/web3.js';
// 使用公共 devnet 端点或你的托管提供商的 URL
const endpoint = 'https://api.devnet.solana.com';
const connection = new Connection(endpoint, 'confirmed');
async function getBalance(publicKey) {
const balance = await connection.getBalance(publicKey);
console.log('Balance:', balance / 1e9, 'SOL');
}
使用 curl 和 JSON-RPC
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": ["<YOUR_PUBLIC_KEY>"]
}
'
钱包配置(Phantom、Solflare 等)
在大多数钱包中,你可以添加自定义 RPC 端点:
- 网络:Devnet
- RPC URL:
https://api.devnet.solana.com(或你的托管端点) - 链 ID:
devnet
Solana Devnet 常用 RPC 方法
以下是最常用的 JSON-RPC 方法:
getBalance– 获取账户的 SOL 余额getRecentBlockhash– 获取用于交易签名的最新区块哈希sendTransaction– 提交已签名的交易getTransaction– 获取交易详情getSignaturesForAddress– 列出地址的交易签名getAccountInfo– 获取账户数据getProgramAccounts– 获取程序拥有的账户
调试常见的 devnet RPC 问题
1. 速率限制(HTTP 429)
公共端点经常在超过请求限制时返回 429。解决方案:
- 为请求添加指数退避。
- 使用具有更高速率限制的托管 RPC 提供商。
- 尽可能缓存响应。
2. 交易模拟错误
如果 sendTransaction 失败,请先模拟:
const simulation = await connection.simulateTransaction(transaction);
console.log(simulation.value.err);
常见错误包括余额不足、账户无效或区块哈希错误。
3. WebSocket 断开连接
WebSocket 连接可能会断开。实现带有指数退避的重连逻辑。
4. 找不到区块哈希
如果收到“blockhash not found”错误,说明区块哈希已过期。获取新的区块哈希并重新构建交易。
用于 devnet 的公共 RPC 与托管 RPC
| 特性 | 公共 RPC | 托管 RPC(例如 OnFinality) |
|---|---|---|
| 速率限制 | 低,共享 | 更高,可配置 |
| 可靠性 | 不稳定 | 一致 |
| WebSocket 支持 | 有限 | 完全支持 |
| 设置时间 | 即时 | 最少 |
| 成本 | 免费 | 提供免费套餐;更高使用量付费 |
| 支持 | 社区 | 专门支持 |
对于开发,托管 RPC 可以节省时间并减少摩擦。OnFinality 提供了一个 Solana Devnet 端点,你可以立即使用。如果你需要专用容量,请探索我们的 专用节点 选项。
关键要点
- Solana Devnet 是用于构建和测试 Solana 应用程序的稳定测试环境。
- 使用官方公共端点进行快速测试,但要注意速率限制。
- 像 OnFinality 这样的托管 RPC 服务为开发提供更好的可靠性和支持。
- 始终使用最新的区块哈希并模拟交易以避免错误。
- 监控你的 RPC 使用情况,并选择符合你开发需求的计划。
常见问题解答
Solana Devnet 和 Testnet 有什么区别?
Devnet 是用于应用程序开发的稳定测试环境,而 Testnet 用于网络级测试,可能会频繁重置。
如何在 devnet 上获取免费 SOL?
使用官方水龙头 https://faucet.solana.com 或 solana airdrop CLI 命令。
我可以将同一个 RPC 端点用于主网和 devnet 吗?
不可以,它们是具有不同端点的独立网络。确保你的应用程序使用正确的端点。
devnet SOL 有价值吗?
没有,devnet SOL 没有真实价值,仅用于测试。
如何在 devnet 的公共 RPC 和托管 RPC 之间选择?
如果你正在进行严肃的开发,像 OnFinality 这样的托管 RPC 提供更好的可靠性和速率限制。对于快速实验,公共端点就足够了。
OnFinality 的 Solana Devnet 公共端点是什么?
你可以在我们的 Solana Devnet 网络页面 上找到官方公共端点。我们建议在生产开发中使用托管端点。