術語“消息傳遞通信”有效地描述了程序之間的通信方式。消息傳遞通信比“共享內存通信”更具優勢,因為消息傳遞通信更容易理解,穩定性與性能更佳。

在這種情況下,程序或者說智能合約的通信方式是非常重要的,因為它是促進程序整體效率的一個因素。

對於進程間的通信方式,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 愛好者社區。