官术网_书友最值得收藏!

1.2.4 Cosmos-SDK

大部分的區塊鏈都會有賬戶管理、交易處理等功能,為了進一步提升區塊鏈構建的效率并縮短開發周期,Tendermint團隊構建了Cosmos-SDK,實現了區塊鏈場景中一系列的通用功能模塊,如圖1-4所示。模塊化設計的理念使得開發者既可以復用已有的功能模塊,也可以快速構建新的功能模塊,以顯著提升上層應用的開發效率。

圖1-4 Cosmos-SDK的通用功能模塊

按照模塊實現的功能,可以將Cosmos-SDK目前提供的所有模塊劃分為以下幾類。

  • 基礎功能:賬戶管理與交易處理。
    • auth模塊管理系統中的所有賬戶。
    • bank模塊管理鏈上資產的轉移。
  • 輔助功能:創世區塊管理、鏈上狀態一致性檢查等。
    • genutil模塊管理鏈的創世區塊。
    • supply模塊負責鏈上資產總量的管理。
    • crisis模塊負責所有模塊的不變量檢查的管理。
    • params模塊負責所有模塊的參數管理。
  • 鏈上治理:基于提案的鏈上治理與網絡升級。
    • gov模塊負責鏈上治理機制。
    • upgrade模塊負責鏈的升級。
  • PoS:鏈上資產抵押、鏈上懲罰和獎勵。
    • staking模塊管理鏈上資產抵押。
    • slashing模塊負責對驗證者的被動作惡行為進行懲罰。
    • evidence模塊負責對驗證者的主動作惡行為進行懲罰。
    • mint模塊負責鏈上資產的鑄造。
    • distribution模塊管理區塊獎勵的分發。
  • IBC協議:基于中繼機制的跨鏈協議。
    • ibc/core模塊負責跨鏈通信功能。

采用模塊化設計理念的同時保證安全性是一個技術挑戰。如何防止一個模塊的狀態被另一個模塊惡意更改?遵循對象能力模型(object-capability model)的安全理念(每個模塊僅對外暴露必要的功能接口),Tendermint團隊設計了一套多樣化的存儲體系,賦予每個模塊單獨的存儲空間。在此基礎之上,Cosmos-SDK也為每個模塊設計了守護者(keeper)角色來維護和更新每個模塊的狀態。每個模塊的守護者隱藏了模塊內部的具體實現以及存儲設計,模塊之間的配合通過各個模塊的守護者之間的相互調用來完成,可以保證每個模塊內部狀態只會被本身模塊的守護者更新,也就保證了鏈上狀態的一致性。

基于Tendermint Core和Cosmos-SDK,可以按照圖1-5所示的方式快速構建應用專屬區塊鏈系統。借助于Tendermint共識協議,鏈上交易處理與確認速度也有了大幅度的提高。與以太坊上的DApp需要去競爭稀缺的公鏈資源不同,應用專屬區塊鏈系統之間無須競爭任何鏈上資源,每個應用專屬區塊鏈系統獨享鏈上的所有資源,而借助ABCI,每個應用專屬區塊鏈系統都有完整的鏈上自治權。筆者自身曾經參與過對照比特幣實現代碼重新開發比特幣現金客戶端的項目,也參與過基于Tendermint Core和Cosmos-SDK構建應用專屬區塊鏈系統的項目,每次想起解讀、修改比特幣實現代碼的“痛苦”經歷,都會感謝Tendermint團隊構建的這套區塊鏈開發框架。

圖1-5 基于Tendermint Core和Cosmos-SDK快速構建應用專屬區塊鏈系統

主站蜘蛛池模板: 独山县| 衡东县| 枣阳市| 郧西县| 南和县| 徐汇区| 来凤县| 新津县| 绵竹市| 水富县| 体育| 黄大仙区| 库伦旗| 炎陵县| 城固县| 龙州县| 陇西县| 普格县| 黑水县| 永兴县| 藁城市| 六枝特区| 桂阳县| 清徐县| 平安县| 江津市| 公主岭市| 娱乐| 瑞丽市| 铅山县| 牡丹江市| 收藏| 隆化县| 孟津县| 太原市| 枞阳县| 石家庄市| 息烽县| 同江市| 黑水县| 阿勒泰市|