Hyperledger是一個旨在推進區塊鏈跨行業應用的開源項目,由Linux基金會在2015年12月主導發起該項目,成員包括金融、銀行、物聯網、供應鏈、製造和科技等多個行業的領頭羊,託管了衆多面向企業的區塊鏈開源框架和工具。java
Hyperledger Fabric(後文簡稱Fabric)是其中發展最好的一個企業級區塊鏈平臺,最初由Digital Asset和IBM貢獻,目前已經應用於沃爾瑪的食物溯源鏈(Foodtrust)和馬士基的物流跟蹤鏈(TradeLens)中,表明了當下企業級區塊鏈應用的最高水平。能夠認爲Fabric是一種聯盟鏈(Consortium Blockchain)平臺,它適合構建跨越多個企業邊界的去中心化應用。node
因爲Fabric項目的目標是應用於相對可信的企業聯盟環境,所以其設計思路與比特幣、以太坊等公鏈平臺有明顯的差別。Fabric借鑑了區塊鏈的數據結構,但引入了至關多的身份驗證與權限控制機制,以及數據隱私保護機制,以適應企業級應用的要求。同時因爲企業聯盟環境要比徹底開放的公鏈環境可控,所以Fabric沒有強調其共識體系對拜占庭容錯的實現,容許使用 非拜占庭容錯算法創建共識,從而能夠達到至關實用的交易吞吐量。git
毫無疑問,Fabric是受到比特幣的啓發而誕生的,所以它借鑑了比特幣、以太坊這些公鏈中的一些核心特性,例如採用不可篡改的區塊鏈結構來保存數據、採用非對稱加密技術來進行身份識別 與認證、支持智能合約等等。算法
可是Fabric定位於企業級的分佈式帳本技術(DLT - Distributed Ledger Technology)平臺,它的主要目的是爲跨越多個企業邊界的活動提供不可篡改的分佈式記帳平臺。例如在食物溯源應用中,爲了讓消費者能夠了解到所購買食物是否安全,就必須將從農場到加工商、分銷商、 零售商乃至監管機構等各個環節的檢驗與放行信息記錄到區塊鏈上,以保證溯源信息的透明與可信。安全
所以Fabric是一種聯盟鏈(Consortium Blockchain),它適合在多個企業間實現分佈式記帳,這必定位使Fabric的實現與以太坊這樣的公鏈有了明顯的差別:網絡
分佈式帳本是比區塊鏈更加寬泛的概念,能夠認爲區塊鏈只是分佈式帳本的一種實現技術,其餘的分佈式帳本實現還包括哈希圖等。數據結構
Fabric淡化了去中心化(Decentralized),而以分佈式(Distributed)代替,這一思路帶來了系統設計與實現上的巨大影響。例如,在Fabric中,採用中心化的CA機制來發放證書,只有持有有效證書的節點和用戶才能夠訪問區塊鏈上的帳本數據。所以Fabric是許可制/Permissioned的區塊鏈,這與不須要許可/Permissionless的以太坊這樣的公鏈造成了鮮明的對比。框架
因爲採用許可機制,Fabric也淡化了對不可信(Trustless)環境下共識達成的依賴性,而假設聯盟鏈中的企業有多是值得信賴的,所以並不依賴於工做量證實這樣的拜占庭容錯算法,雖然Fabric模塊化的設計能夠支持引入不一樣的共識算法實現,但目前的產品化方案是Kafka共識,它顯然是不能對抗拜占庭錯誤的,不過對不可信環境支持的淡化處理有利於提升交易的吞吐量,這對於企 業級應用也是有益的。less
在另外一方面,Fabric強化了隱私保護能力。例如,Fabric支持在同一套企業網絡上創建多個不一樣的通道/Channel,每個通道都有本身的區塊鏈和訪問控制,彼此互不影響,這有利於複用基礎設施,例如不一樣企業間的銷售部門能夠創建一個通道來分享市場數據,而這些企業間的 研發部門能夠創建另外一個通道來分享技術數據。分佈式
Fabric並非惟一的聯盟鏈解決方案,但目前能夠說是最複雜的企業聯盟鏈實現,這種複雜性源於設計者對應用場景的假設和推演,以及對Fabric普遍適用性的考量,這是咱們在學習過程當中須要換位思考的一點。
本課程適合nodejs開發人員快速掌握超級帳本Fabric區塊鏈的設計思路、 核心概念、網絡搭建、鏈碼及應用開發等知識點,課程主要內容簡述以下:
簡介Fabric項目來源、定位特色、適用場景以及其與公鏈平臺的重要區別。
建立一個最小CA,搭建一個最小Farbic網絡,開發一個最小Fabric鏈碼,實現一個最小Fabric應用,從零開始學習並掌握Farbic中的核心概念、設計思路、實用工具與開發模型。
深刻學習Fabric中的身份驗證機制與權限管理機制,理解證書、成員服務提供器、 策略、訪問控制清單等核心概念並掌握其建立、部署和使用方法。
深刻學習Fabric的通道配置初始化與更新流程、相關數據結構以及配置工具的操做方法。
學習理解鏈碼運行機制、掌握狀態歷史跟蹤、富查詢、Contract API等鏈碼開發進階知識。
學習掌握通道事件監聽、Network API等應用開發進階知識。
但願儘快學習課程的請訪問: