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

如何连接到 Solana Devnet RPC 端点

摘要

Solana Devnet 是一个测试网,供开发者在不冒真实资金风险的情况下构建和测试 Solana 程序。本页说明如何连接到 Solana Devnet RPC 端点、从水龙头获取 SOL,以及调试常见问题。它还涵盖了如何为你的 devnet 测试选择公共或专用 RPC 基础设施。

快速建议:你应该使用哪个 Solana Devnet RPC?

如果你正在快速编写脚本或测试钱包集成,公共 devnet RPC 端点通常就足够了。公共端点免费且无需注册,但它们被许多用户共享,在高峰时段可能会受到速率限制或变慢。

如果你正在运行持续集成管道、对 dApp 进行负载测试,或构建需要稳定吞吐量的验证器或索引器,请考虑使用专用 RPC 节点。专用节点为你提供私有端点,具有可预测的性能且没有嘈杂的邻居。OnFinality 为 Solana Devnet 提供共享公共端点和专用节点。查看 Solana Devnet 网络页面 了解当前的可用性和选项。

对于大多数开发工作流程,从公共端点开始,当遇到速率限制或需要更高可靠性时切换到专用节点。本文解释了链设置、如何获取测试 SOL,以及如何调试常见问题。

什么是 Solana Devnet?

Solana Devnet 是一个测试网环境,模拟 Solana 主网,但使用没有真实价值的测试代币。它旨在让开发者部署和测试 Solana 程序(智能合约)和客户端应用程序,而无需冒真实 SOL 的风险。

Devnet 不同于 Solana Testnet,后者用于全网测试,并且可能频繁重置。Devnet 更稳定,是应用程序开发的推荐环境。它运行相同的验证器软件,并支持与主网相同的 RPC 方法,因此在 devnet 上运行的代码应该只需很少的更改即可在主网上运行。

链设置一览

以下是连接到 Solana Devnet 的关键详细信息:

设置值
网络名称Solana Devnet
RPC 端点https://api.devnet.solana.com(公共)
WebSocket 端点wss://api.devnet.solana.com/(公共)
链 ID不适用(Solana 使用不同的模型)
原生货币SOL(测试代币)
小数位数9
浏览器https://explorer.solana.com/?cluster=devnet

注意:公共端点 https://api.devnet.solana.com 由 Solana Labs 运营,是大多数工具的默认端点。OnFinality 也为 Solana Devnet 提供公共端点,你可以在 Solana Devnet 网络页面 上找到。当你使用托管提供商时,通常会获得更可靠的连接以及分析、专用支持等附加功能。

从水龙头获取测试 SOL

要与 Solana Devnet 交互,你需要测试 SOL 来支付交易费用和租金。你可以从官方 Solana 水龙头获取测试 SOL,网址为 https://faucet.solana.com。

  1. 连接你的钱包(例如 Phantom、Solflare)或粘贴你的钱包地址。
  2. 如果需要,完成验证码。
  3. 请求 SOL。水龙头通常发送少量 SOL,你可以在冷却期后再次请求。

如果水龙头资金不足或无法使用,你也可以在 Solana Discord 的 #devnet-faucet 频道中请求 SOL,或使用第三方水龙头。一些 RPC 提供商也提供水龙头作为其服务的一部分。

使用常见工具连接到 Solana Devnet

使用 Solana CLI

Solana CLI 是与网络交互的最常见方式。将集群设置为 devnet 并配置你的密钥对:

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

要创建新的密钥对并空投测试 SOL:

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

使用 web3.js

对于 JavaScript 应用程序,使用 @solana/web3.js:

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

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

// 或使用来自提供商的自定义 RPC 端点
// const connection = new Connection('https://your-provider-endpoint', 'confirmed');

async function getBalance(pubkey) {
  const balance = await connection.getBalance(pubkey);
  console.log(`Balance: ${balance / 1e9} SOL`);
}

使用钱包

大多数 Solana 钱包(Phantom、Solflare、Backpack)允许你在设置中切换到 Devnet。在 Phantom 中,转到“设置”>“开发者设置”>“更改网络”,然后选择“Devnet”。钱包将自动使用公共 devnet 端点。

调试常见的 Solana Devnet RPC 问题

1. 公共端点上的速率限制

像 api.devnet.solana.com 这样的公共端点是共享的,可能会限制请求速率,尤其是在高流量时期。如果你看到 HTTP 429 错误或超时,请考虑:

  • 降低请求频率
  • 使用专用 RPC 节点
  • 使用指数退避实现重试逻辑

2. 交易模拟失败

当交易失败时,你通常会收到 Transaction simulation failed 错误。使用 simulateTransaction RPC 方法获取更多详细信息:

curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "simulateTransaction",
    "params": [
      "<base58-encoded-transaction>",
      {
        "encoding": "base58",
        "replaceRecentBlockhash": true
      }
    ]
  }
'

响应将包含一个 logs 数组,显示程序日志和错误消息。常见问题包括资金不足、账户数据无效或程序错误。

3. 找不到区块哈希

如果你收到 Blockhash not found 错误,则表示你使用的最近区块哈希已过期。在发送交易之前获取新的区块哈希:

const { blockhash } = await connection.getLatestBlockhash('confirmed');
const transaction = new Transaction().recentBlockhash = blockhash;

4. WebSocket 断开连接

WebSocket 连接可能因网络问题或服务器重启而断开。在客户端中实现重新连接逻辑:

function connectWebSocket(url) {
  const ws = new WebSocket(url);
  ws.onclose = () => {
    console.log('WebSocket closed, reconnecting...');
    setTimeout(() => connectWebSocket(url), 1000);
  };
  return ws;
}

