Hyperledger Fabric介紹
轉載地址
https://blog.csdn.net/xiaonu123/article/details/81006936
簡介
Hyperledger介紹
超級賬本(Hyperledger)專案是首個面向企業應用場景的開源分散式賬本平臺。由linux基金會牽頭,包括 IBM 等 30家初始企業成員共同成立的。
Hyperledger Fabric是什麼
該專案定位是面向企業的分散式賬本平臺,引入許可權管理,設計上支援可插拔、可擴充套件,是首個面向聯盟鏈場景的開源專案。
Fabric 基於 Go 語言實現,主要包含 Fabric CA、Fabric SDK 多個相關的子專案。
與其它區塊鏈系統最大的不同點在於HyperLedger Fabric是私有的,而且是被許可的。但並不允許未知身份來參與HyperLedger Fabric網路(要求協議驗證事務並確保網路的安全),HyperLedger Fabric組織的成員可以通過一個Membership Service Provider(成員服務提供者即MSP)來註冊。
Hyperledger Fabric提供了一個獨特的可伸縮、可擴充套件的架構,這也是Hyperledger Fabric與其他區塊鏈解決方案的顯著區別。假如你正在計劃部署具備完整審查機制以及開源架構的企業級區塊鏈,Hyperledger Fabric是你的一個不錯的起點。
對於初學者,推薦首先閱讀下文中的簡介,以便於理解區塊鏈的工作原理、具有的主要特點以及Hyperledger Fabric中包含的元件。
HyperLedger Fabric也提供了建立通道(channel)的能力,允許一組參與者建立一個單獨的共同維護的交易賬本。所以這對於其它競爭對手的網路來說,這是很重要的選擇,例如:他們向特定的一組參與者提供了一個特別的價格,其它參與者享受不到這個特別價格。但是如果兩個參與者在同一個通道(channel),那麼這些參與者,以及其他參與者,都有該渠道的分類帳本。
什麼是分散式賬本
一個區塊鏈網路的核心是一個分散式賬本,在這個賬本中記錄了網路中發生的所有交易資訊。
區塊鏈賬本通常被定義為去中心化,這是因為在整個網路中,每個參與者都儲存著一個區塊鏈賬本的副本,所有參與者通過協作共同維護著賬本。接下來我們會看到,去中心化與協作這兩個特點在現實世界的商業貨物交易和商務服務中展現出的顯著優點。
除了去中心化與協作,區塊鏈的另一個顯著特點是資訊在只能以“附加”的方式記錄在區塊鏈中,同時使用加密技術保障了交易一旦被新增進賬本中,就無法被篡改。區塊鏈的這種不可篡改性使得資訊來源的確認變得異常容易,這是由於參與者可以肯定資訊一旦被寫入區塊鏈中就幾乎不可被篡改。這也是為什麼區塊鏈常常也被稱為證明的系統的原因。
什麼是智慧合約
HyperLedger Fabric的智慧合約是用Chaincode編寫的,為了持續的進行資訊的更新,以及對賬本進行管理(寫入交易,進行查詢等),區塊鏈網路引入了智慧合約來實現對賬本的訪問和控制。
智慧合約不僅僅可用於在區塊鏈網路中打包資訊,它們也可以被用於自動的執行由參與者定義的特定交易操作。
例如,買賣雙方可以定義一個智慧合約,以保證當賣方發貨的商品運送到達時,買方支付的貨款會自動轉賬給賣方。
什麼是隱私
根據網路的需要,企業對企業(B2B)網路的參與者可能對他們所共享的資訊非常敏感。對其他網路來說,隱私不會成為首要關注的問題。
HyperLedger Fabric支援需要將隱私(使用通道)作為關鍵操作需求的網路,同時也是相對開放的網路。
什麼是共識
保持網路中所有賬本交易的同步流程,就是共識。共識保證了賬本只會在交易雙方都確認後才進行更新。同時在賬本更新時,交易雙方能夠在賬本中的相同位置,更新一個相同的交易資訊。
這是一個經過徹底研究的電腦科學領域,有很多方法可以實現它,每一個都有不同的權衡。例如:PBFT(拜占庭容錯)可以為檔案副本提供一種機制,使其能夠相互通訊,從而保持每個副本的一致性。或者,在比特幣中,排序是通過一個名為“挖礦”的過程來實現的,在這個過程中,競爭的計算機競相解決一個加密難題,該難題定義了所有流程隨後構建的順序。
關於HyperLedger Fabric共享機制,它目前包括SOLO和Kafka,並將很快擴充套件到SBFT(簡化的拜占庭容錯)
區塊鏈為什麼切實可行
當前的記錄系統
自從商業資料記錄網路系統誕生以來,直到今天的交易網路並沒有發生太大的變化。在商業網路中的成員進行相互交易時,他們各自維護著自己獨立的交易記錄。同時,人們交易的物品——無論是16世紀佛蘭德的掛毯,還是現代的有價證券——都仍然需要在每次賣出交易過程中提供來源資訊,以確保賣方擁有所出售商品的所有權。
當前的商業網路就像下圖描述的一樣:
隨著科技的進步,上圖中的交易流程不斷演化發展,經歷了從使用石碑、使用紙質賬本、使用硬碟儲存器直到使用雲端計算平臺的不同階段,但流程的底層架構並沒有發生任何變化。並不存在一個可以統一管理網路參與者身份的系統,確認商品來源十分費勁,常常會耗費數天的時間明確證券的交易(包含數以萬計美元的數量)。人們必須簽訂合約並手動執行,每一個系統中的資料庫都包含著獨立的資訊並最終代表一個單點的錯誤。
在今天的資訊和過程共享斷裂的方法中,建立一個跨越商業網路的記錄系統是不可能的,儘管可見性和信任的需求是明確的。
區塊鏈的不同點
那我們為什麼不用“現代”的交易系統來替代這種效率低下的網路?新的商業網路可以具有標準的方法建立身份資訊,執行交易,並且儲存資料。為什麼不建立一個可信的交易鏈條記錄?通過查詢這個鏈條上的所有交易,來確定交易商品來源,並且這個鏈條上的資訊一旦被寫入,就無法被再次篡改。
以上描述的商業網路就如下圖所示:
這就是區塊鏈網路。在區塊鏈網路中,每一個參與者都保有一份賬本的副本。在區塊鏈網路中,不僅僅是賬本資訊會被共享,更新賬本的流程也是共享的。不同於目前的系統——參與者使用私有的程式對私有的賬本進行更新,而區塊鏈系統使用共享的程式對共享的賬本進行更新。
通過使用共享賬本協調整個商業網路,區塊鏈網路能夠減少時間、成本以及隱私資訊洩露的風險,並且能使流程更加可信和透明。
現在你已經明白了什麼是區塊鏈以及它的用途。同時還有許多其他的內容也非常重要,他們是資訊與流程共享的基礎知識。
其它團隊貢獻的Fabric專案
Hyperledger Sawtooth
該專案由Intel 等企業發起和貢獻的分散式賬本平臺,基於 python 語言實現,包含諾韋爾共識演算法,計時驗證(PoET), 它針對的是以最小的資源消耗處理大量的分散式驗證器。
Hyperledger Iroha
該專案定位是分散式賬本平臺框架,基於 C++ 語言的實現,設計上類似 Fabric,同時提供了基於 C++ 的區塊鏈開發環境,並考慮了移動端和web端的一些需求。
Hyperledger Burrow
該專案提供了支援以太坊虛擬機器的智慧合約區塊鏈平臺,並支援pos共識機制和許可權管理
Hyperledger Indy
該專案致力於打造一個基於區塊鏈和分散式賬本技術的數字中心管理平臺。該平臺支援去中心化,支援跨區塊鏈和跨應用的操作,可實現全球化的身份管理。
Hyperledger 工具篇
Hyperledger Cello
該專案的定位為區塊鏈管理平臺,提供區塊鏈即服務實現區塊鏈環境的快速部署,以及對區塊鏈平臺的執行時管理。
Hyperledger Composer
Composer 是一個協同工具,用以建立區塊鏈業務網路,加速智慧合約及其跨分散式賬本部署的發展。
Hyperledger Explorer
該專案定位是區塊鏈平臺的瀏覽器,基於 Nodejs 語言實現,提供 web 操作介面。使用者可以使用它來快速檢視底層區塊鏈平臺的執行資訊,如區塊個數、交易情況、網路狀況等。