Skip to content

Commit 926ad89

Browse files
committed
Add study notes for 2025-08-15
1 parent 6d9d89e commit 926ad89

1 file changed

Lines changed: 228 additions & 0 deletions

File tree

jorgenlou.md

Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,234 @@ timezone: UTC+8
1515
## Notes
1616

1717
<!-- Content_START -->
18+
# 2025-08-15
19+
20+
## 基础开发环境搭建
21+
22+
- **Node.js**
23+
24+
25+
[GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions](https://github.com/nvm-sh/nvm)
26+
27+
全称 Node Version Manager,用于管理 Node.js 版本的命令行工具,可以在同一台机器上安装、切换和管理多个 Node.js 和 npm 版本。
28+
29+
**特点**
30+
31+
- 多版本共存
32+
- 通过命令可快速切换 Node 版本
33+
- 跨平台支持, Linux、macOS,Windows
34+
- npm 与 Node.js 版本绑定管理
35+
- 按需安装,可精确指定版本
36+
- 根据不同项目需求进行适配
37+
38+
```bash
39+
# 推荐使用 nvm 进行版本管理
40+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
41+
42+
# 安装 Node.js LTS
43+
nvm install --lts
44+
nvm use --lts
45+
46+
# 安装 yarn(可选)
47+
npm install -g yarn
48+
```
49+
50+
- Git
51+
52+
# 以太坊开发环境
53+
54+
## Hardhat
55+
56+
[Getting started with Hardhat 3 | Ethereum development environment for professionals by Nomic Foundation](https://hardhat.org/docs/getting-started)
57+
58+
Hardhat官方教程
59+
60+
一个基于 JS/TS 的以太坊智能合约开发框架,提供编译、部署、测试、本地链等完整工具链,并拥有丰富的插件生态。
61+
62+
### 快速开始
63+
64+
**特点**
65+
66+
- **主流框架**:社区大、教程多、生态成熟
67+
- **插件丰富**:支持 Ethers.js、部署验证、Gas 分析等
68+
- **内置本地链**:Hardhat Network,方便调试和测试。
69+
- **跨平台**:支持Windows、macOS、Linux。
70+
- **易集成**:与 JS/TS 项目无缝结合
71+
72+
```bash
73+
# 创建项目目录
74+
mkdir hardhat-example
75+
cd hardhat-example
76+
77+
# 初始化项目模板
78+
# 如果执行时未安装 Hardhat,npm会进行自动安装
79+
# 安装过程中需要
80+
# 1.选择hardhat安装版本
81+
# 2.选择项目初始化目录
82+
# 3.选择项目初始化类型
83+
npx hardhat --init
84+
85+
# 构建项目
86+
npx hardhat build
87+
88+
# 测试项目
89+
npx hardhat test
90+
```
91+
92+
---
93+
94+
## Foundry
95+
96+
[foundry - Ethereum Development Framework](https://getfoundry.sh/introduction/getting-started/)
97+
98+
Foundry官方教程
99+
100+
一个用 Rust 编写的高性能 Solidity 原生开发框架,支持快速编译、测试、部署,并自带本地节点 Anvil。
101+
102+
### 快速开始
103+
104+
**特点**
105+
106+
- **高性能**:编译和测试速度远超 JS 框架。
107+
- **Solidity 原生测试**:测试代码直接用 Solidity 编写。
108+
- **轻量化**:无外部运行时依赖,安装简单。
109+
- **现代化设计**:支持高级调试和脚本功能。
110+
- **内置本地节点**:Anvil,启动和执行极快。
111+
112+
**forge & anvil 命令**
113+
114+
```bash
115+
# 下载 Foundry 安装脚本
116+
curl -L https://foundry.paradigm.xyz | bash
117+
# 执行 Foundry 安装命令
118+
foundryup
119+
120+
# 初始化项目
121+
forge init PorjectName
122+
123+
### 构建项目
124+
# 首先进入项目目录,这里以刚建的 PorjectName 为例
125+
cd PorjectName
126+
127+
# 开始构建
128+
forge build
129+
130+
#测试项目
131+
forge test
132+
133+
# 启动本地开发节点
134+
anvil
135+
136+
### 部署合约
137+
# 设置私钥
138+
export PRIVATE_KEY="0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"
139+
# 部署到本地节点
140+
forge script script/Counter.s.sol --rpc-url http://127.0.0.1:8545 --broadcast --private-key $PRIVATE_KEY
141+
142+
## 补充知识
143+
144+
# 分叉主网络状态
145+
anvil --fork-url https://reth-ethereum.ithaca.xyz/rpc
146+
147+
# 在主链上以分叉的形式进行测试
148+
forge test --fork-url https://reth-ethereum.ithaca.xyz/rpc
149+
```
150+
151+
更多教程:[forge-overview](https://getfoundry.sh/forge/overview)[anvil-overview](https://getfoundry.sh/anvil/overview)
152+
153+
- **cast 命令**
154+
155+
通过命令行方式与合约进行交互
156+
157+
```bash
158+
### 读取数据 ###
159+
# 检查余额
160+
cast balance vitalik.eth --ether --rpc-url https://reth-ethereum.ithaca.xyz/rpc
161+
162+
# 通过合约函数读取数据
163+
cast call 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 \
164+
"balanceOf(address)" 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 \
165+
--rpc-url https://reth-ethereum.ithaca.xyz/rpc
166+
167+
### 发起交易 ###
168+
# 设置私钥
169+
export PRIVATE_KEY="0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"
170+
171+
# 发送 ETH 到指定地址
172+
cast send 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 --value 10000000 --private-key $PRIVATE_KEY
173+
174+
### 与 JSON-RPC 交互 ###
175+
# 调用 RPC 函数
176+
cast rpc eth_getHeaderByNumber $(cast 2h 22539851) --rpc-url https://reth-ethereum.ithaca.xyz/rpc
177+
178+
# 获取最新区块编号
179+
cast block-number --rpc-url https://reth-ethereum.ithaca.xyz/rpc
180+
```
181+
182+
更多教程:[cast-overview](https://getfoundry.sh/cast/overview)
183+
184+
- **chisel 命令**
185+
186+
一个快速、实用但冗长的 Solidity REPL,用于快速原型设计和调试。适合测试 Solidity 片段和交互式探索合约行为。
187+
188+
```bash
189+
# 启动 chisel
190+
chisel
191+
192+
### 交互式开发 solidity ###
193+
➜ uint256 a = 123;
194+
➜ a
195+
Type: uint256
196+
├ Hex: 0x7b
197+
├ Hex (full word): 0x000000000000000000000000000000000000000000000000000000000000007b
198+
└ Decimal: 123
199+
200+
// Test contract functions
201+
function add(uint256 x, uint256 y) pure returns (uint256) { return x + y; }
202+
➜ add(5, 10)
203+
Type: uint256
204+
└ Decimal: 15
205+
```
206+
207+
更多教程:[chisel-overview](https://getfoundry.sh/chisel/overview/)
208+
209+
---
210+
211+
## Kurtosis
212+
213+
[Kurtosis OSS](https://www.kurtosis.com/)
214+
215+
一个区块链网络和测试环境编排工具,可快速部署和管理多链、多节点环境,支持 EVM、Solana、Cosmos 等生态。
216+
217+
### **安装**
218+
219+
**特点**
220+
221+
- 多链支持,可同时运行 EVM、Solana、Cosmos 等不同区块链。
222+
- **复杂网络编排**:支持多节点、跨链桥、预言机等组件部署。
223+
- **适合集成测试**:方便验证多系统间交互。
224+
- **CI/CD 集成**:可在流水线中自动化搭建测试环境。
225+
- **语言无关**:可测试不同链和不同语言编写的合约。
226+
227+
Kurtosis 依赖 Docker 运行,安装 Kurtosis 前需先安装 Docker ,安装教程:[Docker install](https://docs.docker.com/get-started/get-docker/)
228+
229+
```bash
230+
# 添加 apt 源
231+
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
232+
233+
# 更新并安装 kurtosis
234+
sudo apt update
235+
sudo apt install kurtosis-cli
236+
```
237+
238+
### 快速开始
239+
240+
```bash
241+
# 运行 github 上的基础包
242+
kurtosis run github.com/kurtosis-tech/basic-service-package --enclave quickstart
243+
244+
```
245+
18246
# 2025-08-14
19247

20248
## X Space运营活动准备

0 commit comments

Comments
 (0)