File tree Expand file tree Collapse file tree 2 files changed +112
-3
lines changed Expand file tree Collapse file tree 2 files changed +112
-3
lines changed Original file line number Diff line number Diff line change @@ -396,9 +396,7 @@ timezone: Pacific/Auckland # 新西兰标准时间 (UTC+12)
396
396
397
397
------
398
398
399
- ##### ** 代码示例**
400
-
401
- ### ** R代码:基础费用模拟**
399
+ ##### ** R代码:基础费用模拟**
402
400
403
401
``` R
404
402
calculate_base_fee_per_gas <- function (
@@ -423,4 +421,115 @@ calculate_base_fee_per_gas <- function(
423
421
}
424
422
```
425
423
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
+
426
535
<!-- Content_END -->
You can’t perform that action at this time.
0 commit comments