@@ -15,6 +15,79 @@ timezone: UTC+8
1515## Notes
1616
1717<!-- Content_START -->
18+ # 2025-08-18
19+
20+ ## 一、本地模拟节点:Anvil、Ganache、Hardhat Node
21+
22+ 此类工具主要用于开发过程中快速、本地化地测试智能合约,特点在于“轻量快速模拟”:
23+
24+ ### 1. ** Anvil(Foundry 提供)**
25+
26+ * 是一个本地 EVM 节点,类似于 Ganache 和 Hardhat Network,但用 ** Rust 编写** ,具备高性能特点。
27+ * 默认设置下,提交事务立即出块;也支持定时出块、按需出块等模式,非常灵活。
28+
29+ ### 2. ** Ganache**
30+
31+ * 一个经典的轻量化本地测试链,有 GUI 和 CLI 版本,适合快速部署和调试智能合约。
32+ * 无需挖矿过程,几乎瞬间处理交易,适合合约开发和测试。
33+ * 但功能相对简单,适合入门或小规模测试项目。
34+
35+ ### 3. ** Hardhat Network(Hardhat Node)**
36+
37+ * JavaScript/TypeScript 环境中的内置本地开发网络,功能丰富、插件生态完善。
38+ * 与 Ganache 相比,对复杂项目支持更好;一些开发者反映运行速度略慢。
39+
40+ ---
41+
42+ ### 总结:
43+
44+ | 特性 | Anvil | Ganache | Hardhat Network |
45+ | ---- | ------------ | ---------- | --------------- |
46+ | 语言 | Rust(高性能) | JavaScript | JavaScript/TS |
47+ | 出块方式 | 自动 / 定时 / 手动 | 自动 | 自动(可配置) |
48+ | 性能 | 极高 | 快速 | 较快,但 JS 环境略慢 |
49+ | 可扩展性 | 程序化控制强 | 简单易用 | 插件丰富、调试工具完善 |
50+ | 主要用途 | 快速测试,性能敏感 | 入门级开发测试 | 中大型项目开发与测试 |
51+
52+ ---
53+
54+ ## 二、Docker + CL/EL 客户端:真实本地测试网
55+
56+ 这类方式通过 Docker 容器运行完整的共识层和执行层客户端(如 Geth、Lighthouse、Teku),搭建接近真实网络的本地测试环境。
57+
58+ * ** Kurtosis 框架** 可以帮助你在本地用 Docker 快速配置一个完整的私有以太坊测试网,包含 EL 和 CL 客户端,还可以模拟多个节点、定制共识参数。
59+
60+ ### 特点:
61+
62+ * ** 真实模拟主网结构** ,包括共识机制、验证者、最终性等,不限于合约行为,还可测试协议层面功能。
63+ * ** 高度可配置** ,适合测试多节点交互、协议升级、跨客户端兼容性等高级场景。
64+ * ** 需要更多资源和配置** ,启动成本和复杂度显著高于简单模拟工具。
65+
66+ ---
67+
68+ ## 三、两种方式对比一览
69+
70+ | 方面 | 模拟工具(Anvil/Ganache/Hardhat) | Docker + CL/EL 客户端(如 Kurtosis) |
71+ | ---- | --------------------------- | ------------------------------ |
72+ | 部署速度 | 快速启动,少量配置 | 较慢,需要编写配置、Docker 启动 |
73+ | 模拟程度 | 合约逻辑测试为主 | 协议层、共识、多个客户端交互 |
74+ | 场景适用 | 单机合约开发、快速迭代 | 多节点网络测试、协议开发、分布式场景 |
75+ | 学习成本 | 低 → 中等 | 中等 → 高 |
76+ | 资源占用 | 极少 | 显著(多个容器、日志、状态同步) |
77+
78+ ---
79+
80+ ## 使用建议
81+
82+ * ** 开发智能合约、写单元测试、快速迭代建议选用 Anvil/Ganache/Hardhat Network** :
83+
84+ * 如需要快速测试交易逻辑、模拟 fork,Anvil(Rust 性能强)是优秀选择;Hardhat 提供丰富生态;Ganache 简单易上手。
85+ * ** 如在做协议层开发、升级测试、跨客户端兼容调测** , 或者使用多节点环境测试消息传播、finality 等,则建议使用 Docker + CL/EL 模式(如通过 Kurtosis)来搭建更接近真实的本地以太坊网络。
86+
87+ ---
88+
89+ 总结:** 模拟节点偏向“快速、合约级、开发调试”;Docker 全栈节点偏向“真实、协议级、网络行为模拟”** 。
90+
1891# 2025-08-17
1992
2093## ** ERC721 - NFT 标准**
0 commit comments