Web3 Uniswap DEX Development Book
用 Solidity 从零手写 Uniswap V1 / V2 / V3,循序渐进地理解自动做市商(AMM)背后的核心原理。
欢迎来到本书!这是一本实战型教程:不堆砌概念,而是像搭积木一样,一个里程碑接一个里程碑地实现一套去中心化交易所(DEX)。每一章都配有可运行的 Solidity 合约源码,最终你将拥有对 Uniswap 三大版本实现机制的完整认知。
关于本书(About)
这是一本用 Solidity 从零手写 Uniswap V1 / V2 / V3 的实战教程。我们按版本演进顺序,把一个去中心化交易所(DEX)拆成一个个递进的里程碑来实现:从 V1「用公式替代订单簿」的最简形态,到 V3 的集中流动性、Tick 索引、跨池路由、三层费率、TWAP 价格预言机,以及用 ERC721 表示的 NFT 流动性仓位。目标不是让你背下官方代码,而是真正读懂 AMM 背后的数学与设计取舍——每个里程碑都附带可 forge build 的合约,边写边理解。
相关链接:
- 📖 在线阅读(本书部署版):https://yuhuajing.github.io/uniswap-book/index.html
- 💻 项目仓库(含全部源码与本地构建说明):https://github.com/yuhuajing/uniswap-book
- 🚀 本地运行:克隆仓库后执行
mdbook serve --open即可本地预览(详见仓库根目录README.md) - 🧰 合约测试:进入各
milestone_*/contracts目录执行forge build/forge test(需先安装 Foundry)
左侧导航(由 SUMMARY.md 生成)是本教程的完整目录。下面也给出一份总览,方便你快速定位。
如何阅读本书
背景知识 → Uniswap V1 → Uniswap V2 → Uniswap V3(Milestone 1 → 6 顺序学习)
- 背景:AMM 数学与合约基础,时间紧可只挑不熟悉的章节。
- V1 / V2:强烈建议通读,它们是理解 V3 设计动机的基石。
- V3 六个里程碑必须顺序学习——后一个依赖前一个的合约。
- 每个里程碑的
user-interface与deployment为可选项,仅在你打算本地跑前端 / 部署时阅读。
每个里程碑都附带一份可
forge build的 Solidity 源码,跟随全书你将亲手实现一套 V3 风格的 AMM:集中流动性、跨池路由、三层费率、TWAP 预言机,以及用 ERC721 表示的 NFT 流动性仓位。
范围与约定
为聚焦原理,本书实现相比生产级 Uniswap V3 做了有意简化:早期里程碑会硬编码参数、用 Python 预演数学;未做主网部署与安全审计;前端示例为最小可运行 UI。相关章节省已标明省略点,投入生产请以 Uniswap 官方审计报告为准。
V3 里程碑速览
| 里程碑 | 主题 | 你将构建 / 理解的关键点 |
|---|---|---|
| M1 | 手动计算的 Swap | 单个 ETH/USDC 池子;硬编码参数、Python 预演数学,最小可用产品(单区间、单向交易) |
| M2 | 池子内的自动 Swap | Tick Bitmap 索引;单池内自动跨 Tick 计算输出量与新 Tick 位置;Quoter 预估 |
| M3 | 跨流动性区间的 Swap | 多价格区间流动性、跨 Tick 交易、滑点保护;定点数进阶与闪电贷 |
| M4 | 跨池子兑换 | 工厂合约 + Path 库;多池子链式路由;Tick 间隔优化 |
| M5 | 累计手续费 + Oracle | Swap / 协议 / 闪电贷三层费率;TWAP 价格预言机 |
| M6 | NFT Positions | ERC721 流动性仓位;NFT Manager 与链上元数据渲染 |