Hyperledger Fabric是一個分佈式帳本解決方案的平臺,採用模塊化架構,提供高度的機密性、彈性、靈活性和可伸縮性。它被設計爲支持不一樣組件的可插拔實現,並適應存在於整個經濟生態系統中的複雜性和複雜性。數據庫
區塊鏈網絡的核心是一個分佈式帳本,它記錄在網絡上發生的全部交易。編程
區塊鏈帳本一般被描述爲分散的,由於它在許多網絡參與者之間複製,每一個參與者都在維護它。去中心化和協做化是現實世界中企業進行商品交換和服務的兩個重要的屬性。網絡
除了去中心化和協做化,記錄到區塊鏈的信息只用於追加,使用加密技術保證一旦一個交易被添加到分類賬中,它就不能被修改。這種「不變性」的屬性使得肯定信息的來源變得簡單,由於參與者能夠肯定信息在過後沒有被改變。這也是區塊鏈被描述爲證實系統的緣由架構
爲了支持信息的持續更新——並使一整套帳本功能(交易、查詢等)得以實現——區塊鏈網絡使用智能合約來提供對帳本的受控訪問。編程語言
智能契約不只是封裝信息並使其在網絡中保持簡單的關鍵機制,還能夠編寫爲容許參與者自動執行某些方面的交易。分佈式
例如,智能合同能夠規訂貨物的運輸成本,運輸費用取決於貨物到達的速度。根據雙方贊成的條款並寫入總賬,當收到款項時,相應的資金就會自動轉手。模塊化
共識機制是用來使網絡上的分類賬交易保持同步的過程。共識機制確保只有當交易被適當的參與者批准時,總帳纔會更新,而且當總帳更新時,它們會以相同的順序更新相同的交易。區塊鏈
之後你會學到更多關於帳本、智能合同和共識的知識。目前,把區塊鏈看做一個共享的、複製的交易系統就足夠了,它經過智能契約進行更新,並經過一個稱爲共識的協做過程保持一致的同步。加密
傳統的商業網絡中成員相互進行交易,可是他們都各自維護各自的帳本。基本結構以下設計
現代技術已經把這個過程從石碑和紙質文件夾帶到硬盤驅動器和雲平臺,但其底層結構是相同的。管理網絡參與者身份的系統是不存在的,溯源是一件很困難的事情,可能須要耗費幾天甚至更多時間。合同必須手動簽署,而且系統中的每一個數據庫都包含惟一的信息,所以存在單點故障。
若是商業網絡再也不像「現代」交易系統那樣,鑽着無效率的老鼠窩,而是擁有在網絡上創建身份、執行交易和存儲數據的標準方法,那會怎麼樣呢?若是能夠經過查看交易列表來肯定資產的來源,而這些交易一旦寫好,就不能更改,所以能夠信任,那該怎麼辦呢?
區塊鏈中的商業網絡以下圖所示:
這是一個區塊鏈網絡,其中每一個參與者都有本身複製的帳本。除了共享分類賬信息外,更新分類賬的過程也是共享的。不像今天的系統,參與者的私人程序被用來更新他們的私人帳本,區塊鏈系統有共享的程序來更新共享的帳本。
區塊鏈網絡經過共享帳原本協調其業務網絡,能夠減小與私人信息和處理相關的時間、成本和風險,同時提升信任和可見性。
區塊鏈還有不少其餘重要的細節,但它們都與信息共享和過程的基本理念有關。
Hyperledger Fabric是Hyperledger的區塊鏈項目之一。同其餘區塊鏈技術同樣,它有一個帳本,使用智能合同,是一個參與者管理交易的系統。
與其餘區塊鏈不一樣的是, Hyperledger Fabric 是私有的,而且只有被容許的成員才能夠加入到這個網絡中( Permissioned )。Hyperledger Fabric網絡的成員經過可信的成員服務提供商(MSP)註冊。
Hyperledger Fabric還提供了建立通道的能力,容許一組參與者建立單獨的交易帳本。對於網絡來講,這是一個特別重要的選擇,由於有些參與者多是競爭對手,而不但願他們所作的每一筆交易——例如,他們提供給某些參與者而不是其餘參與者的特殊價格——讓每一個參與者都知道。若是兩個參與者組成了一個通道,那麼這些參與者——沒有其餘參與者——擁有該通道的帳本的副本
Hyperledger Fabric有一個由兩個組件組成的ledger子系統:世界狀態和事務日誌。每一個參與者都有一份屬於他們所屬的每一個超級帳本網絡的帳本副本。
世界狀態組件描述了在給定時間點的帳本的狀態。這是總帳的數據庫。事務日誌組件記錄致使當前世界狀態值的全部事務;這是世界狀態的更新歷史。所以,帳本是世界狀態數據庫和交易日誌歷史的組合。
帳本有一個世界狀態的可替換數據存儲。默認狀況下,這是一個Level DB 鍵-值存儲數據庫。事務日誌不須要是可插入的。它只是簡單地記錄區塊鏈網絡使用的帳本數據庫的先後值。
Hyperledger Fabric智能合約是用鏈碼編寫的,在區塊鏈外部的應用程序須要與帳本交互時調用該智能合約。在大多數狀況下,鏈碼只與分類帳的數據庫組件、世界狀態(例如查詢它)交互,而不是與事務日誌交互。
鏈碼能夠用幾種編程語言實現。目前支持Go和Node。
根據網絡的須要,企業對企業(B2B)網絡的參與者可能對共享多少信息很是敏感。Hyperledger Fabric支持隱私(使用通道)是關鍵運營需求的網絡,以及相對開放的網絡。
事務必須按照它們發生的順序寫入帳本,即便它們可能在網絡內的不一樣參與者之間。要作到這一點,必須創建交易的順序,並對錯誤(或惡意)插入帳本的非法交易進行拒絕。