Ethereum 开发工具链
以太坊开发通常分为四层:Solidity 编译器负责把合约变成 ABI 和字节码,开发框架负责测试与部署,客户端库负责与节点交互,节点或 RPC 服务负责提供链上数据。
如何选择工具
| 任务 | 推荐工具 | 说明 |
|---|---|---|
| 编译、单元测试、Gas 检查 | Foundry | Rust 编写,命令行快,Solidity 测试体验好 |
| JavaScript/TypeScript 项目 | Hardhat | 适合前端团队、脚本和插件生态 |
| 链上交互 | ethers v6 | Provider、Signer、Contract API 清晰 |
| 本地节点 | Anvil 或 Hardhat Network | 可重置、可持久化主网分叉 |
| 部署记录 | 脚本 + 网络配置 + 交易哈希 | 不要只依赖终端输出 |
工具不会替代合约审计。编译器版本、OpenZeppelin 版本、目标网络和部署账户都应写入项目配置,并在 CI 中固定。
一条可重复的开发流程
- 用 Solidity 编写接口和状态转换,先定义权限和不变量。
- 编译并检查 ABI、字节码和存储布局。
- 用本地节点测试成功路径、失败路径、权限边界和事件。
- 在测试网部署,保存链 ID、合约地址、部署交易和源码验证结果。
- 用 ethers 读取链上状态,发送交易并等待确认。
- 主网部署前复核构造参数、管理员、多签和升级权限。