Solana 开发入门:devnet、mainnet、faucet,以及一开始就要知道的事

开始 Solana 开发的实操指南。devnet vs mainnet、怎么拿测试 SOL、要先配什么、新开发者常踩的坑。

BoltTx Team··9 min read
solanadevnetmainnetfaucet教程新手

刚做 Solana 开发的话,第一个小时大部分是在配环境——装工具、拿钱包、拿测试 SOL、挑 RPC。都不难,但顺序和选择有讲究——一开始的几个决定,能省后面不少头疼。

这是给从没在 Solana 上部署过的人的实操入门。我们会讲 devnet 跟 mainnet 的区别、怎么拿测试 SOL、要装什么工具链、把"能跑的配置"和"脆弱的配置"分开的初始模式。

Devnet vs Mainnet vs Testnet

Solana 有三个生产网络:

Devnet——你的测试场地。测试 SOL 免费;链状态可以重置;这里没真钱。开发用这个。

Testnet——主要给 validator 测协议升级用。大部分应用开发者不直接碰它。

Mainnet-beta——真网络。真 SOL、真交易、真后果。准备好了再上。

任何 Solana 项目的流程都是:devnet 上开发,稳了之后部署到 mainnet-beta。devnet 之外没有约定俗成的"staging"环境——大多数团队就是在 devnet 上测试,然后用生产级基础设施直接上 mainnet-beta。

Devnet 拿免费 SOL

Devnet 有几个 faucet 给你发免费测试 SOL。两个主要的:

Solana CLI faucet:

solana airdrop 2 <YOUR_PUBKEY> --url devnet

给你 devnet 上 2 SOL。有限流(不能 spam)。

Web faucet:

Solana Foundation 在 faucet.solana.com 跑了个 web 版的 faucet。CLI 限你了的话用这个。

要知道几件事:

装工具链

Solana 开发最少要装的:

Solana CLI:

sh -c "$(curl -sSfL https://release.solana.com/stable/install)"

包含 solanasolana-keygen,以及一堆从命令行跟网络交互的工具。

Rust(写程序的话):

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Solana 程序是用 Rust 写的。

Anchor(写程序推荐):

cargo install --git https://github.com/coral-xyz/anchor anchor-cli

Anchor 是简化 Solana 程序开发的框架,带宏、账户验证、IDL 生成。

Node.js / Bun(客户端用):

# Bun 快;你工具链支持就用
curl -fsSL https://bun.sh/install | bash

给前端或后端跟 Solana 交互的客户端代码用。

创建钱包

Solana CLI 生成钱包:

solana-keygen new --outfile ~/.config/solana/id.json

这会创建一个 keypair 文件。保密——拿到这个文件的人就控制了这个钱包。开发期间放硬盘上没问题;生产 key 用硬件钱包或 KMS。

设成默认:

solana config set --keypair ~/.config/solana/id.json
solana config set --url devnet

验证:

solana balance
solana airdrop 2

挑 RPC

Devnet:solana config set --url devnet 用的是 Solana 公共 devnet RPC,开发够用。

Mainnet:除了最初测试外别用公共 RPC。它有限流、还落后。从一家服务商拿一个 RPC URL:

solana config set --url https://your-rpc-provider.example/?api-key=...

应用代码里通过环境变量配 RPC URL:

const connection = new Connection(
  process.env.SOLANA_RPC_URL,
  "confirmed"
);

常见模式:读和写分开用不同的 RPC URL。读 RPC 给查询用,写 RPC 给 sendTransaction 用。完整模式看 Solana RPC 开发者指南

你的第一笔交易

经典的第一件事:

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

const connection = new Connection("https://api.devnet.solana.com", "confirmed");

const sender = Keypair.generate();
const recipient = Keypair.generate();

await connection.requestAirdrop(sender.publicKey, 2 * LAMPORTS_PER_SOL);
await new Promise(r => setTimeout(r, 3000));

const tx = new Transaction().add(
  SystemProgram.transfer({
    fromPubkey: sender.publicKey,
    toPubkey: recipient.publicKey,
    lamports: 0.1 * LAMPORTS_PER_SOL,
  })
);

