1. 环境安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| sudo apt-get update && sudo apt upgrade -y
sudo apt-get install -y \ build-essential \ pkg-config \ libudev-dev llvm libclang-dev \ protobuf-compiler libssl-dev
curl --proto '=https' --tlsv1.2 -sSfL https://solana-install.solana.workers.dev | bash
rustc --version && solana --version && anchor --version && node --version && yarn --version
|
2. Solana CLI 基础
2.1 网络配置
查看当前配置
切换网络
1 2 3 4
| solana config set --url mainnet-beta solana config set --url devnet solana config set --url testnet solana config set --url localhost
|
2.2 钱包管理
创建钱包
1 2 3 4 5 6 7 8
| solana-keygen new
solana-keygen new --outfile ~/.config/solana/wallet.json
solana-keygen recover --outfile ~/.config/solana/wallet.json --force
|
配置钱包
1 2 3 4 5 6 7 8
| solana config set --keypair ~/.config/solana/wallet.json
solana address
solana-keygen pubkey ~/.config/solana/wallet.json
|
2.3 账户操作
余额和转账
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| solana balance
solana balance <ADDRESS>
solana airdrop 2
solana transfer <RECIPIENT_ADDRESS> <AMOUNT>
solana transfer <RECIPIENT_ADDRESS> <AMOUNT> --with-memo "转账备注"
|
账户信息查询
1 2 3 4 5 6 7 8 9
| solana account <ADDRESS>
solana account <ADDRESS> --output json
solana rent 16
|
2.4 交易和日志
交易操作
1 2 3 4 5 6 7 8
| solana transaction <SIGNATURE>
solana confirm <SIGNATURE>
solana transaction-history <ADDRESS> --limit 10
|
日志监控
1 2 3 4 5
| solana logs <PROGRAM_ID>
solana logs --all
|
2.5 网络和验证节点
网络信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| solana cluster-version
solana cluster-date
solana block-production
solana block-height
solana validators
|
2.6 本地测试链
启动和管理
1 2 3 4 5 6 7 8 9 10 11
| solana-test-validator
solana-test-validator --detach
solana-test-validator --reset
solana-test-validator --rpc-port 8899 --ws-port 8900
|
预加载程序和账户
1 2 3 4 5
| solana-test-validator --clone <ACCOUNT_ADDRESS>
solana-test-validator --bpf-program <PROGRAM_ID> <PROGRAM_PATH>
|
2.7 智能合约操作
程序部署
1 2 3 4 5 6 7 8
| solana program deploy <PROGRAM_FILE.so>
solana program deploy <PROGRAM_FILE.so> --program-id <PROGRAM_KEYPAIR>
solana program deploy <NEW_PROGRAM_FILE.so> --program-id <EXISTING_PROGRAM_ID>
|
程序管理
1 2 3 4 5 6 7 8 9 10 11
| solana program show <PROGRAM_ID>
solana program dump <PROGRAM_ID> <OUTPUT_FILE>
solana program close <PROGRAM_ID>
solana program set-upgrade-authority <PROGRAM_ID> --new-upgrade-authority <NEW_AUTHORITY>
|
3. Anchor 基础
3.1 项目管理
创建项目
1 2 3 4 5
| anchor init <project-name>
anchor init <project-name> --template multiple
|
项目结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| project-name/ ├── Anchor.toml # Anchor 项目配置文件,包含程序 ID、网络配置、项目名称等 ├── Cargo.toml # Rust 项目依赖配置文件,用于智能合约编译 ├── app # 前端应用目录,存放与 Solana 交互的前端代码 ├── migrations # 部署脚本目录 │ └── deploy.ts # 部署合约到指定网络的 TypeScript 脚本 ├── package.json # JavaScript/TypeScript 项目依赖和脚本配置 ├── programs # 智能合约代码目录 │ └── firewords # 具体智能合约子目录 ├── target # Rust 编译输出目录 │ └── deploy # 编译后的程序文件,用于部署 ├── tests # 测试文件目录 │ └── firewords.ts # 针对 firewords 合约的测试脚本 ├── tsconfig.json # TypeScript 编译配置 └── yarn.lock # 锁定 JavaScript/TypeScript 依赖版本,确保一致性
|
3.2 开发流程
编译、部署和测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| anchor build
anchor deploy
anchor test
anchor test --skip-build
anchor test --grep "test_name"
|
密钥管理
1 2 3 4 5
| anchor keys list
anchor keys sync
|
Hooray!Solana 开发环境准备就绪!!!