- 區塊鏈國產化實踐指南:基于Fabric 2.0
- 王雅震編著
- 1857字
- 2022-04-13 16:10:49
1.1 Fabric核心概念
區塊鏈網絡(blockchain network)從參與者范圍的角度定義,分為公有鏈、聯盟鏈和私有鏈。公有鏈人人均可參與,如以太坊。聯盟鏈將參與者的范圍限制在聯盟成員范圍內。私有鏈則是單個組織或個人私有的,目前應用較少。本書中討論的Hyperledger Fabric 2.0(項目倉庫為hyperledger/fabric)屬于聯盟鏈。區塊鏈網絡本質上是基礎設施,向外可以提供容錯、共識、防篡改交易、分布式賬本存儲等服務。在Fabric區塊鏈網絡中,所有參與者各自提供一部分基礎設施和資源,組成網絡,并參與網絡管理或交易服務。
聯盟(consortium)表示若干個組織通過現實手段達成一定的協議,彼此作為“命運共同體”成員。在Fabric區塊鏈網絡中,聯盟成員認可彼此的身份、權限配置、責任劃分,成員依據相同的交易邏輯產生數據、依據相同的策略認可交易。
通道(channel)是Fabric區塊鏈網絡中隔離賬本交易數據的邏輯主體。一個通道對應著一個聯盟,一個通道也對應著一個賬本。通道中的賬本數據在聯盟成員之間共享,但完全與另一個通道的數據隔離。這就讓通道與通道之間具有私有數據集合的功能,但通道在Fabric區塊鏈網絡中是“較重”的資源,每個通道均需完整地運行一套交易服務、賬本服務、共識服務等,因此在設計通道時需慎重對待。更多的情況下,如果是為了隔離業務數據,應使用私有數據集合功能。
組織(organization)是參與Fabric區塊鏈網絡、組成一個聯盟的基本單位,也是一個邏輯主體。任何因一定的屬性、目的而將多個單體編制成集合的主體,都可以是組織,如現實中的公司、行業協會、多個工廠同類產品的生產線等。
節點(peer)是組成組織的個體在Fabric區塊鏈網絡中運行的基礎設施實體。在Fabric區塊鏈網絡中,節點在廣義概念上的專用名詞為Peer。具體地,由于職責和功能的迥異,Fabric區塊鏈網絡將主要的參與節點分為orderer和peer,orderer節點主要負責運行系統通道、共識排序服務,peer節點負責背書、廣播、散播等服務。但orderer節點和peer節點均可被視為區塊鏈網絡中廣義概念上的節點,因而兩者在配置上又存在很多類似的地方。
智能合約(smart contract)是使用編程語言實現的一種交易規則,以鏈碼(chaincode)的形式部署在Fabric區塊鏈網絡中。智能合約屬于通道,供聯盟成員調用,產生交易數據。使用智能合約的目的是依托區塊鏈網絡賦予賬本數據的可信性,在技術上完全地模擬實現商業交易規則,減少或消除人為干預合約履行的可能性。雖然智能合約支持Go、Java這樣的高級語言,但在實際項目應用時,由于智能合約是依托區塊鏈網絡運行的,其在實用性、適用范圍、效率、功能拓展等方面能力有限,因此Fabric官方也在積極探索拓展鏈碼能力的途徑。
賬本(ledger)是Fabric區塊鏈網絡中數據存儲的主體,用于以多種形式記錄網絡中所有發生的成功或失敗的交易。具體地,賬本使用blockfile存儲區塊,使用LevelDB或CouchDB存儲來自區塊的有效交易數據、區塊索引、歷史數據、私有交易數據。賬本與通道是一對一的,賬本與賬本之間數據隔離,不產生任何關聯。
區塊(block)是區塊鏈特性在數據存儲方面的核心體現,也是Fabric區塊鏈網絡中賬本數據存儲的基本單位。區塊的次序號由0開始,依次遞增,前后塊相互驗證關聯,形成一條不可篡改的鏈。一條鏈中區塊的數量,也被稱為高度(height)。一個通道的賬本,可以視為一條區塊鏈。
交易(transaction)是Fabric區塊鏈網絡的通道賬本中組成區塊的基本單位,主要描述了依據交易規則對應用通道中賬本數據的讀取、更改,以及對交易數據表示認可的背書主體。
私有數據集合(private data collection)是在Fabric區塊鏈網絡參與者之間隔離交易數據方面更細化的應用。通道與通道之間的交易數據是隔離的,但通道是“較重”的資源,而面對大量細化的交易數據隔離需求,通過通道實現數據隔離,顯得過于“笨重”,因此設計了私有數據集合的概念。通道中,有不公開交易需求的若干參與者組成一個“小團體”,遵循一份私有數據集合定義,執行交易,產生的交易數據只在“小團體”范圍內散播存儲。
共識機制(consensus mechanism)保證了Fabric區塊鏈網絡的賬本數據的可信、防篡改等特性。從技術上講,Fabric區塊鏈網絡運行的最終目的是產生所有參與者均認可的賬本數據,即在交易數據方面達成共識。Fabric區塊鏈網絡中的共識機制不單指某一共識算法(如PoW、PoS、Raft、PBFT等),而是基于交易處理流程的分階段共識,并在分階段共識的基礎上,達成整個網絡交易處理的共識。背書階段,與交易相關的參與者已就鏈碼定義(包括背書策略等)達成了共識,因而均認可鏈碼產生的交易數據。排序階段,由Raft算法主導確定每個交易在塊和賬本中的位置,參與者對此也達成共識。散播階段,由gossip算法按已排序好的位置,將包含交易的塊散播、存儲至所有參與者節點本地的賬本副本中,參與者對此也達成共識。在這些階段共識的基礎上,參與者對整個交易流程、結果可以達成共識。
- PostgreSQL for Data Architects
- Android開發精要
- 神經網絡編程實戰:Java語言實現(原書第2版)
- Functional Programming in JavaScript
- Magento 1.8 Development Cookbook
- Java設計模式及實踐
- Python數據挖掘與機器學習實戰
- Java Web程序設計任務教程
- Linux C編程:一站式學習
- 機器學習微積分一本通(Python版)
- R Data Science Essentials
- ASP.NET 4.0 Web程序設計
- Python預測分析實戰
- Responsive Web Design with jQuery
- 程序員面試金典(第6版)