登录 后可观看高清视频
Geth 节点实现 #2 - 合约创建(create)实现原理
219次播放
2025-08-01
视频 AI 总结: 该视频详细讲解了以太坊虚拟机(EVM)中合约创建(create)操作的实现原理,重点分析了 go-ethereum 客户端中 EVM.create 函数的实现逻辑。视频的核心内容包括合约地址的生成方式、gas 消耗的计算、nonce 的更新、访问列表的处理、以及如何通过 journal 机制实现状态回滚(revert)。视频还解释了 EVM 如何处理不同硬分叉带来的规则变化,以及如何防止拒绝服务攻击。
关键信息:
- Create 和 Create2 的区别: 主要在于合约地址的生成方式不同,Create2 允许开发者通过 init code 和 salt 影响合约地址。
- EVM.create 的实现: 涉及深度检查、余额转移、nonce 更新、访问列表添加等步骤。
- 状态回滚(Revert)机制: 通过 journal 记录状态变更,并在 revert 时回溯 journal 条目,恢复到之前的状态。
- Gas 消耗: 创建合约需要消耗 gas,包括代码部署的 gas 费用。
- 硬分叉兼容性: go-ethereum 需要兼容所有硬分叉,因此代码中包含大量的条件判断语句。
- 安全考虑: 视频提到了防止拒绝服务攻击的措施,例如 out-of-gas 错误的处理方式。
- 合约部署流程: 包括创建账户、转移资金、运行构造函数(init code)、以及设置部署后的代码。