先給英文官方原文地址:https://hyperledger-fabric.readthedocs.io/en/latest/overview.html
總覽Overview
介紹 Hyberledger Fabric 做為一個全面、可定制、企業級區塊鏈解決方案關鍵設計需求:
- Assets (資產) - 資產定義了可以交換的幾乎所有東西,其能通過網絡用錢計價,從食物、到古董車、到未來的貨幣。
- Chaincode(鏈碼/智能合約) - Chaincode分區執行,根據交易順序、所需信任級別的限制、驗證跨節點類型、優化網絡規模和性能
- Ledger Features (賬本) -
不可更改、共享帳本記錄了每個channle的完整的交易歷史,包括類SQL的查詢能力以保證高效的審計和糾紛解決 - Privacy through Channels - (跨channles隱私)
通道能滿足競爭企業和受監管行業在普通網絡在進行多邊交易能滿足高隱私和保密需求。 - Security & Membership Services (安全和成員服務) -
帶權限的成員管理提供了可信的區塊鏈網絡,參與者值得所有的交易可以被有授權的監管和審計人員探測和跟蹤。 - Consensus (共識) - Fabric 獨特的共識機制能滿足企業對靈活性和可擴展性的需求。
Fabric 功能
Hyperledger Fabric 是分布式帳本(DLT)的一個獨特實現,采用模塊化區塊鏈架構,其提供了企業所需的網絡安全、可擴展性、保密性和性能。其主要的區塊鏈網絡功能包括:
- Identity management 身份管理
Hyperledger Fabric 提供用戶識別服務來管理用戶的ID和參與者在網絡內的授權。訪問控制列表可以作為額外的許可層提供特定網絡操作授權。比如,一個特定的用戶ID可以執行chaincode應用,但是無法部署新的chaincode。
用戶之間相互知道身份,但是并不知道相互之間做了什么。
- Privacy and confidentiality 隱私與保密
Hyperledger Fabric 使競爭商業組織、任何需要私有、保密交易的組織共存在同一個許可網絡中。私有channel限制消息路徑來給特定子網成員完成隱私和保密交易。沒有該channel權限的用戶無法見到和訪問channel的任何數據,包括交易、成員和通道數據。
- Efficient processing 高效的處理
Hyperledger Fabric 根據節點類型分配網絡角色。為給網絡提供并發和并行,交易執行從交易共識和承諾中分開。執行交易先于共識是每個peer節點能同時處理多個交易。并發執行提高了每個peer節點的執行效率,加速了分發交易到 ordering 服務。
除了能夠進行并行處理之外,還使交易處理和帳本維護的節點得到了拆分,peer節點沒有了共識的工作負載。這樣分工同樣降低了授權和認證的處理需求;所有peer節點不需要信任全部 ordering 節點,反之亦然,因此處理能被獨立與對方認可外運行
- Chaincode functionality 鏈碼/智能合約功能
Chaincode應用編碼了在channel上執行特定類型交易的邏輯。Chaincode定義資產所有權變更的參數,例如,確保轉讓所有權的所有交易都遵守相同的規則和要求。System chaincode 是定義了整個channel操作參數的chaincode。生命周期和配置system chaincode定義channle的規則;背書和驗證system chaincode定義了背書和驗證交易的需求。
- Modular design 模塊化設計
Hyperledger Fabric實現了模塊化設計,網絡設計者能根據需求選擇功能。比如特定的識別、共識、加密算法可以插入任何 fabric網絡。因此,其是一個任何行業和公共領域都可以使用的通用區塊鏈架構,保證其網絡可以跨市場、監管和地理邊境進行互操作。相比之下,其他競爭對手大多是受限于特定領域和行業的。
Fabric 模型
- Assets 資產
資產可以是有形(實體和硬件)或無形(合同和知識產權)的??梢院芊奖阍诳蛻舳薺avascript定義資產,在你的Fabric應用中使用,通過Fabric Composer工具。
Fabric支持資產的交換,通過未使用交易輸出作為后續交易的輸入。資產(和資產注冊)在Fabric中作為鍵值對的集合存在,在channel帳本中帶狀態變更記錄作為交易。Fabric允許任何資產采用二進制或JSON格式表示。
- Chaincode
Chaincode 是定義資產和修改資產的交易指令的軟件。也就是說,它就是業務邏輯。chaincode執行讀取和修改鍵值對和其它狀態數據庫信息的規則。chaincode 函數基于帳本當前狀態數據庫執行,通過交易提案初始化。chaincode 執行結果是一系列鍵值對寫入,其被提交到網絡并被所有peer節點的帳本記錄。
- Ledger Features 帳本特性
帳本是fabric中所有狀態轉換的記錄,其記錄為順序、防篡改。狀態轉換是參與方提交的chaincode的執行結果。每個交易結果是一系列鍵值對提交給帳本來創建、更新或刪除。
帳本由一個區塊鏈來保持不可變更、順序記錄在區塊中,同時一個狀態數據庫來維護fabric當前狀態。每個channel一個賬本。每個peer維護所屬每個channel的一個賬本拷貝。
檢索和更新賬本使用基于key查找、范圍檢索和組合key檢索
只讀檢索使用富檢索語言(如果使用 CouchDB 作為狀態數據庫)
只讀歷史檢索 - 檢索一個key的賬本歷史,可以查看數據來源(enabling data provenance scenarios)
交易由各版本的鍵值對組成,chaincode (讀集合)讀取的和chaincode寫入的(寫集合)
交易包括每個背書peer的簽名,提交到ordering服務
交易被ordered(排序?共識)進區塊,從ordering服務發布到channel的peer節點中
peer節點根據背書策略驗證交易并執行策略
在添加新塊之前,將執行版本檢查來保證資產的狀態從chaincode執行時刻開始沒有被改變
一旦交易被驗證和提交就不可以被改變
一個channel的帳本包括了配置區塊,其定義了策略、訪問控制列表和其它相關信息
channel 包括成員服務提供者實例允許從不同證書機構加密材料。閱讀帳本主題,深入了解數據庫、存儲結構和"檢索能力".
Privacy through Channels 跨通道隱私
Fabric 實現了基于每個channel的不可變帳本,同時chaincode可以操作和修改資產的當前狀態(比如,更新鍵值對)。一個賬本存在于一個channel范圍 - 它可以被整個網絡共享(假設每個參與者都在一個共同的channel內操作) - 或者可以私有給有一組特定的參與者。
在后續,這些參與者將能創建一個分離的channel,因此隔離/分離他們的交易和賬本。Fabric甚至能解決這樣的場景:希望彌合全局透明度和隱私之間的差距。Chaincode僅安裝在需要獲取資產狀態來執行讀寫操作的peers(換句話說,如果一個chaincode沒有安裝一個peer,它將不能與賬本交互)。為了更進一步的隔離數據,chaincode內的值可以在附到賬本前使用通用的加密算法,如SHA-256,來加密(部分或全部)。
- Security & Membership Services 安全和成員服務
Hyperledger Fabric 加強了交易網絡,所有參與者都有已知的身份。公鑰基礎設施用來生成與組織,網絡組件以及最終用戶或客戶端應用程序相關聯的加密證書。因此,數據訪問控制可以在網絡和channel層面進行操作和管理。Fabric的“許可”概念,加上channel的存在和功能,有助于解決隱私和機密性至關重要的場景。
參看 Fabric CA章節來更好的理解加密的實現,以及在Fabric中的簽名、證明、驗證實現。
- Consensus 共識
在分布式帳本技術中,共識最近變成一個實現獨立功能的特定算法的同義詞。然后,共識不僅是簡單的同意交易的順序,它是貫穿了整個交易流程中的基本角色,從提案、背書、到確認順序、驗證和承諾,Hyperledger Fabric中強調這樣差異。簡單來說,共識是對一個塊內一組交易正確性的全生命周期驗證。
當一個塊內交易的順序和結果符合明確的政策標準檢查時,共識最終達成。這些檢查和平衡發生在一個交易的生命周期內,包括的背書策略使用,指定特定成員必須對特定交易等級背書;同時系統chaincode保證這些策略被執行和堅持。在承諾前,peers將執行系統chaincode來保證足夠的背書存在,而且它們是從恰當的實體發布而來。更進一步,當帳本的當前狀態被同意時將進行版本檢查,在任何包括交易的區塊被附加的帳本前。這個最終的檢查時為了保證避免雙重支付和其它可能可能導致危機數據完整性的其它威脅,并允許對非靜態變量執行函數。
除了大量背書、有效性和版本檢查之外,同時還有在交易流程中所有方向上持續存在的身份識別。訪問控制列表在網絡層上分級實現(從ordering服務下到channels),并且隨著交易穿過不同架構組件,payloads(負載在不同層次上是不同的)被重復簽名,驗證和認證。 總而言之,共識不僅僅局限于一批交易的順序達成一致,而是作為在交易從提案到承諾的過程中進行持續驗證的副產品而實現的總體。
圓方圓學院匯集大批區塊鏈名師,打造精品的區塊鏈技術課程。 在各大平臺都長期有優質免費公開課,歡迎報名收看。
公開課地址:https://ke.qq.com/course/345101