用于 devnet 的公共 RPC 与专用 RPC

当你搜索“rpc solana devnet”时,你会找到公共和商业 RPC 端点。以下比较可帮助你决定:

特性公共端点(例如 api.devnet.solana.com)专用 RPC(例如 OnFinality)
成本免费付费(参见 定价)
速率限制有,通常严格更高限制或无限制
性能共享,可变专用,一致
可靠性可能宕机或缓慢托管,具有正常运行时间监控
支持仅社区提供商支持
附加功能无分析、WebSocket、存档数据

对于生产级 dApp,你绝不会依赖公共 devnet 端点。但对于开发,公共端点就足够了,直到你需要更多。如果你正在构建严肃的项目,请考虑使用像 OnFinality 这样的提供商提供的专用节点,以避免意外。

如何选择 Solana Devnet RPC 提供商

如果你决定使用商业 RPC 提供商,请根据以下标准进行评估:

  • 网络覆盖:提供商是否支持 Solana Devnet?并非所有提供商都支持。查看 支持的网络 列表。
  • 性能:寻找低延迟和高吞吐量的提供商。一些提供商提供专用节点,为你提供私有端点。
  • 可靠性:检查提供商的正常运行时间历史以及他们是否提供 SLA。避免做出不切实际保证的提供商。
  • 功能:你是否需要 WebSocket 支持、存档数据或特定的 RPC 方法?一些提供商提供增强的 API。
  • 定价:比较定价模型。有些按请求收费,有些按节点收费。查看 RPC 定价 了解 OnFinality 的模型。

OnFinality 是一个不错的选择,因为它支持 Solana Devnet,并提供共享和专用节点。你可以从免费公共端点开始,并根据需要升级。

关键要点

  • Solana Devnet 是一个测试网,供开发者在不使用真实资金的情况下构建和测试 Solana 程序。
  • 默认的公共 RPC 端点是 https://api.devnet.solana.com,但可能会受到速率限制。
  • 从官方水龙头或社区渠道获取测试 SOL。
  • 使用 Solana CLI、web3.js 或钱包连接到 Devnet。
  • 调试常见问题,如速率限制、模拟失败和区块哈希错误。
  • 对于严肃的开发,请考虑使用像 OnFinality 这样的提供商提供的专用 RPC 节点,以获得更好的性能和可靠性。

常见问题解答

Solana Devnet 和 Testnet 有什么区别?

Solana Devnet 是用于应用程序开发的稳定测试网,而 Testnet 用于网络级测试,并且可能频繁重置。Devnet 是大多数开发者的推荐选择。

如何在 Solana Devnet 上获取 SOL?

你可以从官方水龙头 https://faucet.solana.com 或社区水龙头获取测试 SOL。你也可以在 Solana Discord 中请求 SOL。

我可以在 Devnet 上使用与主网相同的 RPC 方法吗?

可以,Solana Devnet 支持与主网相同的 JSON-RPC 方法,因此你可以无需更改即可测试代码。

公共 Solana Devnet RPC 有速率限制吗?

有,公共端点有速率限制以防止滥用。如果你需要更高的限制,请考虑使用专用 RPC 节点。

OnFinality 支持 Solana Devnet 吗?

支持,OnFinality 支持 Solana Devnet。访问 Solana Devnet 网络页面 了解更多详情并获取端点。

RPC 知识库

相关 RPC 内容

网络 RPCAbstract

Abstract RPC Endpoint: What You Need to Connect to Abstract

Abstract is an Ethereum Layer 2 network built with zkSync technology. To connect your dApp or wallet to Abstract, you need an RPC endpoint address. Th...

RPC 提供商选择Ethereum

如何评估用于性能监控的以太坊 RPC 服务

选择用于性能监控的以太坊 RPC 服务,需要超越单纯的吞吐量。你需要一致的延迟、可靠的 WebSocket 连接,以及访问 debug 或 trace 方法以诊断问题。本文概述了需要跟踪的关键指标、重要的方法,以及如何构建一个能在用户发现问题之前捕获问题的监控设置。...

网络 RPCSolana

我应该为 Solana 使用什么 RPC URL?

Solana RPC URL 是您的应用发送 JSON-RPC 调用以读取账户、提交交易和订阅链上事件的 HTTP 或 WebSocket 端点。OnFinality 在 https://solana.api.onfinality.io/public 公开了一个 Solana 端点,并在 wss:/...

网络 RPCAvalanche

Base Network RPC:如何连接以及应使用哪个端点?

Base 是基于 OP Stack 构建的以太坊 Layer 2,因此其 RPC 接口与以太坊工具链兼容 JSON-RPC。您只需将客户端指向链 ID 为 8453 的 Base 端点即可连接,大多数以太坊库几乎无需修改或只需少量修改即可使用。主要决策在于选择哪个端点、如何处理速率限制,以及如何在流...

RPC 提供商选择Polkadot

如何为生产环境 dApps 选择 Polkadot RPC 提供商

为生产环境 dApps、平行链和跨链服务选择合适的 Polkadot RPC 提供商至关重要。您需要评估端点的可靠性、存档数据支持、延迟和定价,以匹配您的工作负载。OnFinality 提供可扩展的 Polkadot RPC 端点,支持存档和追踪,提供专用节点选项和透明定价,帮助您高效构建和扩展。...

网络 RPCOptimism

Optimism 端点:链设置、连接和调试

Optimism 端点是 JSON-RPC URL,可让您的 dApp 或后端在 OP Mainnet 或 OP Sepolia 上读写数据。本文涵盖确切的链设置、如何通过 curl 或 ethers.js 连接,以及如何调试常见的端点故障。...

永远不用担心基础设施

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

开始