跳转到内容

执行

在 Aptos 中,执行是指验证者运行并应用有序区块中的智能合约交易的过程。执行输出随后会应用到区块链状态。

执行必须是确定性的,所有验证者理想情况下都应就账本的同一最终状态达成一致。多数验证者(超过三分之二)必须同意账本最终状态,才能达成共识。有关共识属性的更多详情,请参阅拜占庭容错(BFT)共识部分。

高效执行,尤其是并行执行,是扩展区块链性能和吞吐量的关键,其影响体现在区块时间上。截至 2024 年 12 月,Aptos 区块会在 250 毫秒内关闭。

最简单的智能合约执行方式是按顺序逐笔执行区块中的交易,但这种方式难以扩展。大量顺序交易,特别是执行时间不同的交易,会导致区块链延迟和吞吐量大幅下降。

为解决此问题,区块链开始采用并行执行,即并行处理多笔交易的能力。不过,并行执行面临的挑战是某些交易可能读取或写入同一资源,从而产生冲突。

解决并行执行冲突问题的一种方法是静态并行化,要求开发者预先指定交易之间的冲突。但这会加重开发者负担,并且在许多情况下会迫使实际上并不冲突的交易按顺序执行。

动态并行化会即时计算交易执行顺序,在执行期间动态检测依赖关系并避免冲突。区块链动态并行化的另一重要属性是:执行输出应与按预设顺序执行交易时保持一致。

动态并行化无需开发者预先指定冲突,因此开发者可以灵活编写应用,不受静态声明交易依赖关系的设计限制。

Aptos 使用名为 Block-STM 的高效多线程内存中并行执行引擎。Block-STM 利用交易的预设顺序,将软件事务内存技术与新颖的协作调度相结合。

Block-STM 是 Aptos Labs 团队开发的先进动态并行执行引擎。

自发布以来,Polygon、Sei、Starknet 等区块链已采用它来实现各自链上的并行执行。

了解更多: