登录 后可观看高清视频

Besu:并行化EVM交易处理

ETHDenver ETHDenver
7次播放
2025-04-25

该视频的核心内容是关于以太坊 L1 交易并行化的技术,旨在提高以太坊执行客户端的效率,缩短区块执行时间,从而提升整个网络的性能。

关键论据/信息:

  • 背景: 以太坊正在扩展,对区块 gas 的需求增加,新的密码学原语不断涌现,对执行客户端提出了更高的效率要求。
  • 问题: 区块执行占据了以太坊 slot 的很大一部分时间(4秒/12秒),优化执行时间可以释放资源给共识客户端。
  • 目标: 通过并行执行交易,减少区块执行时间。
  • 历史: 介绍了以太坊 Byzantium 版本前后交易执行方式的演变,EIP-98 和 658 放宽了对中间状态根的要求,为并行执行提供了可能。
  • 并行执行策略:
    • 不并行化: 作为最坏情况的基准,用于设置 gas 目标。
    • 悲观锁: 不适用于以太坊 L1 协议。
    • 乐观执行: 执行所有交易,然后检测和处理冲突。
      • Naive 策略: 假设所有交易都冲突,并行执行后重新串行执行,但可以缓存数据,加速串行执行(Nethermind 的 pre-warming 功能)。
      • 冲突检测与处理: 并行执行后,检测冲突并重新执行冲突交易(Besu 的实现方式)。
  • Besu 的实现:
    • Bonsai 存储格式: 提供单一语义世界视图,并允许创建内存中的世界状态覆盖(overlay),可以克隆多个世界状态副本,供并行交易使用。
    • Accumulator 数据结构: 跟踪每个世界状态的读取、写入和更新,用于冲突检测。
    • 软件事务内存: Besu 将 Bonsai 用作软件事务内存,允许多个交易并行执行,然后通过 Accumulator 检测冲突并合并结果。
    • 冲突检测机制: 按照成本由低到高的顺序进行检查,首先是账户级别检查,然后是合约存储检查,以快速失败。
  • 并行化效果:
    • 并行化程度取决于区块内容和硬件配置。
    • 在普通硬件上,Besu 可以成功并行执行大约 60-65% 的交易。
    • 平均吞吐量约为 160-170 megagas/秒。
  • 建议:
    • 并行化并非万能,需要考虑硬件、区块内容和用例。
    • 冲突检测和额外的内存消耗是成本。
    • 对于需要高性能执行的场景(如 L2),建议启用此功能。
    • 推荐使用 8 核 CPU,或具有超线程的 4 核 CPU。
    • 鼓励用户尝试 Besu 的并行化功能,并提供反馈。
EVM  Solidity  以太坊  比特币  Ethereum L1  Parallelization