Hyperledger Fabric介紹
Hyperledger (超級賬本)是一組開源工具,旨在構(gòu)建一個強(qiáng)大的、業(yè)務(wù)驅(qū)動的區(qū)塊鏈框架。
Hyperledger (超級賬本)是區(qū)塊鏈行業(yè)中最大的項目之一,它由一組開源工具和多個子項目組成。該項目是由 Linux 基金會主辦的一個全球協(xié)作項目,其中包括一些不同領(lǐng)域的領(lǐng)導(dǎo)者們,這些領(lǐng)導(dǎo)者們的目標(biāo)是建立一個強(qiáng)大的、業(yè)務(wù)驅(qū)動的區(qū)塊鏈框架。
區(qū)塊鏈網(wǎng)絡(luò)主要有三種類型:公共區(qū)塊鏈、聯(lián)盟或聯(lián)合區(qū)塊鏈,以及私有區(qū)塊鏈。Hyperledger 是一個區(qū)塊鏈框架,旨在幫助公司建立私人或聯(lián)盟許可的區(qū)塊鏈網(wǎng)絡(luò),在該網(wǎng)絡(luò)中,多個組織可以共享控制和操作網(wǎng)絡(luò)內(nèi)節(jié)點的權(quán)限。
因為區(qū)塊鏈?zhǔn)且粋€透明的,基于不可變模式的安全的去中心化系統(tǒng),所以它被認(rèn)為是傳統(tǒng)的供應(yīng)鏈行業(yè)改變游戲規(guī)則的一種解決方案。它可以通過以下方式支持有效的供應(yīng)鏈系統(tǒng):
- 跟蹤整個區(qū)塊鏈中的產(chǎn)品
- 校驗和驗證區(qū)塊鏈中的產(chǎn)品
- 在供應(yīng)鏈參與者之間共享整個區(qū)塊鏈的信息
- 提供可審核性
本文通過食品供應(yīng)鏈的例子來解釋 Hyperledger 區(qū)塊鏈?zhǔn)侨绾胃淖儌鹘y(tǒng)供應(yīng)鏈系統(tǒng)的。
食品行業(yè)供應(yīng)鏈
傳統(tǒng)供應(yīng)鏈效率低下的主要原因是由于缺乏透明度而導(dǎo)致報告不可靠和競爭上的劣勢。
在傳統(tǒng)的供應(yīng)鏈模式中,有關(guān)實體的信息對該區(qū)塊鏈中的其他人來說并不完全透明,這就導(dǎo)致了不準(zhǔn)確的報告和缺乏互操作性問題。電子郵件和印刷文檔提供了一些信息,但它們不可能包含完整詳細(xì)的可見性數(shù)據(jù),因為很難在整個供應(yīng)鏈中去追蹤產(chǎn)品。這也使消費者幾乎不可能知道產(chǎn)品的真正價值和來源。
食品行業(yè)的供應(yīng)鏈環(huán)境復(fù)雜,多個參與者需要協(xié)作將貨物運(yùn)送到最終目的地 —— 客戶手中。下圖顯示了食品供應(yīng)鏈(多級)網(wǎng)絡(luò)中的主要參與者。
典型的食品供應(yīng)鏈
該區(qū)塊鏈的每個階段都會引入潛在的安全問題、整合問題和其他低效問題。目前食品供應(yīng)鏈中的主要威脅仍然是假冒食品和食品欺詐。
基于 Hyperledger 區(qū)塊鏈的食品跟蹤系統(tǒng)可實現(xiàn)對食品信息全面的可視性和和可追溯性。更重要的是,它以一種不變但可行的方式來記錄產(chǎn)品細(xì)節(jié),確保食品信息的真實性。最終用戶通過在不可變框架上共享產(chǎn)品的詳細(xì)信息,可以自我驗證產(chǎn)品的真實性。
Hyperledger Fabric
Hyperledger Fabric 是 Hyperledger 項目的基石。它是基于許可的區(qū)塊鏈,或者更準(zhǔn)確地說是一種分布式分類帳技術(shù)(DLT),該技術(shù)最初由 IBM 公司和 Digital Asset 創(chuàng)建。分布式分類帳技術(shù)被設(shè)計為具有不同組件的模塊化框架(概述如下)。它也是提供可插入的共識模型的一種靈活的解決方案,盡管它目前僅提供基于投票的許可共識(假設(shè)今天的 Hyperledger 網(wǎng)絡(luò)在部分可信賴的環(huán)境中運(yùn)行)。
鑒于此,無需匿名礦工來驗證交易,也無需用作激勵措施的相關(guān)貨幣。所有的參與者必須經(jīng)過身份驗證才能參與到該區(qū)塊鏈進(jìn)行交易。與以太坊一樣,Hyperledger Fabric 支持智能合約,在 Hyperledger 中稱為 Chaincodes,這些合約描述并執(zhí)行系統(tǒng)的應(yīng)用程序邏輯。
然而,與以太坊不同,Hyperledger Fabric 不需要昂貴的挖礦計算來提交交易,因此它有助于構(gòu)建可以在更短的延遲內(nèi)進(jìn)行擴(kuò)展的區(qū)塊鏈。
Hyperledger Fabric 不同于以太坊或比特幣這樣的區(qū)塊鏈,不僅在于它們類型不同,或者說是它與貨幣無關(guān),而且它們在內(nèi)部機(jī)制方面也不同。以下是典型的 Hyperledger 網(wǎng)絡(luò)的關(guān)鍵要素:
- 賬本:存儲了一系列塊,這些塊保留了所有狀態(tài)交易的所有不可變歷史記錄。
- 節(jié)點:區(qū)塊鏈的邏輯實體。它有三種類型:
- 客戶端:是代表用戶向網(wǎng)絡(luò)提交事務(wù)的應(yīng)用程序。
- 對等體:是提交交易并維護(hù)分類帳狀態(tài)的實體。
- 排序者 在客戶端和對等體之間創(chuàng)建共享通信渠道,還將區(qū)塊鏈交易打包成塊發(fā)送給遵從的對等體節(jié)點。
除了這些要素,Hyperledger Fabric 還有以下關(guān)鍵設(shè)計功能:
- 鏈碼:類似于其它諸如以太坊的網(wǎng)絡(luò)中的智能合約。它是用一種更高級的語言編寫的程序,在針對分類帳當(dāng)前狀態(tài)的數(shù)據(jù)庫執(zhí)行。
- 通道:用于在多個網(wǎng)絡(luò)成員之間共享機(jī)密信息的專用通信子網(wǎng)。每筆交易都在一個只有經(jīng)過身份驗證和授權(quán)的各方可見的通道上執(zhí)行。
- 背書人 驗證交易,調(diào)用鏈碼,并將背書的交易結(jié)果返回給調(diào)用應(yīng)用程序。
- 成員服務(wù)提供商(MSP)通過頒發(fā)和驗證證書來提供身份驗證和身份驗證過程。MSP 確定信任哪些證書頒發(fā)機(jī)構(gòu)(CA)去定義信任域的成員,并確定成員可能扮演的特定角色(成員、管理員等)。
如何驗證交易
探究一筆交易是如何通過驗證的是理解 Hyperledger Fabric 在底層如何工作的好方法。此圖顯示了在典型的 Hyperledger 網(wǎng)絡(luò)中處理交易的端到端系統(tǒng)流程:
Hyperledger 交易驗證流程
首先,客戶端通過向基于 Hyperledger Fabric 的應(yīng)用程序客戶端發(fā)送請求來啟動交易,該客戶端將交易提議提交給背書對等體。這些對等體通過執(zhí)行由交易指定的鏈碼(使用該狀態(tài)的本地副本)來模擬該交易,并將結(jié)果發(fā)送回應(yīng)用程序。此時,應(yīng)用程序?qū)⒔灰着c背書相結(jié)合,并將其廣播給排序服務(wù)。排序服務(wù)檢查背書并為每個通道創(chuàng)建一個交易塊,然后將其廣播給通道中的其它節(jié)點,對的體驗證該交易并進(jìn)行提交。
Hyperledger Fabric 區(qū)塊鏈可以通過透明的、不變的和共享的食品來源數(shù)據(jù)記錄、處理數(shù)據(jù),及運(yùn)輸細(xì)節(jié)等信息將食品供應(yīng)鏈中的參與者們連接起來。鏈碼由食品供應(yīng)鏈中的授權(quán)參與者來調(diào)用。所有執(zhí)行的交易記錄都永久保存在分類帳中,所有參與者都可以查看此信息。
Hyperledger Composer
除了 Fabric 或 Iroha 等區(qū)塊鏈框架外,Hyperledger 項目還提供了 Composer、Explorer 和 Cello 等工具。 Hyperledger Composer 提供了一個工具集,可幫助你更輕松地構(gòu)建區(qū)塊鏈應(yīng)用程序。 它包括:
- CTO,一種建模語言
- Playground,一種基于瀏覽器的開發(fā)工具,用于快速測試和部署
- 命令行界面(CLI)工具
Composer 支持 Hyperledger Fabric 的運(yùn)行時和基礎(chǔ)架構(gòu),在內(nèi)部,Composer 的 API 使用底層 Fabric 的 API。Composer 在 Fabric 上運(yùn)行,這意味著 Composer 生成的業(yè)務(wù)網(wǎng)絡(luò)可以部署到 Hyperledger Fabric 執(zhí)行。