3 秒后将继续下一节内容
下一节
重播
学习下一节
登录 后可观看高清视频

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 对工程能力要求更高 的原因之一。

四、推荐的测试组合策略(非常重要)

课程中给出了一个被多次确认的实践路径

推荐测试顺序

  1. Mollusk
    • 测单个指令
    • 测异常路径
    • 测 CU 与逻辑正确性
  2. Surfpool
    • 测与其他协议的交互
    • 测主网真实账户状态
    • 做接近生产的验证
  3. 主网测试
    • 最终验证
    • 成本最高
    • 只用于确认结果

这一点在课程中被反复强调。

五、常见困惑的澄清

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 程序的测试,包括功能测试、性能测试以及套利策略的模拟。

关键信息:

  1. LightSVM 是一个功能全面的库,支持多种语言,可以模拟 SVM 运行环境,进行指令级别的测试。
  2. surfpool 基于 LightSVM 开发,能够直接从 RPC 获取链上数据,方便模拟真实环境,适合在线套利策略的测试。
  3. Mollusk 是一个轻量级的 Rust 测试库,功能有限,只支持指令级别的测试,但可以进行定制化。
  4. 这三个测试库最终都依赖 SVM 的源代码。
  5. Shuffle 工具功能强大,既有 RPC 接口,又有网页界面,使用简单,适合与组网或开发网结合使用。
  6. 实战案例演示了如何使用 surfpool 进行时间旅行和设置账号,模拟 DeFi 应用中的利息计算等场景。
  7. 推荐使用 MCP 工具分析 Solana 交易,可以解析交易包含的程序、路径等信息。
  8. 强调了在进行 Solana 开发时,需要关注 CU 优化,以降低交易成本。