Skip to content

Commit 54d0e9e

Browse files
committed
2025.02.12 note
完成打卡 ✅
1 parent 0af8a2c commit 54d0e9e

File tree

2 files changed

+112
-3
lines changed

2 files changed

+112
-3
lines changed
160 KB
Loading

StarryDeserts.md

Lines changed: 112 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,9 +396,7 @@ timezone: Pacific/Auckland # 新西兰标准时间 (UTC+12)
396396

397397
------
398398

399-
##### **代码示例**
400-
401-
### **R代码:基础费用模拟**
399+
##### **R代码:基础费用模拟**
402400

403401
```R
404402
calculate_base_fee_per_gas <- function(
@@ -423,4 +421,115 @@ calculate_base_fee_per_gas <- function(
423421
}
424422
```
425423

424+
425+
426+
### 2025.02.12
427+
428+
#### 以太坊执行层架构(第1天)
429+
430+
------
431+
432+
##### **客户端架构概览**
433+
434+
###### 核心职责
435+
436+
1. **区块链数据验证与存储**
437+
- 维护本地区块链副本
438+
- 通过默克尔树验证数据完整性
439+
2. **网络通信**
440+
- 使用DevP2P协议进行点对点通信
441+
- 交易池(mempool)管理
442+
3. **共识层协作**
443+
- 实现Engine API接口
444+
- 响应`forkChoiceUpdated``newPayload`调用
445+
446+
##### 分层架构
447+
448+
<img src=".starrydeserts_image/Layered-Architecture.png" alt="Layered-Architecture" style="zoom: 33%;" />
449+
450+
------
451+
452+
##### **EVM设计原理**
453+
454+
###### 虚拟机核心特征
455+
456+
- **硬件无关性**
457+
通过`EVM字节码`实现跨平台一致性,类似JVM设计理念
458+
- **沙盒环境**
459+
每个交易在隔离环境中执行,保证状态变更原子性
460+
461+
###### 三明治复杂性模型
462+
463+
1. **外层(简单)**
464+
- Solidity/Yul等高级语言
465+
- JSON-RPC接口
466+
2. **中间层(复杂)**
467+
- 编译器(Solidity→EVM字节码)
468+
- Gas计量系统
469+
3. **内层(简单)**
470+
- EVM指令集(约140个操作码)
471+
472+
------
473+
474+
##### **状态管理机制**
475+
476+
###### 全局状态组成
477+
478+
| 组件 | 存储内容 | 数据结构 |
479+
| -------- | ----------------------- | --------------- |
480+
| 账户状态 | 余额/Nonce/合约代码哈希 | Merkle-Patricia |
481+
| 合约存储 | 智能合约变量数据 | Merkle-Patricia |
482+
| 交易收据 | 交易执行日志 | Bloom Filter |
483+
484+
###### 状态转换公式
485+
$$\sigma_{t+1} \equiv \Upsilon(\sigma_t, T)$$
486+
487+
- $$\sigma_t$$: 当前状态
488+
- $$T$$: 交易集合
489+
- $$\Upsilon$$: 状态转换函数
490+
491+
------
492+
493+
##### **交易生命周期**
494+
495+
###### 处理流程
496+
497+
1. **接收**
498+
通过JSON-RPC接口接收签名交易
499+
2. **验证**
500+
- 签名有效性
501+
- Nonce连续性
502+
- Gas预算充足
503+
3. **传播**
504+
通过DevP2P协议广播至全网节点
505+
4. **打包**
506+
被矿工/验证者选入候选区块
507+
5. **执行**
508+
在EVM中触发状态转换
509+
510+
###### Gas计算模型
511+
$$\text{总Gas成本} = \text{固有成本} + \sum(\text{操作码Gas} \times \text{执行次数})$$
512+
513+
------
514+
515+
##### **网络层(DevP2P)**
516+
517+
###### 关键协议
518+
519+
| 协议 | 功能 | 传输内容 |
520+
| ------ | ------------ | ------------- |
521+
| eth/66 | 区块同步 | 区块头/体数据 |
522+
| eth/67 | 交易传播 | 原始交易数据 |
523+
| les/4 | 轻客户端支持 | 状态证明 |
524+
525+
###### 节点发现机制
526+
527+
1. 使用Kademlia DHT协议
528+
2. 通过ENR记录存储节点元数据
529+
3. 维护动态路由表(Bucket结构)
530+
531+
532+
533+
534+
426535
<!-- Content_END -->

0 commit comments

Comments
 (0)