@@ -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