摘要
Solana deadnet 是社区对已弃用或无法正常运行的 Solana 网络环境的称呼,常与 devnet 或 testnet 混淆。本文阐明了 deadnet 的含义、它与活跃集群的区别,以及如何为开发和测试选择可靠的 RPC 端点。
快速建议:你应该使用哪个 Solana 集群?
如果你在搜索 Solana 开发资源时遇到“deadnet”这个词,首先要知道 deadnet 并不是官方的 Solana 集群。它是社区对不再维护、已关闭或仅用于测试的不可靠网络环境的标签。当你需要一个稳定的环境来构建和测试时,你应该使用 Solana devnet 或 testnet。
对于大多数开发工作流,Solana devnet 是正确的选择。它是公开可访问的,有免费的 SOL 水龙头,并且专为开发者测试程序和 dApp 而设计。如果你正在对网络升级或验证器性能进行压力测试,testnet 更合适。对于生产应用程序,你需要 mainnet。
要快速开始,你可以使用来自 OnFinality 等提供商的公共 RPC 端点。例如,OnFinality 的 Solana mainnet 公共端点是 https://solana.api.onfinality.io/public。对于 devnet,你可以在 Solana Devnet 网络页面 找到端点。
“deadnet”到底是什么意思?
“deadnet”一词并非官方的 Solana 术语。它出现在社区讨论中,有时也出现在代码注释中,用来描述不再运行的网络。这可能指的是:
- 已被新测试网取代的弃用测试网。
- 已关闭的本地验证器。
- 已停止或不再维护的公共 RPC 端点。
由于 Solana 有多个集群——mainnet、testnet 和 devnet——每个集群都有不同的用途,当端点停止工作时,可能会产生混淆。当开发者遇到无响应的 RPC URL 时,他们可能会称之为“deadnet”。
Solana 集群一览
Solana 运行着几个不同的集群,每个都有特定的角色。下表总结了主要区别:
| 集群 | 用途 | 端点示例 | 备注 |
|---|---|---|---|
| Mainnet | 实时生产环境 | https://api.mainnet.solana.com | 交易需要 SOL |
| Testnet | 压力测试网络升级 | https://api.testnet.solana.com | 专注于验证器性能 |
| Devnet | 开发者测试和实验 | https://api.devnet.solana.com | 提供公共水龙头 |
| Deadnet(非正式) | 已弃用或无法运行的环境 | 不适用 | 避免用于开发 |
请注意,像 api.mainnet.solana.com 这样的公共端点有速率限制,可能不适合生产工作负载。为了可靠访问,请考虑使用专用的 RPC 提供商。
为什么“deadnet”会出现在搜索结果中
当你搜索“deadnet solana”时,你可能会看到关于 Solana 从 FTX 崩溃中恢复的结果,有些人开玩笑说 Solana“已死”。那是不同的上下文。在技术讨论中,“deadnet”通常指的是不再活跃的网络。
例如,Solana 多年来有多个测试网。当一个测试网退役时,它的端点停止工作。尝试使用这些旧端点的开发者可能会称之为“deadnet”。这就是为什么始终检查官方 Solana 文档以获取当前活跃集群列表很重要的原因。
如何连接到可靠的 Solana RPC 端点
为了避免死端点的烦恼,你应该使用信誉良好的 RPC 提供商。OnFinality 为 Solana mainnet 和 devnet 提供公共和专用端点。例如,OnFinality 的 Solana mainnet 公共端点是 https://solana.api.onfinality.io/public。对于 devnet,你可以在 Solana Devnet 网络页面 找到端点。
以下是使用 Solana JavaScript API 连接到 Solana devnet 的快速示例:
import { Connection } from '@solana/web3.js';
const connection = new Connection('https://api.devnet.solana.com', 'confirmed');
async function getBalance(pubkey) {
const balance = await connection.getBalance(pubkey);
console.log(`Balance: ${balance / 1e9} SOL`);
}
使用 Solana 测试网络时的常见陷阱
在使用 Solana devnet 或 testnet 时,开发者经常会遇到几个常见问题:
- 使用弃用的端点:像
https://api.testnet.solana.com这样的旧端点可能不再活跃。始终从官方来源验证当前端点。 - 忽略速率限制:公共端点有速率限制,可能导致节流。对于大量测试,请考虑使用专用的 RPC 提供商。
- 混淆集群:Devnet 和 testnet 用途不同。使用错误的集群可能导致令人困惑的行为。
- 水龙头问题:Devnet 水龙头可能不可靠。如果你无法获得测试 SOL,请尝试其他水龙头或从社区水龙头请求。
如何为 Solana 选择 RPC 提供商
在选择 Solana 的 RPC 提供商时,请考虑以下标准:
| 标准 | 检查什么 | 为什么重要 |
|---|---|---|
| 网络覆盖 | 提供商是否支持 mainnet、devnet 和 testnet? | 你可能需要多个环境用于开发和测试。 |
| 速率限制 | 免费和付费层的请求限制是多少? | 高流量应用需要更高的限制。 |
| WebSocket 支持 | 提供商是否提供 WebSocket 端点? | 实时订阅需要。 |
| 可靠性 | 提供商的正常运行时间历史如何? | 停机可能会破坏你的应用程序。 |
| 支持 | 是否有响应迅速的技术支持? | 有助于快速解决问题。 |
OnFinality 为 Solana 提供公共和专用端点,支持 HTTP 和 WebSocket。你可以查看 RPC 定价 和 支持的 RPC 网络 了解更多详情。
调试无响应的端点
如果你遇到无响应的端点,这里有一个调试路径:
- 检查端点 URL:确保你使用了正确的 URL 来连接你打算连接的集群。
- 用简单的请求测试:使用像
curl这样的工具发送基本的 JSON-RPC 请求。
curl -X POST https://api.devnet.solana.com -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}'
- 检查网络连接:验证你的机器是否可以到达端点(例如,
ping或traceroute)。 - 检查速率限制:如果你收到 429 响应,你可能遇到了速率限制。考虑使用专用提供商。
- 检查提供商状态:如果你使用第三方提供商,请检查其状态页面以了解中断情况。
关键要点
- Deadnet 不是官方的 Solana 集群;它是社区对已弃用或无法运行的网络的术语。
- 对于大多数开发测试,使用 devnet,对于压力测试,使用 testnet,对于生产,使用 mainnet。
- 始终从官方来源验证当前端点,以避免死端点。
- 考虑使用像 OnFinality 这样的可靠 RPC 提供商,以获得一致的访问和支持。
- 系统地调试无响应的端点,通过检查 URL、连接性、速率限制和提供商状态。
常见问题解答
什么是 Solana deadnet?
Solana deadnet 是对已弃用或无法运行的 Solana 网络环境的非正式称呼,常与 devnet 或 testnet 混淆。它不是官方集群。
deadnet 和 devnet 一样吗?
不。Devnet 是一个活跃的、公开可访问的测试网络,带有水龙头,而 deadnet 指的是不再运行的网络。
如何避免 deadnet 端点?
始终使用来自官方 Solana 文档或信誉良好的 RPC 提供商的当前端点。在依赖端点之前,检查提供商状态页面并验证连接。