来了 @Rahatcodes 的通俗易懂的讲解在 @movementlabsxyz 上获得的很酷的东西之一: Block-STM,MoveVM 的并行执行引擎。
1:目前在测试网中的区块链利用了让您在以太坊之上进行并行执行的优势
2:将 Block-STM 视为一种非常花哨的机制,用于我们如何以快速有效的方式执行交易。 让我们来分析 一下 阿拉伯数字
3:想象一下,你和 @cecilia_hsueh /修脚。通常这个过程是连续的——首先,由一名技术人员一步一步地锉平你的指甲,然后成型,然后美甲油
4:然而,Cecelia 有两名技术人员在为她工作。
这加快了速度,允许它们并行工作。
但是,如果我们能进一步推动呢?
5:在 Blockchains 中,状态通常按区块更新。让我们以这个 mani/pedi 体验为例,想象它在链条的一个区块内。一旦我们对指甲的效果感到满意,我们就会提交区块。
6:区块本身可以包含多个交易或交互。几名技术人员可以同时处理不同的钉子或任务,而不是一步一步地做所有事情,这比上图中的两个要多。
7:这大大加快了流程,因为每个任务都是独立的,无需等待另一个任务完成即可完成。
8:在 Block-STM 中,交易是并行执行的,以最大限度地提高吞吐量。
9:同时处理多个事务,利用多核处理器在更短的时间内处理更多事务。
10:这比一个接一个地执行每个事务要快
11:某些任务依赖于其他任务的完成。例如,在将指甲油涂在指甲上之前,我们需要清洁/锉削它。
12:如果我们看到一个事务具有依赖项,它将被中止并等待依赖事务完成,然后再实际执行。
13:我们不能同时锉平和抛光指甲,我们希望快速正确地完成工作。
14:偶尔你可能会遇到另一个冲突......
如果两个技术人员发现自己即将处理同一个钉子怎么办?
15:沙龙必须通过确保没有两名技术人员同时执行相互冲突的任务来管理这一点。
16:同样,当两个事务尝试访问或修改相同的数据时,会发生冲突处理。
17:当检测到冲突时,Block-STM 引擎会停止一笔交易,等待另一笔交易,然后重新执行第二笔交易,以确保它们不会相互干扰。
18:在沙龙里,一旦所有技术人员都完成了他们的任务,他们就会检查所有内容,以确保美甲/足部看起来完美无缺。当他们对结果感到满意时,您就完成了。
19:一旦区块填满了这些交易,我们就会提交区块,在所有交易都被执行并检查以确保没有冲突。
20:一旦区块中的所有交易都经过验证和确认,它们就会作为单一的最终状态提交到链上。
21:想象一下回去一次完成所有这些任务?每笔交易按顺序进行,直到区块被填满。
22:
要开始构建,请查看如何立即 在 @movementlabsxyz 上构建您的第一个合约
构建链接:https://docs.movementnetwork.xyz/devs/firstmove