EOS 消息设计(3)并行处理之状态评估
1. 部分區塊鏈狀態評估Partial evaluation of Blockchainstate(only needful)
EOS.IO系統允許任何完整的節點選擇性的運行任意應用子集。傳遞給其他應用的消息將被安全地忽略,因為應用的狀態完全來自于傳遞給它的消息。
-
出于將交易狀態顯示給用戶的目的,交易應用的開發者將維護一個完整的節點。這款交易應用不需要與其他社交媒體應用關聯狀態。
-
對于多帳戶之間的通信有一些重要的影響。最重要的是,不能假定另一個帳戶的狀態在同一臺機器上是可訪問的。它還意味著,雖然允許一個帳戶同步調用另一個帳戶的“鎖”是一種誘人的設計模式,但如果其他帳戶不在內存中,這種設計模式將會崩潰。
因此,所有帳戶間的狀態通信必須通過區塊鏈上的消息進行傳遞。
2. 自主最優任務安排
EOS.IO系統不能強制阻止區塊生成者向其他帳戶發送的任何消息。這種對計算、資源成本的主觀評估將使區塊鏈不必精確地去度量運行一個任務需要多長時間。有了這個設計,就不需要精確地數指令,這將極大地增加優化的機會,而不會打破共識。
2.1 區塊節點生成者
每個區塊的生成者對處理交易都有自己的主觀度量,無論這個交易是由用戶生成的還是由腳本自動生成的。
- 計算復雜度
- 時間復雜度
- 網絡層面
EOS.IO系統處理的每一筆交易都有固定的計算帶寬成本,不管它是耗費01ms還是10 ms來處理它。但是,使用該系統的每個單獨的區塊生成者會使用它們自己的算法和度量來衡量資源使用。當一個區塊生成者發現一個交易或帳戶已經消耗了大量的計算能力時,他們會在生成自己的塊時拒絕該交易;但是,如果其他區塊生成者認為它是有效的,他們仍然會處理該交易。
2.2 區塊驗證
一般來說,只要一個區塊生成者認為一個交易是有效的,并且所消耗的資源是可控的,那么其他所有的區塊生成者也會接受它,但可能要花費1分鐘才能使該交易傳播到這個區塊生成者處。
在某些情況下,區塊生成者可以創建一個區塊,其中包括在可接受范圍之外的交易。在這種情況下,下一個區塊生成者可能會選擇拒絕這個區塊,而這條線路將會被第三個區塊生成者終結。這與一個大區塊導致網絡傳播延遲所引發的情況沒有什么不同。社區會注意到這種異常模式,并最終清理該流氓區塊生成者的選票。
總結
以上是生活随笔為你收集整理的EOS 消息设计(3)并行处理之状态评估的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EOS 消息设计(2)并行处理
- 下一篇: EOS API