const signature = await sendAndConfirmTransaction(connection, tx, [sender]);
console.log("交易签名:", signature);

跑完这个,你就发出了第一笔 Solana 交易。

新手常踩的坑

新 Solana 开发者经常会咬到的:

搞混 devnet 和 mainnet RPC URL。 URL 错了,交易就发到错的网络上。永远验证。

硬编码私钥。 别 commit id.json 到 git。即使是 devnet,也要养这习惯。

忽略 recentBlockhash 预构建的交易要新 blockhash。sendAndConfirmTransaction 这个封装会处理;手动构建就要自己设。

忘了 compute budget。 默认 CU 预算 200_000。很多真交易要更多。显式设。

生产里把 clusterApiUrl 当生产级用。 它是公共 RPC。教程行,真负载没用。

不处理错误。 Devnet 大多数情况下挺干净。Mainnet 更乱。早点搭错误处理。

提交不确认。 sendTransaction 返回签名不代表上链了。永远确认。

2026 年还在用 web3.js v1。 v2 更高效但 API 有变化。新项目值得学 v2。

先搭什么

新人推荐的进度:

  1. 发个基础转账。 端到端把 round-trip 跑通。
  2. 创建并使用一个 SPL token。 学 SPL token 程序。
  3. 跟现有程序交互。 挑个简单的——Raydium 上 swap、Marinade 上 stake——从客户端代码调它。
  4. 用 Anchor 写个小程序。 计数器、token 托管,最小的那种。
  5. 把你的程序部署到 devnet。 端到端测一遍。
  6. 搭个连你程序的前端。 钱包集成、基础 UI。

别第一天就想搭下一个 pump.fun。范围别炸,先把基础跑通。

Mainnet 部署的考虑

准备从 devnet 上 mainnet 时:

审你的代码。 Devnet 的 bug 是免费的;mainnet 的 bug 花的是用户的钱。

用生产级 RPC。 公共 mainnet RPC 不够用。

配 Anti-MEV 三明治被夹保护路由。 mainnet 上,哪怕只是最基础的 swap 功能,没保护就会被夹。

给拥堵做规划。 拥堵下的网络行为 devnet 测不出来——devnet 通常不拥堵。重试逻辑和 priority fee 策略要按真实拥堵条件来设。

搭监控。 每笔签名级别的遥测、错误跟踪、性能监控。别在没可观测性的情况下部 mainnet。

有 kill switch。 不用重新部署就能禁掉危险功能的方式。

这周可以做什么

要开始你第一个 Solana 项目:

  1. 装工具链。 Solana CLI、写程序的话加 Rust、客户端用 Node/Bun。
  2. 创建开发钱包。 Faucet 拿测试 SOL。
  3. 发第一笔转账。 端到端 devnet round-trip。
  4. 挑一家上 mainnet 时用的 RPC 服务商。 用免费档先测。
  5. 认真读 Solana 文档。 写得不错;很多开发者跳过了。
  6. 挑个小起步项目。 别第一天就奔完整产品去。

上 mainnet 时试一下 BoltTx

准备部署的时候:

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

const connection = new Connection(
  "https://bolttx.io/?api-key=YOUR_API_KEY",
  "processed"
);

免费档注册——只在交易上链时收费。任何生产 Solana 应用写侧的扎实选择。

常见问题

Solana 开发免费吗? Devnet 免费(faucet SOL 没真值)。Mainnet 有小笔交易费,但没有前期成本。

开发要自己跑 Solana validator 吗? 不用。用托管 RPC。自托管是给生产规模用的,不是开发。

不学 Rust 能部署程序吗? Solana 程序是 Rust。要写程序就绕不开 Rust。客户端代码任意语言都行。

Anchor 跟原生 Rust 写 Solana 程序有什么区别? Anchor 是个加了账户验证宏和其他开发者友好功能的框架。大多数现代程序用 Anchor。

Solana 对新手难吗? 比以太坊工具链难一些,部分原因是 Rust 要求。比以太坊的经济模型和 gas 问题简单。打平;看你背景。

延伸阅读

返回博客列表