分享百科

Parallelization

该视频的核心内容是关于以太坊 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 的并行化功能,并提供反馈。
4
0
0
2天前
登链社区