Hyperledger Fabric 介紹

2019-09-11 10:59:00

Hyperledger (超級賬本)是一組開源工具,旨在構建一個強大的、業務驅動的區塊鏈框架。

Hyperledger (超級賬本)是區塊鏈行業中最大的專案之一,它由一組開源工具和多個子專案組成。該專案是由 Linux 基金會主辦的一個全球共同作業專案,其中包括一些不同領域的領導者們,這些領導者們的目標是建立一個強大的、業務驅動的區塊鏈框架。

區塊鏈網路主要有三種型別:公共區塊鏈、聯盟或聯合區塊鏈,以及私有區塊鏈。Hyperledger 是一個區塊鏈框架,旨在幫助公司建立私人或聯盟許可的區塊鏈網路,在該網路中,多個組織可以共用控制和操作網路內節點的許可權。

因為區塊鏈是一個透明的,基於不可變模式的安全的去中心化系統,所以它被認為是傳統的供應鏈行業改變遊戲規則的一種解決方案。它可以通過以下方式支援有效的供應鏈系統:

  • 跟蹤整個區塊鏈中的產品
  • 校驗和驗證區塊鏈中的產品
  • 在供應鏈參與者之間共用整個區塊鏈的資訊
  • 提供可稽核性

本文通過食品供應鏈的例子來解釋 Hyperledger 區塊鏈是如何改變傳統供應鏈系統的。

食品行業供應鏈

傳統供應鏈效率低下的主要原因是由於缺乏透明度而導致報告不可靠和競爭上的劣勢。

在傳統的供應鏈模式中,有關實體的資訊對該區塊鏈中的其他人來說並不完全透明,這就導致了不準確的報告和缺乏互操作性問題。電子郵件和印刷文件提供了一些資訊,但它們不可能包含完整詳細的可見性資料,因為很難在整個供應鏈中去追蹤產品。這也使消費者幾乎不可能知道產品的真正價值和來源。

食品行業的供應鏈環境複雜,多個參與者需要共同作業將貨物運送到最終目的地 —— 客戶手中。下圖顯示了食品供應鏈(多級)網路中的主要參與者。

典型的食品供應鏈

該區塊鏈的每個階段都會引入潛在的安全問題、整合問題和其他低效問題。目前食品供應鏈中的主要威脅仍然是假冒食品和食品欺詐。

基於 Hyperledger 區塊鏈的食品跟蹤系統可實現對食品資訊全面的可視性和和可追溯性。更重要的是,它以一種不變但可行的方式來記錄產品細節,確保食品資訊的真實性。終端使用者通過在不可變框架上共用產品的詳細資訊,可以自我驗證產品的真實性。

Hyperledger Fabric

Hyperledger Fabric 是 Hyperledger 專案的基石。它是基於許可的區塊鏈,或者更準確地說是一種分散式分類帳技術(DLT),該技術最初由 IBM 公司和 Digital Asset 建立。分散式分類帳技術被設計為具有不同元件的模組化框架(概述如下)。它也是提供可插入的共識模型的一種靈活的解決方案,儘管它目前僅提供基於投票的許可共識(假設今天的 Hyperledger 網路在部分可信賴的環境中執行)。

鑑於此,無需匿名礦工來驗證交易,也無需用作激勵措施的相關貨幣。所有的參與者必須經過身份驗證才能參與到該區塊鏈進行交易。與以太坊一樣,Hyperledger Fabric 支援智慧合約,在 Hyperledger 中稱為 Chaincodes鏈碼,這些合約描述並執行系統的應用程式邏輯。

然而,與以太坊不同,Hyperledger Fabric 不需要昂貴的挖礦計算來提交交易,因此它有助於構建可以在更短的延遲內進行擴充套件的區塊鏈。

Hyperledger Fabric 不同於以太坊或位元幣這樣的區塊鏈,不僅在於它們型別不同,或者說是它與貨幣無關,而且它們在內部機制方面也不同。以下是典型的 Hyperledger 網路的關鍵要素:

  • 賬本Ledgers:儲存了一系列塊,這些塊保留了所有狀態交易的所有不可變歷史記錄。
  • 節點Nodes:區塊鏈的邏輯實體。它有三種型別:
    • 用戶端Clients:是代表使用者向網路提交事務的應用程式。
    • 對等體Peers:是提交交易並維護分類帳狀態的實體。
    • 排序者Orderers 在用戶端和對等體之間建立共用通訊渠道,還將區塊鏈交易打包成塊傳送給遵從的對等體節點。

除了這些要素,Hyperledger Fabric 還有以下關鍵設計功能:

  • 鏈碼Chaincode:類似於其它諸如以太坊的網路中的智慧合約。它是用一種更高階的語言編寫的程式,在針對分類帳當前狀態的資料庫執行。
  • 通道Channels:用於在多個網路成員之間共用機密資訊的專用通訊子網。每筆交易都在一個只有經過身份驗證和授權的各方可見的通道上執行。
  • 背書人Endorsers 驗證交易,呼叫鏈碼,並將背書的交易結果返回給呼叫應用程式。
  • 成員服務提供商Membership Services Providers(MSP)通過頒發和驗證證書來提供身份驗證和身份驗證過程。MSP 確定信任哪些證書頒發機構(CA)去定義信任域的成員,並確定成員可能扮演的特定角色(成員、管理員等)。

如何驗證交易

探究一筆交易是如何通過驗證的是理解 Hyperledger Fabric 在底層如何工作的好方法。此圖顯示了在典型的 Hyperledger 網路中處理交易的端到端系統流程:

Hyperledger 交易驗證流程

首先,用戶端通過向基於 Hyperledger Fabric 的應用程式用戶端傳送請求來啟動交易,該用戶端將交易提議提交給背書對等體。這些對等體通過執行由交易指定的鏈碼(使用該狀態的本地副本)來模擬該交易,並將結果傳送回應用程式。此時,應用程式將交易與背書相結合,並將其廣播給排序服務Ordering Service。排序服務檢查背書並為每個通道建立一個交易塊,然後將其廣播給通道中的其它節點,對的體驗證該交易並進行提交。

Hyperledger Fabric 區塊鏈可以通過透明的、不變的和共用的食品來源資料記錄、處理資料,及運輸細節等資訊將食品供應鏈中的參與者們連線起來。鏈碼由食品供應鏈中的授權參與者來呼叫。所有執行的交易記錄都永久儲存在分類帳中,所有參與者都可以檢視此資訊。

Hyperledger Composer

除了 Fabric 或 Iroha 等區塊鏈框架外,Hyperledger 專案還提供了 Composer、Explorer 和 Cello 等工具。 Hyperledger Composer 提供了一個工具集,可幫助你更輕鬆地構建區塊鏈應用程式。 它包括:

  • CTO,一種建模語言
  • Playground,一種基於瀏覽器的開發工具,用於快速測試和部署
  • 命令列介面(CLI)工具

Composer 支援 Hyperledger Fabric 的執行時和基礎架構,在內部,Composer 的 API 使用底層 Fabric 的 API。Composer 在 Fabric 上執行,這意味著 Composer 生成的業務網路可以部署到 Hyperledger Fabric 執行。