天天看點

Fabric區塊鍊開發詳解

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

Fabric區塊鍊開發詳解

Hyperledger及Fabric項目概述

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

由于Fabric項目的目标是應用于相對可信的企業聯盟環境,是以其設計思路與比特币、以太坊等公鍊平台有明顯的差異。Fabric借鑒了區塊鍊的資料結構,但引入了相當多的身份驗證與權限控制機制,以及資料隐私保護機制,以适應企業級應用的要求。同時由于企業聯盟環境要比完全開放的公鍊環境可控,是以Fabric沒有強調其共識體系對拜占庭容錯的實作,允許使用 非拜占庭容錯算法建立共識,進而可以達到相當實用的交易吞吐量。

Fabric的定位與特點

毫無疑問,Fabric是受到比特币的啟發而誕生的,是以它借鑒了比特币、以太坊這些公鍊中的一些核心特性,例如采用不可篡改的區塊鍊結構來儲存資料、采用非對稱加密技術來進行身份識别 與認證、支援智能合約等等。

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

Fabric區塊鍊開發詳解

是以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等應用開發進階知識。

希望盡快學習課程的請通路Fabric區塊鍊開發詳解,本課程面向初學者,内容即包含Hyperledger Fabric的身份證書與MSP服務、權限政策、通道配置與啟動、鍊碼通信接口等核心概念,也包含Fabric網絡設計、nodejs鍊碼與應用開發的操作實踐,是Nodejs工程師學習Fabric區塊鍊開發的最佳選擇。

繼續閱讀