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

什么是 Solana Devnet 地址以及如何使用?

摘要

Solana Devnet 地址是 Solana Devnet 集群上的公钥,这是一个测试网络,模拟主网行为但不使用真实的 SOL。您可以使用它来空投测试 SOL、部署程序并在发布到主网之前运行交易。地址格式与主网完全相同,因此唯一变化的是您的工具所指向的 RPC 端点。

本文解释了 Devnet 地址与主网地址的区别、如何生成和资助一个地址、如何配置钱包和 RPC 客户端,以及如何调试当 Devnet 地址未获得资金或指向错误集群时出现的错误。

Solana Devnet 地址是存在于 Solana Devnet 集群而非主网上的公钥。它看起来与主网地址完全相同——一个 base58 字符串,例如 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin——但它仅持有测试 SOL,并且仅针对 Devnet RPC 节点进行解析。开发者使用 Devnet 地址来部署程序、模拟交易和运行集成测试,而无需花费真实资金。

如果您已经了解主网地址的工作原理,那么心智模型很简单:相同的密钥格式、相同的 JSON-RPC 方法、不同的集群。困惑通常始于钱包、CLI 或 SDK 在您期望 Devnet 时静默指向主网,或者当地址没有测试 SOL 且每笔交易都失败时。本页将引导您生成地址、为其提供资金、将其接入您的工具,并修复随之而来的错误。

快速推荐:哪种 Devnet 设置适合您的工作流程?

在复制端点之前,请确定您实际要测试的内容。正确的 Devnet 地址设置取决于您是需要一次性密钥对、持久资助账户,还是团队的共享环境。

您的情况推荐方法原因
一次性脚本或教程在代码中生成新密钥对,空投少量资金,用后丢弃无需密钥管理开销
本地应用开发持久密钥对文件加上配置中的 Devnet RPC 端点可重复使用的余额,稳定的程序 ID
CI 或自动化测试每次运行使用临时密钥对,通过水龙头或预资助账户提供资金可重现,无共享状态
团队预发布环境专用或共享的 Devnet RPC 端点,并记录配置跨机器行为一致
主网上线前演练Devnet 地址加上主网风格的承诺设置更接近生产语义

如果您要从公共端点迁移到更稳定的端点以进行重复测试运行,OnFinality 的 Solana Devnet RPC 是一个选择,您可以在 RPC 定价页面 上比较计划。

Devnet 地址与主网地址有何不同

地址本身没有不同。Solana 使用 Ed25519 密钥对,公钥就是每个集群上的地址。变化的是您的客户端所通信的集群以及该集群所持有的状态。

  • 集群身份。 Devnet 是一个独立的账本。在 Devnet 上部署的程序在主网上不存在,即使地址匹配。
  • 代币价值。 Devnet SOL 没有市场价值。它的存在是为了让您在测试期间支付交易费用和租金。
  • 状态重置。 Devnet 可能会重置或出现不稳定。不要将 Devnet 状态视为永久存储。
  • 程序可用性。 一些主网程序未在 Devnet 上部署,而一些仅限 Devnet 的程序不在主网上。

这就是为什么在一个项目中完美运行的 Devnet 地址在另一个项目中可能显示为“空”:第二个项目正在查询不同的集群。

生成 Solana Devnet 地址

您可以使用 Solana CLI、JavaScript 或在钱包中创建地址。密钥对与集群无关;您通过将客户端指向 Devnet 端点来选择 Devnet。

使用 Solana CLI

# 创建一个新的密钥对文件
solana-keygen new --outfile ~/.config/solana/devnet.json

# 将 CLI 指向 Devnet
solana config set --url https://api.devnet.solana.com

# 显示地址
solana-keygen pubkey ~/.config/solana/devnet.json

使用 JavaScript

import { Keypair, Connection, LAMPORTS_PER_SOL } from "@solana/web3.js";

const keypair = Keypair.generate();
const address = keypair.publicKey.toBase58();
console.log("Devnet address:", address);

// 将连接指向 Devnet RPC 端点
const connection = new Connection("https://api.devnet.solana.com", "confirmed");
const balance = await connection.getBalance(keypair.publicKey);
console.log("Balance in lamports:", balance);

