Skip to content

Commit 6b7e400

Browse files
committed
Add study notes for 2025-08-14
1 parent 0dc569d commit 6b7e400

1 file changed

Lines changed: 260 additions & 0 deletions

File tree

baidang201.md

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

1717
<!-- Content_START -->
18+
# 2025-08-14
19+
20+
DApp架构与从零部署」内容整理的深度学习笔记:
21+
22+
🏗️ ​​DApp架构核心特征​​
23+
1. ​​与传统应用的本质差异​​
24+
graph LR
25+
A[DApp] --> B[去中心化]
26+
A --> C[透明性]
27+
A --> D[用户主权]
28+
A --> E[可编程性]
29+
30+
B --> B1[无单点故障]
31+
B --> B2[抗审查]
32+
C --> C1[开源代码]
33+
C --> C2[链上数据验证]
34+
D --> D1[资产自托管]
35+
D --> D2[数据所有权]
36+
E --> E1[智能合约组合]
37+
38+
39+
40+
41+
42+
43+
44+
45+
46+
47+
48+
49+
2. ​​技术栈对比矩阵​​
50+
​​层级​​
51+
52+
传统应用
53+
54+
DApp
55+
56+
​​关键差异​​
57+
58+
​​前端​​
59+
60+
React/Vue + REST API
61+
62+
React/Vue + Web3 Provider
63+
64+
钱包集成取代身份验证
65+
66+
​​后端​​
67+
68+
Node.js + MySQL
69+
70+
智能合约 + 索引服务
71+
72+
业务逻辑完全链上化
73+
74+
​​数据存储​​
75+
76+
中心化数据库
77+
78+
IPFS + 区块链状态
79+
80+
不可篡改 vs 高频读写
81+
82+
​​支付​​
83+
84+
第三方网关
85+
86+
原生代币交互
87+
88+
无需金融中介
89+
90+
​​案例印证​​:
91+
92+
固定年化金库项目中,利率计算逻辑完全开源(透明性),用户资产自托管(用户主权),合约自动执行(去中心化)
93+
94+
⚙️ ​​智能合约开发精要​​
95+
1. ​​Solidity核心语法​​
96+
// ERC4626金库合约结构
97+
contract FixedRateERC4626Vault is ERC4626, Ownable {
98+
uint256 public annualRateBps; // 状态变量
99+
mapping(address => uint256) public userRewards; // 存储映射
100+
101+
event Deposited(address indexed user, uint256 amount); // 事件定义
102+
103+
function deposit(uint256 assets) external {
104+
_accrue(msg.sender); // 内部函数调用
105+
_mint(shares, msg.sender);
106+
emit Deposited(msg.sender, assets); // 触发事件
107+
}
108+
}
109+
2. ​​全局累积因子算法​​
110+
​​利息计算模型​​:
111+
112+
用户奖励=用户资产×(全局累积值−用户基线值)/1e18
113+
​​优势​​:
114+
115+
O(1)时间复杂度(万级用户无压力)
116+
精准按秒计息(无近似误差)
117+
3. ​​Gas优化实战数据​​
118+
​​优化策略​​
119+
120+
场景
121+
122+
Gas节省效果
123+
124+
实现方式
125+
126+
​​变量打包​​
127+
128+
结构体存储
129+
130+
67%↓
131+
132+
uint64 + uint128 + uint32组合
133+
134+
​​内存缓存​​
135+
136+
批量数据更新
137+
138+
98%↓
139+
140+
内存计算 → 单次存储写入
141+
142+
​​calldata传参​​
143+
144+
大数组处理
145+
146+
15%↓
147+
148+
避免内存拷贝
149+
150+
​​unchecked块​​
151+
152+
安全边界内算术运算
153+
154+
40%↓
155+
156+
明确无溢出场景
157+
158+
🔐 ​​安全机制深度解析​​
159+
1. ​​三重防护体系​​
160+
graph TD
161+
A[合约安全] --> B[重入攻击防护]
162+
A --> C[权限控制]
163+
A --> D[数学安全]
164+
165+
B --> B1[CEI模式]
166+
B --> B2[ReentrancyGuard]
167+
C --> C1[Ownable修饰器]
168+
C --> C2[角色分级]
169+
D --> D1[SafeMath库]
170+
D --> D2[1e18精度缩放]
171+
172+
173+
174+
175+
176+
177+
178+
179+
180+
181+
2. ​​真实漏洞防护案例​​
182+
// 重入攻击防护实现
183+
function withdraw() external nonReentrant {
184+
uint256 amount = balances[msg.sender];
185+
balances[msg.sender] = 0; // 先更新状态
186+
(bool success,) = msg.sender.call{value: amount}(""); // 后交互
187+
require(success);
188+
}
189+
🚀 ​​部署全流程实操​​
190+
1. ​​Sepolia测试网部署步骤​​
191+
sequenceDiagram
192+
用户->>+Hardhat: npx hardhat deploy
193+
Hardhat->>+Sepolia RPC: 发送部署交易
194+
Sepolia RPC->>+区块链网络: 广播交易
195+
区块链网络-->>-Sepolia RPC: 返回交易哈希
196+
Sepolia RPC-->>-Hardhat: 返回合约地址
197+
Hardhat-->>-用户: 显示部署结果
198+
2. ​​关键验证环节​​
199+
​​区块确认​​:等待≥12个区块确认(约3分钟)
200+
​​Etherscan验证​​:
201+
npx hardhat verify 0x合约地址 --network sepolia
202+
​​前端集成​​:更新环境变量
203+
NEXT_PUBLIC_VAULT_ADDRESS=0x123...
204+
💻 ​​前端集成核心技术​​
205+
1. ​​现代Web3技术栈​​
206+
graph TB
207+
A[React] --> B[wagmi]
208+
B --> C[合约读写]
209+
A --> D[RainbowKit]
210+
D --> E[钱包连接]
211+
C --> F[实时状态管理]
212+
213+
214+
215+
216+
217+
218+
2. ​​核心交互逻辑​​
219+
// 存款操作流程
220+
const deposit = async (amount: string) => {
221+
// 1. ERC20授权
222+
await writeContract({
223+
address: USDC_ADDRESS,
224+
abi: erc20Abi,
225+
functionName: "approve",
226+
args: [vaultAddress, parseUnits(amount, 6)]
227+
});
228+
229+
// 2. 执行存款
230+
await writeContract({
231+
address: vaultAddress,
232+
abi: vaultAbi,
233+
functionName: "deposit",
234+
args: [parseUnits(amount, 6), address]
235+
});
236+
};
237+
🌐 ​​教学版 vs 真实DeFi​​
238+
​​维度​​
239+
240+
教学版金库
241+
242+
真实DeFi协议
243+
244+
​​利率来源​​
245+
246+
合约固定设置
247+
248+
市场供需决定
249+
250+
​​资金效率​​
251+
252+
简单计息
253+
254+
收益权二级市场交易
255+
256+
​​流动性​​
257+
258+
锁定期无流动性
259+
260+
随时交易收益凭证
261+
262+
​​适用场景​​
263+
264+
学习ERC4626标准
265+
266+
机构资金管理/风险对冲
267+
268+
​​技术启示​​:
269+
270+
虽然教学版简化了金融逻辑,但完整实现了ERC4626标准接口,为理解Compound/Aave等真实协议奠定基础
271+
272+
💡 ​​深度反思与挑战​​
273+
​​Gas成本困境​​
274+
在以太坊主网单次存款需$15+ Gas费 → 如何降低普通用户门槛?实践方案:采用Layer2解决方案(Base链实测Gas降至$0.03)
275+
​​真实收益来源​​
276+
教学版的5%收益由合约铸造 → 真实协议如何实现可持续收益?答案:通过利差(如借贷协议)或交易手续费
277+
18278
# 2025-08-13
19279

20280
一、核心Gas优化技巧分类与实测对比​​

0 commit comments

Comments
 (0)