Solana 学习计划 – 第一阶段:基础知识
目录
1. 区块链基础概念
1.1 什么是区块链?
区块链是一个分布式账本,记录着网络中所有交易历史。它的核心特性:
| 去中心化 | 数据存储在网络中的多个节点,无单一控制方 |
| 不可篡改 | 一旦数据写入区块,就无法更改 |
| 透明可追溯 | 所有交易公开可查,可追溯历史 |
| 共识机制 | 通过算法确保所有节点数据一致 |
1.2 区块结构
区块链 = 多个区块串联
区块结构:
┌─────────────────┐
│ 区块头 │
│ – 上一区块Hash │
│ – 时间戳 │
│ – 难度目标 │
│ – Nonce值 │
│ – Merkle根 │
├─────────────────┤
│ 交易数据 │
│ – 交易1 │
│ – 交易2 │
│ – … │
└─────────────────┘
1.3 共识机制
PoW(工作量证明)
- 矿工通过计算复杂数学题竞争记账权
- 优点:安全性强
- 缺点:速度慢、能耗高(比特币使用)
PoS(权益证明)
- 根据持有代币数量和时间分配记账权
- 优点:节能、速度快
- 缺点:可能中心化(富者更富)
PoH(历史证明) – Solana独创
- 通过加密时钟记录事件顺序
- 优点:极高吞吐量、低延迟
- Solana结合PoH + PoS实现高性能
1.4 智能合约
智能合约 = 运行在区块链上的自动执行程序
传统合约:甲方乙方 → 律师/法院执行
智能合约:代码 → 自动执行(无信任第三方)
特点:
- 自动执行,无需中间人
- 代码即法律,规则透明
- 不可篡改,永久生效
2. Solana核心概念
2.1 Solana简介
| 成立时间 | 2017年 |
| 创始人 | Anatoly Yakovenko |
| 定位 | 高性能区块链 |
| TPS | 65,000+(理论) |
| 平均交易成本 | $0.00025 |
| 共识机制 | PoH + PoS + Tower BFT |
2.2 Solana vs Ethereum
| TPS | 65,000+ | ~30 |
| 区块时间 | 400ms | ~12s |
| 平均Gas费 | $0.00025 | $1-50 |
| 智能合约语言 | Rust/C/C | Solidity |
| 生态成熟度 | 发展中 | 成熟 |
| 适合场景 | 高频交易、游戏、NFT | DeFi、复杂应用 |
2.3 核心术语
SOL
Solana网络的原生代币,用于:
- 支付交易手续费
- 质押参与共识
- 治理投票
Account(账户)
Solana上所有数据存储在账户中
账户结构:
┌─────────────────────┐
│ lamports (余额) │ ← SOL数量
├─────────────────────┤
│ data (数据) │ ← 存储的程序或数据
├─────────────────────┤
│ owner (所属程序) │ ← 谁可以修改
└─────────────────────┘
账户类型:
- 系统账户:普通用户账户
- 程序账户:存储智能合约代码
- 数据账户:存储程序运行产生的数据
Program(程序)
相当于以太坊的"智能合约"
// Anchor框架下的简单程序示例
#[program]
pub mod my_program {
pub fn initialize(ctx: Context<Initialize>) -> Result<()> {
// 初始化逻辑
Ok(())
}
}
Transaction(交易)
包含一系列指令,用于执行操作
交易结构:
┌─────────────────────┐
│ 签名列表 │ ← 谁授权了这次交易
├─────────────────────┤
│ 指令列表 │ ← 要执行的操作
│ – 指令1 │
│ – 指令2 │
└─────────────────────┘
PDA(程序派生地址)
- 由程序生成的确定性地址
- 无法通过私钥控制
- 必须通过程序代码才能操作
2.4 交易生命周期
用户发起交易
↓
签名交易
↓
发送到RPC节点
↓
验证签名和余额
↓
PoH时间戳排序
↓
Tower BFT共识确认
↓
状态更新
↓
交易完成
2.5 生态系统
DeFi
- Raydium(AMM)
- Orca(DEX)
- Marinade(Liquid Staking)
- Jupiter(聚合器)
NFT
- Magic Eden(市场)
- Metaplex(NFT标准)
- Tensor(NFT AMM)
工具
- Solana CLI(命令行工具)
- Solana Playground(在线IDE)
- Anchor(开发框架)
3. 环境搭建
3.1 安装Phantom钱包
步骤:
下载扩展
- Chrome: 访问 Phantom官网
- 安装浏览器扩展
创建钱包
- 点击"Create New Wallet"
- 设置密码
- 保存助记词(12/24个词)
- 重要:安全保存助记词!
切换到Devnet
- 点击钱包右上角设置
- 选择"Change Network"
- 选择"Devnet"
3.2 获取测试SOL
**方法1:水龙头网站
# 访问 https://faucet.solanalabs.com/
# 粘贴钱包地址获取测试币
**方法2:命令行
# 安装 Solana CLI (macOS/Linux)
sh -c "$(curl -sSfL "https://release.solana.com/stable/install")
# 确认安装
solana –version
# 切换到Devnet
solana config set –url devnet
# 请求空投
solana airdrop 2
3.3 开发环境
Node.js + TypeScript
# 安装 Node.js (建议v18+)
# https://nodejs.org/
# 确认版本
node –version # 应显示 v18.x.x
# 创建项目
mkdir my-solana-app
cd my-solana-app
npm init -y
npm install typescript @types/node ts-node -D
npx tsc –init
Rust(可选,用于链上程序开发)
# macOS / Linux
curl –proto '=https' –tlsv1.2 -sSf https://sh.rustup.rs | sh
# 确认安装
rustc –version
cargo –version
# 添加wasm目标(用于Solana程序)
rustup target add wasm32-unknown-unknown
3.4 Solana开发工具
Solana CLI
# 检查版本
solana –version
# 查看配置
solana config get
# 输出示例:
# RPC URL: https://api.devnet.solana.com
# WebSocket URL: wss://api.devnet.solana.com
# Commitment: confirmed
# Keypair: ~/.config/solana/id.json
# Airdrop: 2 SOL
Anchor框架(推荐用于开发程序)
# 安装 Anchor CLI
npm install -g @coral-xyz/anchor-cli
# 或使用Cargo安装
cargo install –git https://github.com/coral-xyz/anchor anchor-cli
# 确认安装
anchor –version
3.5 在线IDE:Solana Playground
无需本地环境,直接在浏览器开发!
3.6 第一个测试
// 使用 @solana/web3.js 连接 Solana Devnet
import { Connection, PublicKey, LAMPORTS_PER_SOL } from "@solana/web3.js";
// 创建连接
const connection = new Connection(
"https://api.devnet.solana.com",
"confirmed"
);
// 获取你的钱包余额
const walletAddress = new PublicKey("你的钱包地址");
const balance = await connection.getBalance(walletAddress);
console.log(`余额: ${balance / LAMPORTS_PER_SOL} SOL`);
3.7 常见问题
| 水龙头领取失败 | 等待几分钟后再试,或使用CLI |
| 连接超时 | 检查网络,使用备用RPC |
| 余额显示为0 | 确认已切换到Devnet |
| 程序部署失败 | 检查钱包余额是否充足 |
📚 本章总结
核心要点
关键术语
| PoH | 历史证明,Solana的创新共识 |
| Account | 存储数据和余额的容器 |
| Program | 运行在链上的智能合约 |
| Transaction | 包含指令和签名的操作请求 |
| PDA | 程序派生的确定性地址 |
| Lamport | SOL的最小单位(1 SOL = 10亿 lamports) |
📖 延伸学习资源
- Solana官方文档
- Solana Cookbook
- Anchor框架文档
- Solana开发者Discord
➡️ 下一步
学完基础知识后,进入 第二阶段:开发入门
核心内容:
- Anchor框架使用
- 编写第一个Solana程序
- 前端集成(连接钱包、发送交易)
准备好了吗?

