Skip to content

Commit db642c0

Browse files
committed
Add study notes for 2025-08-15
1 parent 014591f commit db642c0

1 file changed

Lines changed: 95 additions & 0 deletions

File tree

0x-jian.md

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

1717
<!-- Content_START -->
18+
# 2025-08-15
19+
20+
- 1.参加8.15周例会:大家都很强啊,运营组这个执行力真的是max
21+
- 2.日常晚自习
22+
- 3.参加了一场space,吃了点瓜,了解到了space操作
23+
- 4.写了一篇快讯
24+
- 5.完成专业文章的排版任务
25+
- 6.学会了的defilama使用
26+
- 7.看了一部分技术的学习手册
27+
## 五、以太坊技术基础
28+
29+
### 1. 账户模型
30+
| 对比维度 | 外部拥有账户 (EOA) | 合约账户 (Contract Account) |
31+
|----------|--------------------|-----------------------------|
32+
| **地址来源** | keccak256(pubKey)[12:] | CREATE/CREATE2 计算 |
33+
| **控制方式** | 私钥签名 | 合约代码(EVM 字节码) |
34+
| **状态字段** | nonce, balance | nonce, balance, codeHash, storageRoot |
35+
| **能否发起交易** | ✅ 需私钥签名 | ❌ 由 EOA 触发或合约调用 |
36+
| **Gas 费用支付** | 账户余额承担 | 调用者支付 |
37+
| **典型场景** | 钱包地址 | ERC-20/721, DeFi, DAO |
38+
39+
### 2. Gas 机制
40+
| 术语 | 含义 | 备注 |
41+
|-------|------|------|
42+
| **Gas** | EVM 指令抽象工作量单位 | 参考 evm.codes 价格表 |
43+
| **Gas Limit (Tx)** | 交易 Gas 上限 | 防止死循环 |
44+
| **Gas Used** | 实际消耗 Gas 总和 | 多退少不补 |
45+
| **Base Fee** | 动态调整基础费用(EIP-1559) | 全网销毁 |
46+
| **Priority Fee / Tip** | 激励打包者的附加费 | 给验证者 |
47+
| **Max Fee Per Gas** | baseFee + priorityFee 上限 | 钱包自动估算 |
48+
49+
### 3. 交易生命周期
50+
1. **签名构造**: 钱包收集字段(nonce, to, value, data, gasLimit, maxFeePerGas, priorityFeePerGas, chainId),私钥签名,RLP 序列化。
51+
2. **广播到 P2P 网络**: 交易进入 mempool,节点筛选。
52+
3. **打包/提议区块**: 验证者/矿工挑选高利润交易,执行 EVM,生成收据。
53+
4. **区块传播与共识**: 区块头含 stateRoot、receiptsRoot,PoS 下 2/3 质押者签名后定案(~12 min)。
54+
5. **确认数 & Finality**: 客户端以 n ≥ 12 确认,PoS 下 Casper FFG 提供终结。
55+
56+
## 六、部署合约
57+
58+
### 测试链部署的意义
59+
- 验证合约功能、稳定性,修复漏洞。
60+
- 使用无价值代币,避免主网高 Gas 费用。
61+
- 通过区块浏览器(如 Sepolia Etherscan)查看部署地址、交易哈希、代码、状态等。
62+
63+
### 1. 测试网
64+
| 名称 | 共识机制 | 状态 | 主要特点 | 适用场景 |
65+
|-------|----------|------|----------|----------|
66+
| **Sepolia** | PoS | 活跃 | 长期支持,接近主网 | 部署前测试、Dapp 集成 |
67+
| **Holesky** | PoS | 活跃 | 专为验证者测试 | 质押协议、大规模网络测试 |
68+
69+
### 2. 领取 Sepolia 代币
70+
- **获取地址**: MetaMask 切换至 Sepolia 网络,获取 0x 开头地址。
71+
- **申请测试币**: 通过水龙头(如 sepolia-faucet.pk910.de),输入地址,完成验证,几分钟后收到 Sepolia ETH。
72+
- **注意**: 校验主网余额或 GitHub/Twitter 活跃度,关闭 VPN,尝试其他水龙头。
73+
74+
### 3. Remix 部署到 Sepolia
75+
1. **连接钱包**: Remix 选择 Injected Provider - MetaMask,连接 Sepolia 网络。
76+
2. **编译合约**: 在 Solidity Compiler 面板编译无误。
77+
3. **部署合约**: 在 Deploy & Run 面板点击 Deploy,MetaMask 确认交易。
78+
4. **查看结果**: Remix 输出交易哈希、合约地址等。
79+
5. **Etherscan 验证**: 访问 sepolia.etherscan.io,搜索交易哈希或合约地址,查看详情、事件日志。
80+
81+
### 4. 合约交互
82+
- **Remix 调用**: 输入测试信息(如 Hello ETH),调用函数,MetaMask 确认交易。
83+
- **Etherscan 验证**: 查看合约地址的交易记录、事件日志,确认交互结果。
84+
85+
## 七、区块链前端整合
86+
87+
### 1. 前端与合约交互流程
88+
1. 初始化连接 Web3 提供者。
89+
2. 用户授权钱包账户。
90+
3. 使用 ABI 和地址实例化合约。
91+
4. 调用合约函数,签名并广播交易。
92+
5. 获取交易结果,更新前端。
93+
94+
### 2. 关键技术栈
95+
- **合约语言**: Solidity
96+
- **交互库**: Web3.js/Ethers.js(学习用,推荐 Viem/Wagmi)
97+
- **钱包连接器**: RainbowKit, ConnectKit, WalletConnect
98+
- **状态管理**: React Context
99+
- **错误处理**: 网络异常、用户拒绝、Gas 不足
100+
101+
### 3. 实例操作
102+
- **技术栈**: HTML + JavaScript + CSS,Web3.js,约 650 行代码。
103+
- **连接钱包**:
104+
```javascript
105+
async function connectWallet() {
106+
const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' });
107+
web3 = new Web3(window.ethereum);
108+
account = accounts[0];
109+
const chainId = await web3.eth.getChainId();
110+
if (chainId !== 11155111) { /* 错误处理 */ }
111+
}
112+
18113
# 2025-08-14
19114

20115
- 1.参加技术向会议,了解了一个 DApp 开发流程,还有一些比如如何优化 、审计的分享

0 commit comments

Comments
 (0)