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 的合约,边写边理解。

相关链接:

左侧导航(由 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池子内的自动 SwapTick Bitmap 索引;单池内自动跨 Tick 计算输出量与新 Tick 位置;Quoter 预估
M3跨流动性区间的 Swap多价格区间流动性、跨 Tick 交易、滑点保护;定点数进阶与闪电贷
M4跨池子兑换工厂合约 + Path 库;多池子链式路由;Tick 间隔优化
M5累计手续费 + OracleSwap / 协议 / 闪电贷三层费率;TWAP 价格预言机
M6NFT PositionsERC721 流动性仓位;NFT Manager 与链上元数据渲染

背景

Uniswap V1

Uniswap V2

Uniswap V3

Milestone 1 · 手动计算的 Swap

Milestone 2 · 池子内的自动 Swap

Milestone 3 · 跨流动性区间的 Swap

Milestone 4 · 跨池子兑换

Milestone 5 · 累计手续费用 + Oracle price

Milestone 6 · NFT Positions

参考资料