刚做 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 限你了的话用这个。
要知道几件事:
- Devnet SOL 没有任何币值
- Faucet 偶尔会被限流或暂时挂掉
- 开发期间多备点测试 SOL,别老去 faucet
- 别在 devnet 钱包里存重要东西——它本质上是个公开的测试钱包
装工具链
Solana 开发最少要装的:
Solana CLI:
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
包含 solana、solana-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。
先搭什么
新人推荐的进度:
- 发个基础转账。 端到端把 round-trip 跑通。
- 创建并使用一个 SPL token。 学 SPL token 程序。
- 跟现有程序交互。 挑个简单的——Raydium 上 swap、Marinade 上 stake——从客户端代码调它。
- 用 Anchor 写个小程序。 计数器、token 托管,最小的那种。
- 把你的程序部署到 devnet。 端到端测一遍。
- 搭个连你程序的前端。 钱包集成、基础 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 项目:
- 装工具链。 Solana CLI、写程序的话加 Rust、客户端用 Node/Bun。
- 创建开发钱包。 Faucet 拿测试 SOL。
- 发第一笔转账。 端到端 devnet round-trip。
- 挑一家上 mainnet 时用的 RPC 服务商。 用免费档先测。
- 认真读 Solana 文档。 写得不错;很多开发者跳过了。
- 挑个小起步项目。 别第一天就奔完整产品去。
上 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 问题简单。打平;看你背景。