Hyperledger Fabric 區塊鏈開發詳解

Hyperledger是一個旨在推動區塊鏈跨行業應用的開源項目,由Linux基金會在2015年12月主導發起該項目,成員包括金融、銀行、物聯網、供應鏈、製造和科技等多個行業的領頭羊,託管了衆多面向企業的區塊鏈開源框架和工具。

Hyperledger及Fabric項目概述

Hyperledger Fabric(後文簡稱Fabric)是其中發展最好的一個企業級區塊鏈平臺,最初由Digital Asset和IBM貢獻,目前已經應用於沃爾瑪的食物溯源鏈(Foodtrust)和馬士基的物流跟蹤鏈(TradeLens)中,代表了當下企業級區塊鏈應用的最高水平。可以認爲Fabric是一種聯盟鏈(Consortium Blockchain)平臺,它適合構建跨越多個企業邊界的去中心化應用。

由於Fabric項目的目標是應用於相對可信的企業聯盟環境,因此其設計思路與比特幣、以太坊等公鏈平臺有明顯的差異。Fabric借鑑了區塊鏈的數據結構,但引入了相當多的身份驗證與權限控制機制,以及數據隱私保護機制,以適應企業級應用的要求。同時由於企業聯盟環境要比完全開放的公鏈環境可控,因此Fabric沒有強調其共識體系對拜占庭容錯的實現,允許使用 非拜占庭容錯算法建立共識,從而可以達到相當實用的交易吞吐量。

Fabric的定位與特點

毫無疑問,Fabric是受到比特幣的啓發而誕生的,因此它借鑑了比特幣、以太坊這些公鏈中的一些核心特性,例如採用不可篡改的區塊鏈結構來保存數據、採用非對稱加密技術來進行身份識別 與認證、支持智能合約等等。

但是Fabric定位於企業級的分佈式賬本技術(DLT - Distributed Ledger Technology)平臺,它的主要目的是爲跨越多個企業邊界的活動提供不可篡改的分佈式記賬平臺。例如在食物溯源應用中,爲了讓消費者可以瞭解到所購買食物是否安全,就必須將從農場到加工商、分銷商、 零售商乃至監管機構等各個環節的檢驗與放行信息記錄到區塊鏈上,以保證溯源信息的透明與可信。

因此Fabric是一種聯盟鏈(Consortium Blockchain),它適合在多個企業間實現分佈式記賬,這一定位使Fabric的實現與以太坊這樣的公鏈有了明顯的差異:

分佈式賬本 vs. 區塊鏈

分佈式賬本是比區塊鏈更加寬泛的概念,可以認爲區塊鏈只是分佈式賬本的一種實現技術,其他的分佈式賬本實現還包括哈希圖等。

去中心化 vs. 分佈式

Fabric淡化了去中心化(Decentralized),而以分佈式(Distributed)代替,這一思路帶來了系統設計與實現上的巨大影響。例如,在Fabric中,採用中心化的CA機制來發放證書,只有持有有效證書的節點和用戶纔可以訪問區塊鏈上的賬本數據。因此Fabric是許可制/Permissioned的區塊鏈,這與不需要許可/Permissionless的以太坊這樣的公鍊形成了鮮明的對比。

拜占庭容錯 vs. 崩潰容錯

由於採用許可機制,Fabric也淡化了對不可信(Trustless)環境下共識達成的依賴性,而假設聯盟鏈中的企業有可能是值得信賴的,因此並不依賴於工作量證明這樣的拜占庭容錯算法,雖然Fabric模塊化的設計可以支持引入不同的共識算法實現,但目前的產品化方案是Kafka共識,它顯然是不能對抗拜占庭錯誤的,不過對不可信環境支持的淡化處理有利於提高交易的吞吐量,這對於企 業級應用也是有益的。

數據隱私保護

在另一方面,Fabric強化了隱私保護能力。例如,Fabric支持在同一套企業網絡上建立多個不同的通道/Channel,每一個通道都有自己的區塊鏈和訪問控制,彼此互不影響,這有利於複用基礎設施,例如不同企業間的銷售部門可以建立一個通道來分享市場數據,而這些企業間的 研發部門可以建立另一個通道來分享技術數據。

Fabric並不是唯一的聯盟鏈解決方案,但目前可以說是最複雜的企業聯盟鏈實現,這種複雜性源於設計者對應用場景的假設和推演,以及對Fabric廣泛適用性的考量,這是我們在學習過程中需要換位思考的一點。

課程內容概述

本課程適合nodejs開發人員快速掌握超級賬本Fabric區塊鏈的設計思路、 核心概念、網絡搭建、鏈碼及應用開發等知識點,課程主要內容簡述如下:

第一章、課程概述

簡介Fabric項目來源、定位特點、適用場景以及其與公鏈平臺的重要區別。

第二章、初識Fabric

創建一個最小CA,搭建一個最小Farbic網絡,開發一個最小Fabric鏈碼,實現一個最小Fabric應用,從零開始學習並掌握Farbic中的核心概念、設計思路、實用工具與開發模型。

第三章、身份與權限管理機制

深入學習Fabric中的身份驗證機制與權限管理機制,理解證書、成員服務提供器、 策略、訪問控制清單等核心概念並掌握其創建、部署和使用方法。

第四章、通道配置與更新

深入學習Fabric的通道配置初始化與更新流程、相關數據結構以及配置工具的操作方法。

第五章、鏈碼開發進階

學習理解鏈碼運行機制、掌握狀態歷史跟蹤、富查詢、Contract API等鏈碼開發進階知識。

第六章、應用開發進階

學習掌握通道事件監聽、Network API等應用開發進階知識。

希望儘快學習課程的請訪問:

  1. Hyperledger Fabric Node.js 區塊鏈開發詳解
  2. Hyperledger Fabric java 區塊鏈開發詳解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章