登录 后可观看高清视频
Solana 测试工具:LightSVM, surfpool, Mollusk
502次播放
2026-02-01
一、为什么 Solana 的测试比想象中复杂
课程首先明确了一个现实问题:
- Solana 程序依赖大量 外部账户状态
- 程序逻辑往往不是“纯函数”
- 测试时需要考虑:
- 多账户交互
- CPI
- Token 状态
- 与其他协议的真实组合行为
因此,Solana 的测试不能只靠单一工具完成,而是需要一个分层测试体系。
二、Solana 测试工具的三种核心形态
课程中反复强调,可以把 Solana 测试工具分为三类:
1️⃣ 本地测试链(Local Validator)
solana-test-validator
- 官方提供的本地测试节点
- 特点:
- 启动快
- 完全本地
- 适合基础功能测试
适用场景:
- 单个程序的基本逻辑验证
- 不依赖真实主网状态的开发阶段
局限:
- 不包含主网真实账户数据
- 无法模拟复杂的跨协议交互
2️⃣ 单元测试工具(Unit Testing)
Mollusk
课程中明确指出:
- Mollusk 更偏向单元测试
- 关注的是:
- 单个指令
- 单个程序逻辑
- 边界条件与错误处理
特点包括:
- 不追求完整链上环境
- 测试速度快
- 适合精准定位 bug
适用场景:
- Pinocchio 程序
- 需要精确控制输入输出的逻辑测试
- 对 CU、执行路径敏感的代码
课程中多次提到:
Mollusk ≈ 单元测试
3️⃣ 集成测试 / 主网数据模拟
Surfpool
这是本节课测试工具部分的重点。
课程对 Surfpool 的定位是:
- 集成测试工具
- 可以在本地环境中:
- 拉取主网账户
- 模拟真实协议交互
- 测试与外部合约的组合行为
核心能力包括:
- 本地运行,但可按需拉取主网账户数据
- 不需要完整自建 Solana 节点
- 可以测试:
- AMM 池
- Token 状态
- 复杂 CPI 调用
课堂中给出的一个关键总结是:
Surfpool ≈ 带主网数据的本地测试环境
适用场景:
- 协议集成
- 与真实 DeFi 协议交互
- 接近生产环境的验证
三、Anchor、Pinocchio 与测试工具的关系
Anchor 测试
- Anchor 提供
anchor test - 本质是:
- solana-test-validator
-
- TS 测试脚本
- 适合:
- 教学
- 应用型开发
- 快速验证逻辑
但需要注意:
anchor test不等于 Surfpool- 默认不会拉取主网数据
Pinocchio 测试
课程中明确指出:
- Pinocchio 不自带完整测试框架
- 更依赖:
- Mollusk(单元测试)
- Surfpool(集成测试)
这也是 Pinocchio 对工程能力要求更高 的原因之一。
四、推荐的测试组合策略(非常重要)
课程中给出了一个被多次确认的实践路径:
推荐测试顺序
- Mollusk
- 测单个指令
- 测异常路径
- 测 CU 与逻辑正确性
- Surfpool
- 测与其他协议的交互
- 测主网真实账户状态
- 做接近生产的验证
- 主网测试
- 最终验证
- 成本最高
- 只用于确认结果
这一点在课程中被反复强调。
五、常见困惑的澄清
Q1:Surfpool 能不能替代 solana-test-validator?
- 在很多集成测试场景下,可以
- 但用途不同
- 本地 validator 仍适合最基础测试
Q2:Anchor test 用的是 Surfpool 吗?
- 不是
anchor test默认使用本地 validator
Q3:测试能不能打断点?
- 目前不现实
- Solana 测试更接近:
- 日志
- 打印
- 结果验证
六、对初学者的重要提醒
课程中特别强调:
- 不要一开始就上最复杂的测试工具
- 先理解:
- 程序在干什么
- 账户是如何变化的
否则会出现:
- 工具看懂了
- 逻辑反而更混乱
七、课后实践建议(测试方向)
- 至少亲手用一次:
- solana-test-validator
- anchor test
- 进阶尝试:
- 用 Mollusk 写一个单元测试
- 用 Surfpool 测一次真实协议交互
- 把测试当成:
- 理解 Solana 执行模型的一部分
- 而不是单纯的“验收工具”
视频 AI 总结: 该视频主要讲解了 Solana 链上测试的三种工具:LightSVM、surfpool 和 Mollusk,并介绍了它们之间的关联、优势以及使用方法。核心内容是帮助开发者更好地进行 Solana 程序的测试,包括功能测试、性能测试以及套利策略的模拟。
关键信息:
- LightSVM 是一个功能全面的库,支持多种语言,可以模拟 SVM 运行环境,进行指令级别的测试。
- surfpool 基于 LightSVM 开发,能够直接从 RPC 获取链上数据,方便模拟真实环境,适合在线套利策略的测试。
- Mollusk 是一个轻量级的 Rust 测试库,功能有限,只支持指令级别的测试,但可以进行定制化。
- 这三个测试库最终都依赖 SVM 的源代码。
- Shuffle 工具功能强大,既有 RPC 接口,又有网页界面,使用简单,适合与组网或开发网结合使用。
- 实战案例演示了如何使用 surfpool 进行时间旅行和设置账号,模拟 DeFi 应用中的利息计算等场景。
- 推荐使用 MCP 工具分析 Solana 交易,可以解析交易包含的程序、路径等信息。
- 强调了在进行 Solana 开发时,需要关注 CU 优化,以降低交易成本。