请注意,除了端点 URL 之外,代码从未提及“Devnet”。地址只是一个公钥;端点决定它针对哪个集群进行解析。

为 Devnet 地址提供资金

新的 Devnet 地址没有 SOL,因此无法支付费用或创建账户。您可以通过空投为其提供资金,这是 Devnet 相当于水龙头的机制。

# 向您的 Devnet 地址请求 2 SOL
solana airdrop 2

# 检查余额
solana balance

在 JavaScript 中:

const signature = await connection.requestAirdrop(
  keypair.publicKey,
  2 * LAMPORTS_PER_SOL
);
await connection.confirmTransaction(signature, "confirmed");

空投限制由集群强制执行,并且可能会变化。如果请求失败,请等待并重试,或使用提供 Devnet 水龙头的钱包。对于更繁重或重复的测试,托管 Devnet 端点可以减少公共速率限制的摩擦——请参阅 Solana Devnet RPC 选项。

为 Devnet 配置钱包和客户端

大多数 Devnet 问题都是配置问题。每当地址行为异常时,请检查以下三个地方。

工具需要更改的内容常见错误
Solana CLIsolana config set --url <devnet endpoint>保留默认主网 URL
web3.js / AnchorConnection 端点和 AnchorProvider 集群在共享配置中硬编码主网端点
浏览器钱包网络选择器设置为 Devnet钱包在主网上而应用期望 Devnet
.env 文件RPC_URL 和 CLUSTER 变量从另一个项目复制过时的端点
程序部署--url devnet 标志意外部署到主网

一个有用的习惯是在启动时记录集群。获取创世哈希并将其与已知的 Devnet 值进行比较,可以立即告诉您所在的集群。

const genesisHash = await connection.getGenesisHash();
console.log("Cluster genesis hash:", genesisHash);

调试常见的 Devnet 地址错误

当 Devnet 地址“不工作”时,症状通常指向特定原因。将消息与修复方法匹配。

症状可能原因修复
Account not found地址从未获得资金或集群错误空投测试 SOL;验证端点
Insufficient funds for rent余额过低无法创建账户为地址提供更多 SOL
Blockhash not found端点滞后或集群不匹配重试;确认您在 Devnet 上
429 Too Many Requests公共端点速率限制退避、批量调用或使用托管端点
交易在本地成功,在 CI 中失败不同的 RPC 端点或未资助的密钥对标准化端点并预资助测试密钥
找不到程序 ID程序部署在不同的集群上重新部署到 Devnet

如果您反复看到速率限制或连接错误,问题通常是端点而不是地址。专用或共享的 RPC 服务可以为您提供稳定的 Devnet 目标;如果您的测试套件频繁运行,OnFinality 的 API 服务 和 专用节点 选项值得考虑。

Devnet 与主网与测试网

Solana 有多个非生产集群,混淆它们是常见的困惑来源。

集群目的典型用途
主网具有真实 SOL 的生产账本实时应用
Devnet带有水龙头的主要测试集群应用开发、程序部署
测试网独立的测试集群,通常用于验证者和网络测试协议级测试

对于大多数应用开发者来说,Devnet 是正确的默认选择。当您测试验证者行为或网络级更改时,更常使用测试网。如果您需要主网风格的端点进行比较,请参阅 Solana RPC。

发布到主网前的操作检查清单

Devnet 地址是排练,不是保证。在迁移到主网之前,请确认以下内容:

  1. 程序已部署到主网,地址与您的应用期望的一致。
  2. 密钥管理是生产级的。 切勿将 Devnet 密钥对重用于主网资金。
  3. 端点是环境驱动的,而非硬编码,以便您可以安全地切换集群。
  4. 承诺级别与您的风险承受能力匹配。 confirmed 和 finalized 在负载下表现不同。
  5. 错误处理涵盖速率限制和超时,因为公共端点可能会限流。
  6. 监控已到位,用于余额、交易成功率和 RPC 延迟。

如果您不想为生产运行自己的 Solana 节点,OnFinality 在 许多支持的网络 上提供 RPC API 和专用节点基础设施,包括 Solana 和 Solana Devnet。

