Web3基础概念-Foundry
这是官方文档: https://getfoundry.sh/introduction/getting-started
Foundry 是一个 专为以太坊开发者设计的高性能 Web3 开发工具链,类似于 Hardhat 或 Truffle,但更快、更现代,并且使用 Rust 构建,性能极高。
它是目前最主流、最高效、专业级的 Solidity 开发工具之一,被大量安全审计公司、DeFi 协议、L2 项目采用。
foundry和remix的关系是什么
下面我给你一个专业、体系化、清晰无歧义的回答,让你彻底理解 Foundry 与 Remix 的关系。
✅ 总结一句话(最精确的定义)
Remix 是“在线图形化 IDE”,Foundry 是“本地命令行开发框架”。
两者可以独立使用,也可以互补使用,但并无直接依赖关系。
它们的定位完全不同,是两个适合不同阶段的工具。
✅ 一、根本区别是什么?
| 项目 | Remix | Foundry |
|---|---|---|
| 工具类型 | 浏览器 IDE | 本地 CLI 工具链 |
| 适合用户 | 初学者、教学、快速原型 | 专业开发、审计、自动化测试、部署 |
| 功能强度 | 基本 | 极强 |
| 使用方式 | 在线打开即可 | 本地安装 foundryup |
| 测试能力 | 基础 / 极弱 | 行业最强(fuzzing、invariant、fork、cheatcodes) |
| 调试能力 | 较弱 | 强(fork 主网、溯源、call-trace) |
| 部署方式 | GUI 点击部署 | 脚本部署、CI 自动化部署 |
| 主要场景 | 学习练习、快速验证代码 | 高强度开发、审计、生产项目 |
一句话:
Remix = 新手工具
Foundry = 专业工程与审计工具
✅ 二、为什么很多开发者从 Remix 升级到 Foundry?
因为:
1. Remix 无法做专业测试
- 不支持 fuzzing
- 不支持 invariant testing
- 不支持 fork mainnet
- 不支持 cheatcodes
- 不支持复杂集成测试
而这些恰恰是智能合约审计工作最核心的能力。
2. Remix 无法做 CI/CD 或自动部署
专业团队部署合约必须使用脚本,而不是鼠标点按钮。
3. Remix 在浏览器中执行,性能有限
Foundry 因为是 Rust 编写,比 Hardhat / Truffle / Remix 快了几个数量级。
4. 对安全研究员而言
Foundry = 安全分析、审计、攻击复现的一站式平台。
✅ 三、两者是否冲突?互相替代吗?
不冲突,不替代——是互补关系。
你可以这样理解:
- Remix:适合你写第一份合约、测试
Counter、学习语法 - Foundry:适合你写大型 DeFi 项目、审计、压力测试、自动化部署
你学习智能合约的第一阶段(0~2 个月):
- 用 Remix 写代码
- 用 Foundry 跑测试
后期(3 个月后)你会逐渐不再使用 Remix。
✅ 四、审计行业中的地位
Remix 在审计中几乎不用
因为它不支持系统级调试、不支持测试框架、不支持 fork 测试。Foundry 是审计工程师的标配
慢雾、OpenZeppelin、ChainSecurity、Certora、Trail of Bits 都用 Foundry 做测试与漏洞复现。
如果你要找 Smart Contract Auditor 的工作(你目前明确在走这个方向)
Foundry = 必须掌握。
✅ 五、最佳实践(推荐你采用)
你的最佳工作流:
1 | |
✅ 六、给你一个精确比喻(非常形象)
Remix = 小学数学练习册
- 拿来练习语法、写简单题、理解基础逻辑。
Foundry = 大学数学实验室
- 做严肃的、复杂的、系统性的测试和推理。
✅ 七、最终结论
Remix 和 Foundry 的关系 = 入门级 IDE + 专业级测试框架(互补、非替代)。
学习路径:
- 初期(第 1~2 周) → Remix
- 中期(第 3~6 周) → Remix + Foundry
- 后期(第 2 个月以后) → 全面转向 Foundry
你最终写智能合约、做审计,都将主要使用 Foundry。
那么为什么一开始要学remix,为了少学点东西,为什么不一开始就学foundry呢
这是一个非常关键、也是很多初学者都会问的问题。
我从 学习曲线、认知负担、工具复杂度、职业要求、行业惯例 五个角度给你一个系统、专业且务实的回答。
✅ 一句话总结
一开始学 Remix,不是为了少学,而是为了让你在最短时间内理解 Solidity 本身,而不是被工具链干扰。
Remix = 入门必需的“训练轮”,Foundry = 专业级武器。
如果你从 0 基础直接上 Foundry,你的认知负担会过大,容易被工具复杂性淹没,从而影响 Solidity 本体的学习效率。
✅ 一、为什么不能一上来就学 Foundry?(核心原因)
因为你不只是要学工具,还要同时学习:
- Solidity 语法
- EVM 机制
- ABI / calldata
- 调用方式
- 状态变量 / 函数
- Storage / memory / calldata
- 部署流程
- Gas
- 事件
- 可见性(public/external/internal/private)
- payable
- constructor
- revert / require
- fallback / receive
如果你刚入门的时候又要同时理解 Foundry,例如:
- 项目结构(src、test、script)
- forge test
- cheatcodes(vm.xxxxxx)
- script + broadcast
- cast CLI
- anvil 节点
- mainnet fork
- dotenv / RPC / private key 管理
- 测试架构
- cheatcodes 调整状态
- fuzz 测试
- invariant 测试
这对初学者的学习负荷是 300% 以上。
最终你会:
- 写不出合约
- 测试不知道怎么写
- 也不知道你是 Foundry 没学会还是 Solidity 没学会
- 进度变慢
- 信心下降
- 甚至放弃
所以专业建议是:
先理解语言,再理解工具链。
✅ 二、为什么行业都推荐“Remix 先行”?
Remix 的设计目的就是:
让你 10 分钟写完第一个智能合约,而不是先折腾工具链。
Remix 的优势:
- 浏览器打开即用
- 无需安装
- 无需配置 RPC
- 无需理解主网/测试网/节点
- 无需写部署脚本
- 所见即所得
- 按钮即可测试函数
它让你把全部时间花在“理解 Solidity”,而不是“理解工具”。
这就是为什么:
- Coursera
- Udemy
- OpenZeppelin Starter Kit
- Alchemy Learn
- 官方 Solidity 文档
- ETHDenver Bootcamp
- Consensys Bootcamp
全部都是从 Remix 开始。
这是行业共识。
✅ 三、从学习阶段来看,你现在正处于“Remix 必要阶段”
学习智能合约一般分 3 阶段:
① 语言入门阶段(第 1–2 周)
你需要:
- 看懂 Solidity 语法
- 能写简单合约
- 能部署与调用
Remix = 最快上手。
② 工具链阶段(第 2–4 周)
学习 Hardhat 或 Foundry
开始理解测试、部署、与链交互
Foundry = 测试框架
Remix = 不够用
③ 专业开发 / 审计阶段(第 1–6 个月)
几乎不用 Remix
使用 Foundry 编写测试、复现漏洞、脚本部署、主网 fork 调试。
你最终会完全依赖 Foundry。
但入门时用 Remix,会让你方向明确、不掉坑、学习效率提高数倍。
✅ 四、初学者直接学 Foundry 会遇到的典型问题
你可以提前看到这些坑:
- 看不懂
Test.sol - 不理解 cheatcodes
- 分不清部署脚本和测试脚本
- 不知道为什么测试会 revert
- 不知道如何 broadcast
- mainnet fork 连不上
- private key 配置错误
- .env 文件格式问题
- RPC 限制导致报错
- 项目结构看不懂
- cast 命令不会用
这些问题非常常见,会导致刚入门者花掉几天甚至几周时间解决工具问题,而不是学习 Solidity。
所以对于初学者来说是不必要的负担。
✅ 五、真正的原因:工具链 ≠ 语言
正如:
- 学 C 语言不会从 Makefile 开始
- 学 Java 不会从 Maven 开始
- 学 Python 不需要先学 Pipenv
- 学 SQL 不会从 Docker + pgAdmin 开始
学习语言 = 先理解语法和运行模型
工具链 = 用来做工程化
工具永远是降低生产成本,而不是增加入门难度。
✅ 六、你的最佳路径(基于你要做审计)
适合你的路径:
第 1 阶段(1~2 周)
Remix + Solidity 入门语法
- 合约结构
- 函数
- 状态变量
- payable
- fallback
- mapping
- error handling
- event
第 2 阶段(2~4 周)
Foundry 入门(测试 + 部署)
- forge test
- cheatcodes
- anvil
- scripts
第 3 阶段(4~8 周)
Foundry 高级(审计技能)
- fuzz testing
- invariant testing
- mainnet fork
- call tracing
- storage layout 分析
- reentrancy 攻击复现
- DeFi 协议测试(Uniswap / Aave / Curve)
这样你的上升速度是最快的。
✅ 最终结论
你一开始学 Remix,并不是“为了少学东西”,而是:
为了在最短时间内掌握 Solidity 本体,避免过早陷入工程工具链,提高学习效率,减少挫败感,并遵循全球智能合约工程师的最佳学习路径。
等你掌握基本 Solidity 后,Foundry 会成为你的核心武器,并最终完全取代 Remix。
如果你需要,我可以继续给你:
✅ 1. “Remix → Foundry” 迁移指南
✅ 2. 14 天从 Remix 切换到 Foundry 的学习路线
✅ 3. 审计工程师使用 Foundry 的必学清单(Fuzz + Fork + Cheatcodes)
告诉我你需要哪一个?
一、Foundry 的核心组成
Foundry 主要包含四个子工具:
1. forge —— 开发 + 测试工具
相当于 Hardhat 的核心功能:
- 编译合约
- 单元测试(超强)
- 运行脚本(部署、交互)
- 覆盖率分析
- 模糊测试(Fuzzing)
- 运行模拟(simulate)
- gas 报告
测试框架类似 Hardhat + Waffle 的组合,但更快、支持 fuzzing、支持高复杂度测试。
2. cast —— CLI 交互工具
用于与区块链交互,例如:
- 查询余额
- 调用合约
- 发送交易
- 解码 calldata
- 执行 eth_call
它是一个命令行 Web3 Swiss Army Knife。
例如查询余额:
1 | |
3. anvil —— 本地 Ethereum 节点
类似于 Hardhat Network 或 Ganache。
特点:
- 超快的本地链
- 强大的 forking 功能(可以 fork 主网或测试网)
- 可模拟各种链上场景
启动方式:
1 | |
4. chisel —— Solidity REPL(交互式 shell)
可在 REPL 中直接写 Solidity 表达式,例如:
1 | |
非常适合快速调试。
二、Foundry 为什么受欢迎?
1. 极快的编译与测试速度
因为用 Rust 写的,而且缓存机制优秀,速度远胜 Hardhat / Truffle。
2. 优雅简洁的命令行体验
例如一条命令即可测试:
1 | |
3. 内置高级测试能力
- Fuzzing(模糊测试)
- Differential testing(差分测试)
- Invariant testing(不变量测试)
- Cheatcodes(强力内置函数)
对安全审计非常友好。
4. 主网 fork 模式强大
可以瞬间 fork 主网或 Sepolia:
1 | |
然后跑真实合约的测试。
三、Foundry 在学习与就业中的地位
对你来说特别关键:
- 智能合约开发找工作必备技能
- 审计工程师(Smart Contract Auditor)的标配工具
- DeFi 协议(Uniswap、Curve、GMX 等)都使用 Foundry 测试
- 非常适合构建自动化测试和安全分析
如果你想成为 Smart Contract Auditor,Foundry 基本是必须掌握的。
四、简单示例:使用 Foundry 创建项目
1 | |
运行测试:
1 | |
部署脚本:
1 | |
五、你是否需要学 Foundry?
如果你的目标是:
- Solidity 开发者(Junior/中级/高级)
- Web3 安全研究员(Auditor)
- 做 DeFi 合约项目
- 做 L2 工程
那么答案是:
必须学 Foundry,越早越好。
如果你需要,我可以进一步为你制作:
1. 初学者的 Foundry 学习路线图
2. Foundry vs Hardhat 的专业对比表
3. 给你一个“初始 Foundry 项目模板”
4. 6 小时从零学会 Foundry 的任务清单
下面是一份为你量身设计的 “6 小时从零学会 Foundry”极速任务清单,目标是让你在最短时间内完成 安装、编译、测试、脚本、部署、主网 fork 调试 全流程。
整体结构严格按照真实工程师 onboarding 路径设计,并适合你(有安全 & 渗透背景)。
✅ 总目标(6 小时达成)
- 会使用
forge编译、测试、运行 - 会写基础 Foundry 测试
- 会使用
anvil作为本地节点 - 会用
cast进行链上交互 - 会使用 主网 fork 调试 DeFi
- 能跑基础的部署脚本
✅ 第 0 小时:准备工作(10 分钟)
1. 安装 Foundry
1 | |
验证:
1 | |
2. 安装一个代码编辑器(VSCode)
✅ 第 1 小时:Foundry 基础体验(1 小时)
任务 1:创建项目
1 | |
项目结构:
1 | |
任务 2:运行项目测试
1 | |
任务 3:观察目录结构
src/里面放合约test/放 Solidity 测试script/用于部署
这一小时目标:跑通一个最小 Foundry 流程
✅ 第 2 小时:编译 + 测试基础(1 小时)
任务 1:写一个简单合约 Counter
src/Counter.sol
1 | |
任务 2:写测试
test/Counter.t.sol
1 | |
运行:
1 | |
这一小时目标:
写出第一个 Solidity 单元测试 + 理解 Test.sol 基础功能
✅ 第 3 小时:Foundry Cheatcodes(1 小时)
Cheatcodes = Foundry 的魔法函数,审计中非常关键。
任务:学习并使用至少 5 个重要 cheatcodes
| cheatcode | 功能 |
|---|---|
vm.prank(addr) |
改变 msg.sender |
vm.deal(addr, amount) |
给地址打钱 |
vm.warp(timestamp) |
修改区块时间 |
vm.roll(blockNumber) |
修改区块号 |
vm.expectRevert() |
预期 revert |
示例测试(你自己动手写一个):
1 | |
这一小时目标:
掌握审计人员必备 cheatcodes(Foundry 的核心价值)
✅ 第 4 小时:使用 anvil 做本地链(45 分钟)
启动本地链:
1 | |
它会生成 10 个测试账户。
另开终端,调用 cast:
1 | |
交互调用(例如读取链上 block 信息):
1 | |
通过 cast 发送交易(熟悉 CLI 形式 Web3):
1 | |
这一小时目标:
掌握本地节点 + cast CLI 的使用
✅ 第 5 小时:编写部署脚本(45 分钟)
新建:
script/Deploy.s.sol
1 | |
执行:
1 | |
这一小时目标:
掌握生产级合约部署:Script + Broadcast
✅ 第 6 小时:主网 fork + 调试(1 小时)
这是高级技能,审计和 DeFi 工程师必须会。
启动 fork(例如 mainnet):
1 | |
测试主网协议(Uniswap、Lido、Maker DAO)
示例测试 Uniswap V2 Pair 的 reserve:
1 | |
写一个测试文件,用 Foundry 直接 fork 主网并断言数据:
test/UniswapFork.t.sol
1 | |
运行:
1 | |
这一小时目标:
掌握主网 fork 测试,这是一线工程师与审计师的超级能力。
✅ 最终你将学会的技能(6 小时后具备的能力)
| 技能 | 是否掌握 |
|---|---|
| 创建 Foundry 项目 | ✅ |
| 写 Solidity 单元测试 | ✅ |
| 使用 Test.sol | ✅ |
| 使用 Cheatcodes(prank/warp/roll) | ✅ |
| 使用 anvil 本地节点 | ✅ |
| 使用 cast 交互 | ✅ |
| 写脚本并部署合约 | ✅ |
| 主网 fork 调试 | ✅(面试加分项) |
这套任务完成后,你的 Foundry 水平 = Junior Web3 开发者水平,并已经具备审计所需基础。
如果你愿意,我还能进一步为你制定:
✅ Foundry 14 天深度学习路线(适合 Smart Contract Auditor)
包含 fuzzing、invariant testing、高级 cheatcodes、多协议交互等内容。
需要我继续为你制定吗?