术语“消息传递通信”有效地描述了程序之间的通信方式。消息传递通信比“共享内存通信”更具优势,因为消息传递通信更容易理解,稳定性与性能更佳。

在这种情况下,程序或者说智能合约的通信方式是非常重要的,因为它是促进程序整体效率的一个因素。

对于进程间的通信方式,Gear 使用了 Actor 模型。

简而言之,这意味着程序(智能合约)从不共享任何”状态“,只在彼此之间交换消息。这些消息的结果可能导致发送其他消息、创建新的 actor 或为 actor 收到的下一个消息设置指定的行为。

在这篇文章中,我们将探讨什么是 Actor 模型以及它如何运作,最重要的是 Gear 为什么使用它。

什么是 Actor 模型?

Actor 模型是一个处理程序通信的概念模型,它定义了关于系统组件在并发计算环境中如何表现和交互的通用规则。

Actor 模型的独特之处在于,'actors '之间是完全隔离的,它们从不共享内存。除此之外,actors 保持私有状态,程序只能通过处理来自另一个 actor 的消息来更改状态。

Actor 模型如何运作?

Actors 通过发送异步消息来与其他 actors 进行通信。在 Gear 网络中,消息被保存在由 Gear 节点维护的消息队列中。退出队列或已处理的消息以及成功的交易将出现在区块中。未处理的消息将在下一个区块中被处理。新消息出现在消息队列的末端。

从本质上讲,actors 接收输入、发送输出并执行函数。这就是程序,更具体地说,这就是智能合约自动工作的方式。同样值得注意的是,一个 actor 可以创建另一个 actor,在程序中扩展链并增加其复杂性。

Actor 模型与其他通信方式有何不同?

Actor 模型和其他程序通信方式的主要区别是 Actor 模型在 actors 之间传递消息,而不是共享“网络状态”。这有助于提高程序的安全性和稳定性。因此,每个 actor 都有自己独立的 mailbox (信箱机制),不能更改链中另一个 actor 的状态。

为什么 Gear 使用 Actor 模型?

典型的智能合约代码缺乏对异步通信的正常支持,这给开发者带来了很多问题。但是,通过使用 Actor 模型进行消息传递通信,Gear 可以在智能合约逻辑内部实现并发通信,利用各种语言结构或异步编程。

这为所有程序提供了原生的任意异步通信,极大简化了开发和测试,同时也减少了开发过程中出错的可能性。

除此之外,Actor 模型易于扩展,易于实现,具有容错性,并且没有共享状态,这有助于实现更强大的编程。

想了解 Gear 的最新消息和公告,请在 Twitter 上关注我们。你也可以在 Twitter 上留言接下来想了解的话题!

此致,

Gear 团队!


关于 GearFans

Gear 是波卡生态的计算组件,GearFans 是 Gear 爱好者社区。