大型合約系統的一個構建思路與實踐——升級版

  • 固定的入口合約(不可升級)
  • 固定的事件合約(不可升級)
  • 固定的Data合約(不可升級)
  • 通過Owner關係、白名單等機制控制業務邏輯合約對以上三個合約的讀寫權限
  • 業務邏輯合約地址註冊到Data,業務邏輯合約地址之間的依賴通過Data中轉、解耦
  • 專用的GenInfo合約,通過數組一次返回多個前端需要的數據,減少請求次數、加快頁面響應
  • 全局的暫停/重啓開關,升級時使用
  • 升級後舊合約應該disable掉(非suicide),不再處理相關事務

以上幾點帶來的好處:

0,業務邏輯合約可升級,且其他邏輯合約感知不到被升級的邏輯合約的升級過程
1, 前端頁面調用方便,不受升級影響
2, 所有的業務都通過入口合約轉發,方便DappReview等網站收錄交易量、用戶數等數據
3,事件合約不變,前端展示的數據不受升級影響
4,區塊瀏覽器的ParityTrace功能可以跟蹤跨合約調用,邏輯合約讀寫Data都可以跟蹤到,有助於定位問題

工具:
1,冷錢包簽名(部署合約、調用合約)
2,parity trace 解析

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章