以太坊系列 - 智能合約Solidity的設計模式與升級方法

設計模式

合約分爲兩類

  • 控制器合約
  • 數據合約

控制器合約

控制器合約通過訪問數據合約獲得數據,並對數據做邏輯處理,然後寫回數據合約。它專注於對數據的邏輯處理和對外提供服務。根據處理邏輯的不同,常見的有命名空間控制器合約、代理控制器合約、業務控制器合約、工廠控制器合約等。一般情況下,控制器合約不需要存儲任何數據,它完全依賴外部的輸入來決定對數據合約的訪問。特殊情況下,控制器合約可以存儲某個固定的數據合約的地址或者命名空間(通過命名空間在運行時獲得合約地址)。

數據合約

數據合約專注於數據結構定義與所存儲數據的讀寫裸接口。爲了達到數據統一訪問管理和數據訪問權限控制的目的,最好是將數據讀寫接口只暴露給對應的控制器合約。禁止其他方式的讀寫訪問。

升級方法

  • 控制器合約升級,數據合約不升級
  • 控制器合約不升級,數據合約升級

數據遷移

  • 硬編碼遷移法
  • 硬拷貝遷移法
  • 默克爾樹遷移法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章