Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ch01 DeepBook 与链上订单簿入门

本章目标

第一章的任务不是把所有源码讲完,而是帮读者建立正确的入口。DeepBook 不是 AMM,也不是一个单独的前端产品;它是一组围绕链上订单簿、账户托管、事件索引和 SDK 集成组织起来的交易基础设施。

读完本章后,读者应该能用自己的话区分 CLOB 与 AMM,能在本地找到 DeepBookV3、Margin、Predict、Indexer 和 Server 的源码边界,能画出一次下单从钱包签名到 PoolBalanceManager、事件和 Indexer 的路径,并完成一次最小池子对象查询。

本章学习阶梯

  • L1 建立 CLOB、AMM、订单、池子和角色直觉。
  • L2 完成环境检查和第一个池子对象查询。
  • L3 把查询结果映射到 Sui object、type、shared owner 和网络配置。
  • L4 能用自己的话画出一次下单从钱包到事件的路径。

源码地图

本章只读取项目入口和产品边界,不进入撮合细节。源码地图的作用是建立导航能力:读者知道后续遇到订单、余额、事件、SDK 或 Server 时该回到哪个目录。

主题GitHub 源码阅读重点
仓库入口README.mdDeepBookV3 的 CLOB 定位、BalanceManager、Pool、DEEP 费用和治理
DeepBook Move 包packages/deepbook/README.md和仓库入口一致,是合约包级别说明
DeepBookV3 合约packages/deepbookSpot CLOB、BalanceManager、Pool、Book、State、Vault
DeepBook Marginpackages/deepbook_margin保证金和普通借贷,不等同于 DeepBookV3 闪电贷
DeepBook Predictpackages/predict预测市场相关包,版本和网络状态以后按源码核对
Indexercrates/indexer从链上事件落库
Servercrates/server对外查询服务
运维脚本scripts/transactions创建池子、升级、参数更新和做市脚本

小节目录

Move 高阶穿插点

  • 环境搭建不只是安装工具,还要建立“源码、链上对象、SDK、Indexer”四个视角之间的跳转习惯。
  • 查询池子对象时,优先记录对象 ID、type、version、owner 和 shared object 状态,这些字段决定后续 PTB 能否正确构造。
  • 遇到 DeepBook 术语时,立刻追问它是链上对象、事件字段、SDK 配置,还是纯前端展示概念。

常见错误

  • 把 DeepBookV3 当成 AMM,只查储备量,不查订单簿、订单和事件。
  • packages/deepbook_margin 的借贷逻辑误认为 DeepBookV3 spot 交易路径。
  • 在 mainnet 对象 ID 上使用 testnet RPC,导致对象不存在。
  • 构造交易前没有确认 BalanceManager 所属 owner、cap 和交易者关系。
  • 只看前端返回值,不订阅或索引 event::emit 产生的链上事件。

本章检查清单

  • 能指出 DeepBookV3 源码包路径。
  • 能解释 CLOB 和 AMM 的交易路径差异。
  • 能画出钱包到 PoolBalanceManager、事件、Indexer 的路径。
  • 能运行环境检查命令。
  • 能查询一个池子对象并确认网络一致。

进阶练习

  1. 用文字画出一次限价买单从钱包签名到 OrderPlaced 事件的路径。
  2. 阅读 packages/deepbook/sources/pool.move,列出 place_limit_order 的每个参数含义。
  3. 阅读 packages/deepbook/sources/balance_manager.move,解释为什么 owner 和 trader 的权限不同。