Skip to content

Latest commit

 

History

History
1301 lines (885 loc) · 41.6 KB

JeasonZhang.md

File metadata and controls

1301 lines (885 loc) · 41.6 KB

Jeason Zhang

  1. 自我介绍:大家好,我是 Jeason Zhang,以太坊爱好者,全栈工程师,独立开发者,很开心参加今年的 EPF 残酷共学。
  2. 你认为你会完成本次残酷学习吗?会的!

Notes

2025.02.06

今天是残酷共学的第一天,参加了 chloe 主持的第一周周会,会后看了一下 epf wiki 中的内容,并用 deepseek - R1 总结了一下内容如下:

EPF WIKI WEEK1

I. 核心学习目标

主题:以太坊协议基础与研发生态全景 目标:理解以太坊设计哲学、技术架构、开发流程及社区协作模式。


II. 核心学习模块

1. 历史与哲学基础

2. 以太坊协议设计
  • 设计原则
    • 五大核心:简洁性、通用性、模块化、非歧视性、敏捷性
    • 技术文档
  • 网络架构
    • 分层结构
      • 执行层(EL):处理交易与智能合约(EVM)
      • 共识层(CL):PoS机制与区块确认
    • 节点类型:全节点、轻节点、归档节点
    • 扩展阅读

3. 实现与开发
  • 客户端多样性
    • 执行层客户端:Geth、Nethermind、Besu
    • 共识层客户端:Lighthouse、Prysm、Teku
    • 开发语言:Go、Rust、Java、C#等
    • 资源

4. 测试与安全

5. 社区协作机制

III. 学习路径建议

1. 入门阶段

2. 技术深化
  • 实践任务
    • 运行测试网节点:使用Geth + Lighthouse组合
    • 参与测试:通过Hive提交客户端兼容性报告
  • 代码研读

3. 社区参与

IV. 扩展资源

  • 书籍推荐
    • 《The Infinite Machine》(以太坊早期史)
    • 《Mastering Ethereum》(技术细节解析,需注意版本)
  • 高级学习

V. 学习评估

2024.02.07

EPF WIKI WEEK2

I. 核心学习目标

主题: 以太坊执行层(Execution Layer)深度解析 目标: 掌握执行层节点架构、状态转换机制、EVM运行原理及网络通信协议。


II. 课程大纲重点

1. 执行层节点架构
  • 区块验证(Block Validation)
    • 处理状态转换(State Transition),将交易结果记录到状态树(Merkle Patricia Trie)
    • 维护动态机制更新:EIP-1559基础费用、EIP-4844 Blob Gas、信标链提款等
    • 提供快速同步机制(Snap Sync)帮助新节点快速接入网络
  • 区块构建(Block Building)
    • 基于P2P交易池(Tx Pool)构建新区块
    • 交易广播与验证的双向流程
2. 状态转换函数
  • 区块头验证:
    • 校验默克尔根(交易根、状态根、收据根)
    • 验证Gas限制与时间戳合法性
  • 区块验证代码实践:
