Solana 开发工具链

核心工具概览

Solana CLI

命令行工具,用于与 Solana 网络交互:

bash
# 安装 sh -c "$(curl -sSfL https://release.solana.com/stable/install)" # 配置网络 solana config set --url devnet # 创建钱包 solana-keygen new # 查看余额 solana balance # 空投测试币(仅限 devnet/testnet) solana airdrop 2

Anchor 框架

Anchor 是 Solana 上最流行的开发框架,它显著降低了开发复杂度:

bash
# 安装 cargo install --git https://github.com/coral-xyz/anchor anchor-cli # 创建项目 anchor init my_project # 构建 anchor build # 测试 anchor test # 部署 anchor deploy

Anchor 提供:

  • 更简洁的程序代码结构
  • 自动生成的 IDL(接口定义)
  • 内置的账户验证和序列化
  • TypeScript 客户端生成

本地开发环境

bash
# 启动本地验证器 solana-test-validator # 在另一个终端部署和测试 anchor test --skip-local-validator

开发语言选择

程序开发:Rust

Solana 程序通常用 Rust 编写。如果你来自 JavaScript/Python 背景,Rust 的学习曲线可能比较陡峭,但 Anchor 框架已经抽象了很多底层复杂性。

rust
use anchor_lang::prelude::*; declare_id!("YourProgramIdHere..."); #[program] pub mod my_program { use super::*; pub fn initialize(ctx: Context<Initialize>, data: u64) -> Result<()> { let my_account = &mut ctx.accounts.my_account; my_account.data = data; Ok(()) } } #[derive(Accounts)] pub struct Initialize<'info> { #[account(init, payer = user, space = 8 + 8)] pub my_account: Account<'info, MyAccount>, #[account(mut)] pub user: Signer<'info>, pub system_program: Program<'info, System>, } #[account] pub struct MyAccount { pub data: u64, }

前端/脚本:TypeScript

与 Solana 交互的客户端代码通常用 TypeScript 编写:

typescript
import { Connection, PublicKey, clusterApiUrl } from '@solana/web3.js'; import { Program, AnchorProvider } from '@coral-xyz/anchor'; // 连接到网络 const connection = new Connection(clusterApiUrl('devnet')); // 使用 Anchor 生成的客户端 const program = new Program(idl, programId, provider); // 调用程序 await program.methods .initialize(new BN(42)) .accounts({ myAccount: myAccountKeypair.publicKey, user: wallet.publicKey, systemProgram: SystemProgram.programId, }) .signers([myAccountKeypair]) .rpc();

网络环境

Solana 有三个主要网络:

Mainnet Beta

  • 生产环境,真实资产
  • 需要真实 SOL 支付交易费
  • URL: https://api.mainnet-beta.solana.com

Devnet

  • 开发测试环境
  • 可以免费获取测试 SOL
  • 定期重置
  • URL: https://api.devnet.solana.com

Testnet

  • 压力测试环境
  • 用于测试网络性能
  • URL: https://api.testnet.solana.com

本地验证器

  • 完全本地运行
  • 最快的开发迭代
  • URL: http://localhost:8899
TSPlayground
EDITOR ACTIVE
Initializing TS Environment...

Solana 开发工具箱

Available Commands
Wallet Status
No wallet found
user@local:~$
Welcome to Solana CLI Simulator
Type a command or click the buttons below.