关键要点

  • Solana Devnet 地址是普通的 Ed25519 公钥;集群由 RPC 端点决定,而不是地址格式。
  • 使用 Solana CLI 或 web3.js 生成地址,然后在发送交易前通过 Devnet 空投为其提供资金。
  • 大多数“地址损坏”问题实际上是集群不匹配、未资助账户或公共端点速率限制。
  • 在启动时记录创世哈希以确认您的客户端使用的集群。
  • 对于重复或团队测试,托管 Devnet 端点减少了公共水龙头和速率限制的摩擦。

常见问题

Solana Devnet 地址与主网地址不同吗?

不。地址格式相同。不同之处在于您的 RPC 客户端连接的集群以及该集群持有的状态。Devnet 地址持有测试 SOL,并且仅针对 Devnet 节点进行解析。

如何将测试 SOL 获取到 Devnet 地址?

使用 Solana CLI solana airdrop、web3.js requestAirdrop 方法或支持 Devnet 水龙头的钱包。空投限制由集群设置,并且可能会随时间变化。

为什么我的 Devnet 地址显示零余额?

要么它从未获得资金,要么您的客户端指向不同的集群。确认端点并检查创世哈希,然后请求空投。

我可以在 Devnet 和主网上使用相同的密钥对吗?

技术上可以,但您不应将 Devnet 密钥对重用于主网资金。将 Devnet 密钥视为一次性使用,并为生产使用单独的、安全管理的密钥。

我应该为 Devnet 使用什么 RPC 端点?

您可以从公共 Devnet 端点开始进行轻量测试。对于重复运行、CI 或团队环境,托管 Devnet RPC 服务(如 OnFinality 的 Solana Devnet RPC)为您提供更稳定的目标。在 RPC 定价页面 上比较选项。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

2025年Solana验证者最佳API有哪些?

验证者需要用于监控、质押和RPC访问的API。本指南将介绍关键的API类别、评估标准,以及如何为您的验证者运营选择合适的基础设施。...

测试网 RPCAleph Zero

Hyperliquid 测试网:RPC 端点、水龙头和链设置

Hyperliquid 为其交易层(HyperCore)和 EVM(HyperEVM)都提供了公共测试网。如果你搜索了“hyperliquid testnet”,你很可能需要以下三项之一:用于连接钱包或应用的测试网 RPC 端点、来自水龙头的测试网 HYPE 或模拟 USDC,或者 HyperEVM...

网络 RPCPolkadotAsset Hub

Polkadot 迁移:开发者需要了解的中继链到资产中心过渡

# Polkadot 迁移:开发者需要了解的中继链到资产中心过渡 Polkadot 正在进行一次重大的架构调整:将核心功能——余额、质押和治理——从中继链迁移到资产中心系统平行链。此次过渡于 2025 年 11 月 4 日执行,旨在减少中继链膨胀、实现更快的升级,并为 JAM(Join-Accumu...

网络 RPCPolygon

Polymarket API:CLOB、Gamma 及其背后的链上图层

Polymarket API 并不是一个单一的端点。它是一组 HTTP 和 WebSocket 接口,构建在部署于 Polygon 上的预测市场之上。开发者通常接触两个层面:市场数据层(Gamma 风格的 REST 端点,用于事件、市场和元数据)和交易层(CLOB API,用于订单簿、订单、交易和经...

区块链基础设施

什么是 dOrg,它是如何运作的?

dOrg 是一个去中心化自治组织(DAO),由资深 Web3 开发者和构建者组成。它为协议、DeFi 项目和机构提供区块链和 AI 开发服务,作为团队扩展或按里程碑付费的承包商,而非传统代理机构。 对于评估 dOrg 的开发者来说,了解其结构、合作模式以及它与内部招聘或其他服务提供商的比较是关键。本...

网络 RPC

关于RPC端点,我需要了解什么?

# 关于RPC端点,我需要了解什么? RPC端点至关重要,因为Web3应用程序依赖于稳定的端点访问来进行读取、交易、仪表盘和后端工作流。正确的设置应匹配您的工作负载,支持您所需的网络和测试网,使限制可见,并在共享RPC不再足够时为您提供扩展路径。 对于通用Web3构建者、基础设施负责人、DeFi团队...

永远不用担心基础设施

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

开始