3. EVM运行机制
  • 栈式虚拟机原理:
    • 操作码分类解析:
      • 堆栈操作码(如PUSH, POP
      • 内存操作码(如MLOAD, MSTORE
      • 系统级操作(如CALL, DELEGATECALL
  • 实战工具推荐:
4. P2P网络协议
  • 三大核心功能:
    • 历史区块数据传输
    • 未确认交易(Pending Transactions)广播
    • 状态数据同步
  • Snap Sync技术:
    • 阶段一:下载快照数据块(Snapshot Tiles)
    • 阶段二:状态修复(State Healing)
5. JSON-RPC接口
  • 设计目标:
    • 统一所有客户端的API标准,实现工具链无缝集成
    • 目前接近实现但仍有细微差异
  • 关键RPC方法:
    • eth_getBlockByNumber
    • eth_sendRawTransaction
    • eth_call

III. 核心学习资源

必读材料
进阶工具
代码研究

IV. 学习实践建议

  1. 代码调试:在本地运行Geth节点,观察state_processor.go的区块处理流程
  2. 网络模拟:使用devp2p工具包模拟P2P交易广播
  3. RPC实验:通过Postman调用JSON-RPC接口获取链上数据

2025.02.09

EPF WIKI WEEK3

I. 核心学习目标

主题: 以太坊共识层(Consensus Layer)技术解析 目标: 掌握权益证明(PoS)机制、Gasper协议架构及信标链安全模型。


II. 课程大纲重点

1. 共识机制基础
  • 拜占庭容错(BFT):
    • 区块链通过分布式网络实现数字稀缺性,需解决节点作恶问题
    • 比特币通过工作量证明(PoW)首次实现BFT
  • PoS机制创新:
    • 以太坊转向权益证明,使用内生经济信号(质押ETH)实现女巫攻击防护
    • 通过**罚没(Slashing)**机制惩罚拜占庭行为
2. Gasper协议架构
  • 混合共识机制:
    • LMD-GHOST分叉选择规则:基于最新消息(Latest Message Driven)确定主链
    • Casper FFG:负责最终性确认(Finality),确保链活性(Liveness)
  • 关键特性:
    • 每32个区块(Epoch)进行最终性确认
    • 支持动态验证者集合调整
3. 信标链安全模型
  • 密码经济学保障:
    • 验证者需质押32 ETH,作恶将面临罚没
    • 罚没条件:双重签名、违反分叉规则等
  • 抗攻击能力:
    • 1/3质押量攻击可导致链暂停
    • 2/3质押量攻击可导致链重组

III. 核心学习资源

必读材料
深度分析

IV. 实践建议

  1. 客户端运行

    • 组合运行执行层(如Geth)与共识层客户端(如Lighthouse)
    • 观察日志中的attestation(见证)与proposal(区块提议)流程
  2. 时隙分析

    • 研究

      时隙解剖视频

      ,理解12秒时隙内的操作序列:

      • 区块提议 → 见证打包 → 最终性投票
  3. 安全实验

    • 在测试网模拟双重签名场景,观察罚没机制触发过程

V. 关键概念对照表

英文术语 中文解释
Finality 最终性
Justification 合理性证明
Checkpoint 检查点
Attestation 见证
Sync Committee 同步委员会

2025.02.10

EPF WIKI WEEK4

I. 核心学习目标

主题: 以太坊测试框架与安全实践 目标: 掌握以太坊核心测试工具链、安全漏洞发现方法及网络升级测试流程。


II. 课程大纲重点

1. 核心测试工具链
  • 执行层测试套件
  • 网络仿真工具
    • Hive: 多客户端测试框架,支持创建定制化测试网
    • Kurtosis: 分布式测试环境编排平台
  • 模糊测试工具
    • FuzzyVM: EVM字节码模糊测试器
    • tx-fuzz: 交易生成与异常检测工具
2. 安全测试实践
  • 合并测试经验:
    • 通过影子分叉(Shadow Fork)模拟主网环境
    • 使用**eth_tools**监控网络异常
  • 漏洞挖掘案例:
    • 共识层分叉规则漏洞(如LMD-GHOST边缘场景)
    • 客户端同步协议缺陷(如LibP2P消息处理)
3. 测试方法论
  • 分层测试策略:
    • 单元测试:验证单个功能模块
    • 集成测试:多客户端交互验证
    • 压力测试:高负载场景模拟(如Dencun升级的blob处理)
  • 自动化流水线:
    • 持续集成(CI)触发测试套件
    • 测试结果可视化与回归分析

III. 关键学习资源

必读材料
深度实践
经典案例研究

IV. 实践建议

  1. 本地测试环境搭建:

    # 使用Hive创建多客户端测试网
    hive --client=geth,lighthouse --sim=eth2/merge
  2. 模糊测试执行:

    # 运行FuzzyVM检测EVM异常
    go run ./cmd/fuzzy --test=evm_opcodes
  3. 自定义测试开发:

    • ethereum/tests中新增状态转换测试用例
    • 通过retesteth验证客户端兼容性

V. 测试类型对照表

测试类型 工具示例 检测目标
状态转换测试 retesteth 区块处理逻辑正确性
网络协议测试 Hive P2P消息兼容性
模糊测试 FuzzyVM EVM执行边界条件
RPC接口测试 rpctestgen JSON-RPC规范符合性

通过本课程的系统学习,开发者将掌握以太坊核心测试框架的运作机制,具备参与网络升级测试和安全审计的能力。建议从标准测试集入手,逐步深入定制化测试开发。

2025.02.11

EPF WIKI WEEK5

I. 核心学习目标

主题: 以太坊研究生态与路线图演进 目标: 掌握以太坊六大发展阶段(Merge/Surge/Scourge/Verge/Purge/Splurge)的技术规划及当前研究热点。


II. 以太坊路线图解析

1. 六大发展阶段
阶段 核心目标 关键技术
Merge PoS共识完善 单槽最终性(SSF)、秘密领导者选举(SLE)、提款机制优化
Surge 扩容与数据可用性 EIP-4844(Blob交易)、数据可用性采样(DAS)、ZK Rollup互操作性
Scourge MEV治理与抗审查 ePBS(Enshrined PBS)、MEV销毁、质押上限机制
Verge 状态验证效率提升 Verkle树、SNARK化(信标链状态转换、EVM验证)
Purge 协议简化 EIP-4444(历史数据修剪)、状态过期机制
Splurge 用户体验优化 账户抽象(ERC-4337)、EIP-1559最终形态、深度密码学整合

III. 当前研究热点

1. 密码学前沿
  • KZG多项式承诺:用于Blob数据验证(KZG仪式
  • Verkle树结构:替代Merkle Patricia Trie,提升状态证明效率(Vitalik解析
2. 扩容技术
  • 数据可用性采样(DAS):通过随机抽样验证数据可用性
  • 跨Rollup互操作:标准化跨链消息协议
3. 抗MEV机制
  • 包含列表(Inclusion Lists):防止交易审查
  • MEV-Burn:通过协议内拍卖销毁MEV收益

IV. 关键升级进展

1. 近期里程碑
  • Dencun升级:EIP-4844实施,降低Layer2成本
  • Pectra升级:Verkle树预编译合约部署
2. 开发者工具
  • Helios轻客户端:Rust实现的快速同步客户端(构建指南
  • EVM对象格式(EOF):优化合约代码存储结构

V. 学习资源推荐

必读材料
实践指南

VI. 技术术语对照

英文术语 中文解释
Single Slot Finality 单槽最终性
Data Availability Sampling 数据可用性采样
Enshrined PBS 协议内提议者-构建者分离
Verkle Proofs Verkle树证明
MEV Burn MEV销毁机制

通过本课程的系统学习,开发者可全面把握以太坊技术演进的宏观框架,深入参与核心协议研究。建议结合Ethresear.ch论坛跟踪最新提案,通过节点工作坊实践客户端运维。

2025.02.12

EPF WIKI Node Workshop

I. 核心学习目标

主题: 以太坊客户端实践操作 目标: 掌握执行层(EL)与共识层(CL)客户端的部署、配置及运维技能。


II. 环境准备

1. 系统要求
  • 推荐系统: Debian 12(支持Ubuntu/macOS,建议使用虚拟机统一环境)

  • 硬件配置: 测试网节点无需高性能硬件(2核CPU/4GB RAM/50GB存储)

  • 基础工具安装:

    sudo apt update && sudo apt install -y curl git gpg docker.io build-essential
2. 前置知识

III. 客户端部署流程

1. 客户端选择与获取
  • 推荐组合: Geth(EL) + Lighthouse(CL)

  • 二进制验证(以Geth为例):

    # 下载签名文件
    curl -O https://geth.ethereum.org/geth-linux-amd64-1.13.0-6c74b4e6.sig
    # 验证签名
    gpg --verify geth-linux-amd64-1.13.0-6c74b4e6.sig
2. Docker快速部署
# 启动Geth测试网节点
docker run -d -p 8545:8545 -v /data/geth:/root/.ethereum \
  ethereum/client-go --goerli --http --http.addr 0.0.0.0

# 启动Lighthouse共识客户端
docker run -d -p 9000:9000 -p 9001:9001 -v /data/lighthouse:/root/.lighthouse \
  sigp/lighthouse lighthouse beacon --network holesky
3. 测试网配置
  • Holesky测试网:

    geth --holesky --syncmode snap --http
    lighthouse beacon --network holesky
  • Ephemery自定义创世块:

    geth init --datadir ./ephemery ephemery-genesis.json

IV. 节点运维实践

1. RPC接口使用
  • 基础访问:

    curl -X POST -H "Content-Type: application/json" \
      --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
      http://localhost:8545
  • 控制台交互:

    geth attach http://localhost:8545
    > eth.syncing
2. 验证者管理
  • 质押存款:

    lighthouse account validator deposit \
      --network holesky \
      --keystore ./validator_keys \
      --deposit-value 32
3. 系统服务配置
  • systemd服务文件示例(Geth):

    [Unit]
    Description=Geth Execution Client
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/geth --http --syncmode snap --cache 2048
    Restart=always
    User=geth
    
    [Install]
    WantedBy=multi-user.target

V. 进阶实践建议

1. 节点监控
  • Prometheus+Grafana方案:

    # 安装Prometheus
    docker run -d -p 9090:9090 -v /prometheus-data:/prometheus prom/prometheus
    # 配置Grafana仪表盘(参考Coincashew指南)
2. 网络诊断
  • P2P网络分析:

    # 使用devp2p工具检查节点连接
    devp2p discv5 nodes -bootnodes enr://...
3. 客户端切换实验
  • 执行层切换

    (Geth → Erigon):

    erigon --chain holesky --datadir ./erigon-data --http
  • 共识层切换

    (Lighthouse → Nimbus):

    nimbus_beacon_node --network=holesky --web3-url=http://localhost:8545

VI. 关键资源推荐


通过本工作坊的系统实践,开发者将具备独立部署和维护以太坊全节点的能力,为参与网络验证或协议开发奠定基础。建议从测试网开始,逐步过渡到主网节点运维。

2025.02.13

EPF WIKI WEEK6: Consensus and Execution spec

I. 核心学习目标

主题: 共识层与执行层技术规范深度解析 目标: 掌握规范实现原理,参与协议改进提案(EIP)开发。


II. 课程大纲重点

1. 共识层规范(CL Specs)
  • Gasper协议实现:
    • 结合LMD-GHOST分叉选择规则与Casper FFG最终性机制
    • 状态转换逻辑:见证打包、检查点证明、验证者奖惩
  • Python参考实现:
  • 关键测试场景:
    • 分叉场景模拟(7节点网络测试)
    • 罚没条件触发验证(双重签名检测)
2. 执行层规范(EELS)
  • EVM对象格式(EOF):
    • 分离代码与数据段,优化合约存储结构
    • 支持版本化合约部署(向后兼容)
  • 操作码扩展实践:
    • execution-specs中添加自定义操作码
    • 生成一致性测试向量(JSON测试用例)
  • 黄皮书对照:
    • 状态转换函数的数学形式化验证
    • Gas计算模型与预编译合约实现

III. 关键学习资源

必读材料
实践指南
  • 共识层开发:

    # 测试分叉场景
    def test_multiple_forks():
        genesis_state = initialize_beacon_state()
        fork1_blocks = generate_alt_chain(genesis_state, length=3)
        fork2_blocks = generate_alt_chain(genesis_state, length=5)
        assert get_head(fork1_blocks) != get_head(fork2_blocks)
  • 执行层扩展:

    • 修改src/ethereum/[frontier|homestead]/vm/opcodes.py
    • tests/[frontier|homestead]/test_opcodes.py添加测试

IV. 技术术语对照

英文术语 中文解释
LMD-GHOST 最新消息驱动的最重子树
Casper FFG 友好最终性小工具
EOF EVM对象格式
Precompiled Contract 预编译合约

V. 实践建议

  1. 共识层实验
    • 修改beacon-chain.md中的process_attestation逻辑
    • 运行make test验证状态转换正确性
  2. 执行层扩展
    • 添加OP_CALLDATA操作码实现数据直接访问
    • 生成并提交EIP草案至EIPs仓库

通过本课程的系统学习,开发者将具备直接参与以太坊核心协议开发的能力。建议结合Eth2 Book深化共识层知识,通过黄皮书教程理解EVM底层原理。

2025.02.15

EPF WIKI WEEK6: Study Group Week 6 | Sharding and DAS

I. 核心学习目标

主题: 分片技术与数据可用性采样(DAS) 目标: 理解Danksharding架构与数据可用性保障机制,掌握扩容路线图核心技术。


II. 课程大纲重点

1. 扩容演进史
  • 原始分片方案:64个分片链并行处理交易
  • Danksharding优化
    • 统一结算层与数据可用性层
    • 通过EIP-4844(Proto-Danksharding)过渡
    • 引入Blob交易类型降低Layer2成本
2. 数据可用性采样(DAS)
  • 核心组件
    • KZG多项式承诺:通过KZG仪式实现高效数据验证
    • 2D Reed-Solomon编码:将数据扩展为二维矩阵,确保部分数据丢失时可恢复
    • 随机抽样验证:轻节点通过随机抽样(约30次)确保数据可用性(99.9%置信度)
  • 抗审查机制
    • 包含列表(Inclusion Lists):强制区块包含特定交易
    • 数据可用性委员会(DAC):临时过渡方案,最终由协议内机制取代
3. Danksharding架构
  • 角色分离
    • 区块提议者:负责排序交易
    • 构建者:生成包含Blob的区块
    • 证明者:验证数据可用性
  • 经济模型
    • Blob存储费用动态调整(类似EIP-1559)
    • MEV-Burn机制销毁部分MEV收益

III. 关键学习资源

基础理论
深度分析
实践工具

IV. 技术术语对照

英文术语 中文解释
Data Availability Sampling 数据可用性采样
KZG Commitment KZG多项式承诺
Reed-Solomon Erasure Coding 里德-所罗门纠删码
Proto-Danksharding 原始Danksharding过渡方案
Blob Transaction Blob交易类型

V. 实践建议
  1. DAS模拟实验

    # 使用das-simulator进行数据可用性验证
    from das import DataAvailability
    blob = DataAvailability.generate_blob()
    samples = blob.sample_random_indices(30)
    assert blob.verify_samples(samples)
  2. KZG仪式参与

  3. 扩容影响分析

    • 测算Blob交易对Gas费的影响
    • 评估Layer2在Danksharding下的TPS提升

通过本课程的系统学习,研究者将深入理解以太坊未来扩容方向,掌握数据可用性核心技术。建议结合Devcon研讨会资料跟进最新进展,参与Ethresear.ch论坛讨论协议改进提案。

2025.02.16

EPF WIKI Week 7 | Execution client architecture

I. 核心学习目标

主题: 执行层客户端架构与Reth设计解析 目标: 掌握现代执行层客户端设计理念,深入理解Reth代码架构。


II. 课程大纲重点

1. Reth客户端概述
  • 开发语言:Rust(兼顾性能与安全性)
  • 核心优势:
    • 模块化设计,支持插件扩展
    • 基于Actor模型的异步任务处理
    • 状态树存储优化(替代传统Merkle Patricia Trie)
2. 架构设计亮点
  • 分层架构:
    • 网络层:基于LibP2P实现高效节点通信
    • 同步引擎:支持快照同步与增量同步混合模式
    • 执行环境:隔离的EVM运行时(WASM兼容)
  • 创新特性:
    • 基于RocksDB的列式存储优化
    • 交易池优先级队列与抗DoS机制
    • 轻客户端模式下的状态证明生成
3. 代码结构解析
  • 核心模块:

    • reth-db:数据库抽象层(支持多后端存储)
    • reth-network:P2P网络协议实现
    • reth-executor:EVM执行引擎(兼容EOF规范)
  • 示例分析:

    // 区块处理流程
    async fn process_block(block: Block) -> Result<(), Error> {
        let state = State::new();
        execute_transactions(block.transactions, &state).await?;
        persist_state(state).await?;
        Ok(())
    }
4. 性能优化策略
  • 并行处理:交易执行与状态更新解耦
  • 缓存机制:热数据内存缓存(LRU策略)
  • 批处理写入:减少数据库I/O操作

III. 关键学习资源

必读材料
深度解析

IV. 实践建议

  1. 环境搭建

    # 克隆Reth代码库
    git clone https://github.com/paradigmxyz/reth
    # 编译调试版本
    cargo build --features "jemalloc,backend-mdbx"
  2. 调试实践

    # 启用交易池调试日志
    RUST_LOG=debug reth --debug.txpool
    # 观察区块同步过程
    RUST_LOG=info reth --sync-mode snap
  3. 自定义模块开发

    • 实现reth-consensus模块的自定义分叉规则
    • 扩展reth-rpc添加新的JSON-RPC方法

V. 技术术语对照
英文术语 中文解释
Actor Model 参与者模型
Columnar Storage 列式存储
State Trie 状态树
Snapshot Sync 快照同步

通过本课程的系统学习,开发者将掌握现代以太坊客户端的架构设计精髓,具备参与Reth等新一代客户端开发的能力。建议结合Erigon代码库对比学习传统与创新设计差异,通过Tokio文档深化异步编程理解。

2025.02.18

EPF WIKI Week 7 | Verkle Trees

I. 核心学习目标

主题: Verkle树技术及其在以太坊中的应用 目标: 理解Verkle树如何替代Merkle Patricia Trie(MPT),实现无状态客户端与状态验证优化。

II. 课程大纲重点

1. Verkle树核心优势
  • 证明尺寸优化:相比MPT的KB级证明,Verkle证明可压缩至约200字节
  • 树高度降低:通过向量承诺(KZG多项式)实现宽树结构(每个节点256个子节点)
  • 无状态客户端:轻节点只需存储根哈希,通过证明验证状态数据
2. 密码学基础
  • KZG承诺:实现常数大小的多项式承诺(需可信设置)
  • Pedersen哈希:结合椭圆曲线加密构建树节点哈希
  • 零知识证明兼容:支持未来与zk-SNARKs集成
3. 数据结构设计
  • 树结构分层:
    • 扩展层(Extension Node):处理长路径压缩
    • 内部节点(Inner Node):存储子节点承诺
    • 叶子节点(Leaf Node):包含实际状态数据
  • 路径压缩:通过地址空间划分优化访问效率
4. 迁移挑战
  • 状态转换方案:
    • 分阶段迁移(柏林硬分叉后的状态快照)
    • 双树并行期(MPT与Verkle共存)
  • Gas模型调整:
    • 状态访问操作码(如SLOAD)Gas成本重构
    • 证明验证Gas定价(约5,000 Gas/证明)
5. 当前进展
  • 测试网集成:已部署在Ephemery测试网
  • 客户端支持:Geth、Nethermind的初期实现
  • 开放问题:
    • 长期状态存储激励
    • 证明聚合优化

III. 关键学习资源

必读材料
深度解析

IV. 技术术语对照

英文术语 中文解释
Vector Commitment 向量承诺
Polynomial Commitment 多项式承诺
Stateless Client 无状态客户端
Witness 见证(状态证明)

V. 实践建议

  1. 验证工具使用

    # 使用py_verkle生成验证结果
    from py_verkle import VerkleTree
    tree = VerkleTree()
    tree.insert(b'\x01'*32, b'data')
    proof = tree.prove(b'\x01'*32)
    assert tree.verify(proof)
  2. Gas成本测算

    • 对比MPT与Verkle在SLOAD操作中的Gas消耗差异
    • 分析状态证明批量验证的经济性
  3. 迁移测试

    • 在本地私有链部署Verkle过渡分叉
    • 监控双树并行期的状态同步效率

通过本课程的系统学习,研究者将深入理解Verkle树的技术革新及其对以太坊生态的影响。建议参与Verkle开发者会议跟进最新进展,通过Verkle测试网进行实践验证。

2025.2.20

EPF WIKI Week 7 | Consensus client architecture

I. 核心学习目标

主题: 共识层客户端架构与Teku实现解析 目标: 掌握共识层客户端设计原理,理解EIP实施流程。

II. 课程大纲重点

1. Teku客户端架构
  • 开发语言:Java(企业级应用特性)
  • 核心模块:
    • 信标节点:处理区块同步与状态转换
    • 验证者客户端:签名见证与区块提案
    • REST API:符合Beacon API规范
  • 创新设计:
    • 声明式同步框架(Declarative Sync)
    • 模块化验证者服务(远程签名支持)
2. EIP实施流程
  • EIP-7251(Max EB)案例:
    1. 规范制定:在共识规范库定义MAX_EFFECTIVE_BALANCE
    2. 测试生成:通过generate_tests.py创建状态转换测试
    3. 代码实现:修改BeaconState类处理余额上限
    4. 网络集成:配置预设文件更新链参数
3. 同步机制
  • 检查点同步:快速获取最新可信状态
  • 增量同步:基于Finalized Checkpoint的区块回溯
  • P2P优化:使用GossipSub协议广播见证
4. 开发实践
  • 代码规范:遵循Hyperledger编码标准

  • 调试技巧

    # 启用调试日志
    java -Dlogging=DEBUG -jar teku.jar --network=mainnet
    # 监控内存使用
    jstat -gc <pid> 1000

III. 关键学习资源

必读材料
深度解析

IV. 技术术语对照

英文术语 中文解释
Finalized Checkpoint 最终化检查点
GossipSub Protocol GossipSub协议
Validator Client 验证者客户端
State Transition 状态转换

V. 实践建议

  1. 本地环境搭建

    # 克隆Teku代码库
    git clone https://github.com/Consensys/teku
    # 编译并运行测试网节点
    ./gradlew distTar && cd build/distributions
    tar -xzf teku-*.tar.gz && ./teku/bin/teku --network=holesky
  2. API交互测试

    # 查询信标链头部信息
    curl http://localhost:5051/eth/v1/beacon/headers
    # 提交自愿退出交易
    curl -X POST http://localhost:5051/eth/v1/beacon/pool/voluntary_exits -H "Content-Type: application/json" -d '{"message": {...}, "signature": "0x..."}'
  3. 自定义EIP实现

    • consensus-specs中添加新EIP草案
    • 修改BeaconChainController处理新逻辑
    • 生成并运行一致性测试

通过本课程的系统学习,开发者将深入理解共识层客户端的运作机制,具备参与以太坊核心协议改进的能力。建议结合Lighthouse等其他客户端实现进行对比研究,通过PEEPanEIP系列深化协议知识。

2025.2.21

EPF WIKI Week 7 | Protocol services

I. 核心学习目标

主题: MEV(矿工可提取价值)与抗审查协议服务 目标: 理解MEV对协议经济的影响,掌握PBS(提议者-构建者分离)等核心解决方案。

II. 课程大纲重点

1. MEV现状分析
  • MEV类型:
    • 套利交易:DEX间价格差异
    • 清算优先权:借贷协议清算收益
    • 三明治攻击:操纵交易排序获利
  • 负面影响:
    • 网络拥堵与Gas费波动
    • 验证者中心化风险
2. PBS(提议者-构建者分离)
  • 架构设计:
    • 提议者:负责区块最终确认
    • 构建者:优化交易排序获取MEV
    • 中继:防止MEV信息泄露
  • 实现变体:
    • ePBS(Enshrined PBS):协议内强制实施
    • 市场驱动PBS:通过竞拍机制分配构建权
3. MEV-Burn机制
  • 费用销毁:将部分MEV收益通过EIP-1559销毁
  • 经济平衡:减少验证者过度激励,增强网络安全性
  • 实施挑战:精确测算可销毁比例(当前提案约50%)
4. 彩虹质押(Rainbow Staking)
  • 角色解绑:
    • 区块提议:高硬件要求的专业节点
    • 见证签名:普通用户参与
  • 优势:
    • 降低质押门槛(无需32 ETH)
    • 提升网络去中心化程度

III. 关键学习资源

必读材料
深度解析

IV. 技术术语对照

英文术语 中文解释
Miner Extractable Value 矿工可提取价值
Proposer-Builder Separation 提议者-构建者分离
MEV-Burn MEV销毁机制
Relay 中继节点

V. 实践建议

  1. MEV模拟实验

    # 使用mev-inspect分析区块MEV
    import mev_inspect
    block = mev_inspect.get_block(16500000)
    arb_opportunities = mev_inspect.find_arbitrages(block)
    print(f"Block {block.number} MEV: {sum(opp.profit for opp in arb_opportunities)} ETH")
  2. PBS经济模型构建

    • 设计构建者竞拍收益分配模型
    • 测算不同销毁比例对验证者收益的影响
  3. 抗审查监控

    • 通过dotpics.info追踪OFAC合规交易占比
    • 开发插件检测本地节点的交易过滤行为

通过本课程的系统学习,研究者将深入理解MEV经济模型及其治理方案,为参与协议层改进奠定基础。建议结合RIG开放问题列表探索前沿课题,通过mev-boost实践PBS实现。