核心工具概览
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 框架已经抽象了很多底层复杂性。
rustuse 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 编写:
typescriptimport { 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