Skip to content

Commit 1e6365e

Browse files
committed
Add study notes for 2025-08-18
1 parent 2798a2f commit 1e6365e

1 file changed

Lines changed: 73 additions & 0 deletions

File tree

leopc999.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)