大饼
过去一年“Agent”这个词被说烂了:会思考、会调用工具、能自己拆解任务并持续执行。
大多数教程都用 Python 写,但在需要高并发、可控资源、长期运行稳定的场景里(爬取、自动化运营、链上监控、日志分析、交易风控),Rust 反而更合适:性能强、内存安全、可观测性好、部署简单。
《小白的 Ethereum 源码解析征程》是一部从入门视角出发、逐步深入以太坊核心机制的源码学习笔记。专栏将以通俗语言带你阅读并理解以太坊的关键模块——从区块结构、账户与交易、共识机制到虚拟机(EVM)与状态存储,实现从“能跑懂”到“能改懂”的完整成长路径。无论你是刚入门区块链开发的新手,还是想真正看懂 Ethereum 内核的工程师,这里都是你的起点。
UniswapV2 技术深度解析项目
本项目基于 Solidity 0.8.30 与 Foundry 工具链,从零完整实现 UniswapV2 的生态系统,包括核心协议、外围组件、安全防护和高级特性,配套 23 篇系统化的中文教程文档。
本项目参照 Jeiwan 的 Programming DeFi: Uniswap V2 系列教程,结合现代 Solidity 开发最佳实践(Foundry + Solidity 0.8.30),为中文开发者提供完整的学习路径。
🌟 项目特色
🎉 项目完成状态
✅ 项目已完结 - 所有核心功能已实现,全部测试通过
已完成的核心模块
📊 项目统计
🚀 快速开始
环境要求
安装步骤
1. 安装 Foundry 工具链
curl -L https://foundry.paradigm.xyz | bash
foundryup
2. 克隆项目仓库
git clone https://github.com/RyanWeb31110/uniswapv2_tech
cd uniswapv2_tech
3. 安装依赖(OpenZeppelin 合约库和 Forge 标准库)
forge install
4. 编译所有合约
forge build
运行测试
运行所有测试(71 个测试用例)
forge test
查看测试覆盖率统计
forge test --summary
运行特定测试文件
forge test --match-contract UniswapV2PairTest
运行特定测试函数
forge test --match-test testMint
查看详细的 Gas 报告
forge test --gas-report
使用项目脚本运行测试(会在 logs/ 目录生成日志)
./scripts/test.sh
其他常用命令
格式化代码
forge fmt
检查代码格式
forge fmt --check
清理编译产物
forge clean
📁 项目架构
src/
├── core/ 🔷 核心协议层
│ ├── UniswapV2Factory.sol 工厂合约 - CREATE2 确定性部署
│ ├── UniswapV2Pair.sol 交易对合约 - AMM 核心逻辑
│ └── UniswapV2ERC20.sol LP 代币 - EIP-2612 支持
├── periphery/ 🔶 外围组件层
│ ├── UniswapV2Router.sol 路由合约 - 用户交互入口
│ └── WETH.sol 包装以太坊合约
├── libraries/ 📚 工具库集合
│ ├── UniswapV2Library.sol 核心计算库
│ ├── UQ112x112.sol 高精度定点数
│ └── StorageOptimization.sol 存储优化库
├── security/ 🔒 安全防护组件
│ └── ReentrancyGuard.sol 重入攻击防护
├── oracle/ 🔮 预言机系统
│ └── UniswapV2Oracle.sol TWAP 价格预言机
└── examples/ 💡 教学示例
├── ArbitrageBot.sol 套利机器人
└── LendingProtocol.sol 借贷协议
test/ 🧪 测试套件
├── core/ 核心协议测试
├── periphery/ 外围组件测试
├── security/ 安全防护测试
├── oracle/ 预言机系统测试
├── gas/ Gas 优化测试
└── mocks/ 测试辅助合约
docs/ 📖 系列教程文档(23篇完整版)
├── UniswapV2 深入解析系列 01:架构概述与开发环境搭建.md
├── UniswapV2 深入解析系列 02:流动性池机制与LP代币铸造.md
├── UniswapV2 深入解析系列 03:流动性移除机制与LP代币销毁.md
├── ... 完整的渐进式学习路径
├── UniswapV2 深入解析系列 22:重入防护与闪电贷安全.md
└── UniswapV2 深入解析系列 23:协议费用与系列总结.md
🎯 核心特性
🔷 核心协议层
🔶 外围组件层
🔒 安全防护系统
🔮 高级特性
📚 完整学习路径(23 篇系列教程)
🔰 基础篇(第 1-5 篇)
🔧 进阶篇(第 6-14 篇)
🚀 高级篇(第 15-23 篇)
💡 学习建议:建议按顺序阅读教程,每篇文章都配有完整的代码实现和测试用例,可以边学边实践。
⚡ 性能与优化
Gas 优化成果
完整测试套件
测试覆盖范围
✅ 核心协议层(32 测试):Pair 流动性管理、交换、闪电贷、费用机制
✅ 工厂合约(17 测试):交易对创建、地址计算、权限管理
✅ 外围组件(11 测试):Router 流动性操作、精确输入/输出兑换
✅ 安全防护(9 测试):重入攻击防护、恶意代币处理
✅ 预言机系统(12 测试):TWAP 累积价格计算、时间窗口查询
✅ 工具库(3 测试):价格计算、储备查询、路径管理
🛠 技术亮点与最佳实践
现代 Solidity 开发实践
安全防护机制
代码质量保证
🔄 与原版 Uniswap V2 的区别
| 现代化改进 | 特性 | 原版 Uniswap V2 (2020) | 本项目 (2024) |
|---|---|---|---|
| Solidity 版本 | 0.5.16 / 0.6.6 | 0.8.30 | |
| SafeMath | 必须使用 | 内置溢出检查,无需 SafeMath | |
| 错误处理 | require 字符串 |
自定义 error,节省 Gas |
|
| ERC20 实现 | 自己实现 | 使用 OpenZeppelin ERC20Permit | |
| 测试框架 | Truffle / Hardhat | Foundry(更快) | |
| 测试语言 | JavaScript | Solidity(类型安全) | |
| 代码注释 | 英文简洁注释 | 完整中文 NatSpec 注释 |
功能对比 ✅ 完整实现:
✨ 额外增强:
学习友好性
🎓 适用人群与学习收获
适合以下开发者
学完本项目你将掌握
📖 参考资源
官方文档
学习资源
相关项目
🤝 贡献与反馈
代码贡献流程
git checkout -b feature/your-featureforge testforge fmt文档贡献
反馈渠道
📜 许可证
本项目采用 MIT 许可证,详见 LICENSE 文件。
⚠️ 免责声明
本项目仅供学习和研究使用,未经过专业安全审计,请勿在生产环境或主网中直接部署使用。
🙏 致谢
如果本项目对你有帮助,欢迎 Star ⭐ 支持!
项目作者:RyanWeb31110
项目仓库:https://github.com/RyanWeb31110/uniswapv2_tech
本专栏详细介绍了跨链桥的工作原理,以Wormhole为例,解释了其内部机制、操作流程和面临的挑战。分析了跨链信息的处理,包括消息的创建、签名验证、代币转账等重要步骤,展现了跨链技术的复杂性和解决方案。
一共有四篇文章: 第一篇: 详细介绍了跨链桥的工作原理 第二篇:重点讨论了 Wormhole 跨链桥中验证 guardian 签名的机制
深入探讨 go-ethereum —— 以 Go 语言实现的以太坊执行客户端。
以太坊作为去中心化应用生态的核心支撑,其执行层客户端的实现逻辑是理解区块链运行机制的关键。go-ethereum作为采用 Go 语言实现的以太坊执行客户端,在研究以太坊底层技术时值得学习。
本专栏将以层层递进的方式,从Go的重要概念到交易执行流程再到字节码解释器的工作原理等等,逐步深入的带我们剖析了使用 Go 语言的以太坊执行客户端的实现。除了技术原理的剖析,专栏还将深入代码层面,带你品读 go-ethereum 的源码设计。从模块间的耦合与解耦,到设计模式的巧妙运用。通过技术原理与代码实现的深度绑定,帮助读者建立对以太坊执行层的完整技术认知
希望读者能够通过阅读本专栏,获得对 EVM 更深入的理解。
专栏目录:
《Web3 敲门砖计划》是一套面向初学者的 Web3 入门读物,共计划推出 100 篇文章,每篇聚焦一个核心概念。
我们不讲高深术语、不堆代码,只讲人话,只讲“你真的该懂的”。
从钱包、DApp 到签名、Gas,再到 DID、ZK、链抽象……让你从零起步,真正理解 Web3 世界运作的底层逻辑。
如果你刚接触 Web3,或者想把碎片知识系统化梳理 —— 这,就是你的敲门砖
专栏结构
随着香港开始允许散户交易数字资产,数字资产也在逐步走进每个人的生活,数字资产、数字签名等新概念层出不穷。Cobo密码知识讲堂计划推出以“门限签名”为主题的系列科普文章,旨在以深入浅出的方式,带领读者了解数字签名中门限签名的技术本质和应用原理。该系列科普文章每一篇内容相互独立又互相补充,涵盖门限签名的概念及典型应用、ECDSA 门限签名的设计及发展现状、Schnorr 门限签名的设计及发展现状、基于门限签名的账户体系构建,以及层级化门限签名设计等多个该领域的热点和难点问题,力求通过对技术研究的深层次剖析和解读,让读者对门限签名领域有更加深刻的理解。
本系列将分为五部分来为大家讲解 Cobo 密码知识讲堂|第一讲:门限签名的概念与应用 介绍门限签名的概念与应用。阐述了数字签名的基本概念和分类,以及解决单点失效风险的门限签名概念,并比较了门限签名与多重签名的优势,如灵活性、匿名性和可扩展性。同时探讨了门限签名在区块链领域中的典型应用,包括保障账户安全、跨链资产锁定和共识机制设计。
Cobo 密码知识讲堂|第二讲:ECDSA 算法及其门限化设计介绍 主要介绍了 ECDSA 签名算法及其门限化设计。文章详细阐述了 ECDSA 算法的产生背景、算法流程,以及 ECDSA 门限签名方案的研究现状、算法组成和关键设计,并从门限最优、低算法复杂度、可审计性和高安全性等方面给出了 ECDSA 门限签名算法的评价维度。
Cobo 密码知识讲堂|第三讲:ECDSA 门限签名典型算法介绍 本期课程介绍 ECDSA 门限签名,首先对当前已有的 ECDSA 门限签名算法的技术路线进行归纳和总结,绘制其技术发展的“科技树”;随后,针对 ECDSA 门限签名算法实现的不同技术途径,进行针对性的介绍,阐述其设计原理、核心组件和技术迭代过程;最后,结合学术研究基础和产业界业务经验,给出 ECDSA 门限签名算法使用的相关建议,以供参考。
Cobo密码知识讲堂|第四讲:ECDSA 门限签名算法分析与比较 主要分析和比较了不同的ECDSA门限签名算法。文章构建了一套评价体系,包括门限最优、交互轮数、安全性(安全假设、攻击模型、通用组合)和可审计性等关键指标,并对现有算法在这些指标上进行了横向比较,最后为未来ECDSA门限签名算法的设计提供了指导方向。文章还列举了业内热度较高的算法和开源库。
Cobo 密码知识讲堂|第五讲:探索聚合签名奥妙 主要介绍了聚合签名的概念、算法组成、与门限签名的区别、设计难点、面临的安全风险以及抵御手段,并详细描述了BLS聚合签名和Schnorr聚合签名这两个典型算法实例。聚合签名是一种有广阔应用前景的密码学组件,能够有效“压缩”多个主体的签名,实现对多个签名“批量”验证的效果。
本专栏汇集了笔者在学习 Solana 过程中的笔记与心得,一路上也难免遇到了一些坑。市面上许多中文教程仍以翻译为主,因此难免存在一些不足。但我相信,只要你认真学习本专栏中的文章,掌握 Solana 开发将不再是难事。无论是 Solana 程序开发还是脚本编写,你都能游刃有余地应对。此外,本专栏的内容会持续更新,将逐步带领你从入门迈向中阶开发,毫无压力。
Solana作为高性能区块链的领军者,以其高吞吐量、低延迟和低成本的特点,吸引了全球开发者的目光。本专栏旨在为开发者提供全面的Solana开发指南,帮助您快速掌握这一前沿技术。无论是初学者还是经验丰富的开发者,都能在这里找到实用的内容。我们将从基础概念入手,逐步深入,涵盖智能合约开发、Rust编程、DApp构建、Solana生态工具使用等核心主题。同时,专栏还将分享实战案例、最佳实践以及最新的生态动态,帮助您紧跟行业趋势。无论您是想构建DeFi应用、NFT平台,还是探索Web3的未来,这里都将成为您通往Solana开发世界的桥梁。加入我们,一起解锁区块链开发的无限可能!
欢迎来到《Rust 基础入门指南》!本专栏专为计划学习 Solana 智能合约开发的你量身打造,旨在帮助你快速掌握 Rust 编程语言的核心基础,为后续的 Solana 合约开发做好充分准备。
专栏内容聚焦 Rust 的基础语法、内存管理、所有权机制等关键知识点,并结合简单易懂的示例代码,帮助你快速上手。我们将重点讲解 Rust 中与 Solana 合约开发密切相关的概念,如所有权、借用、生命周期、宏等,确保你能够理解并运用这些机制,为编写高效、安全的 Solana 合约打下坚实基础。