Hyperledger Fabric java 區(qū)塊鏈開發(fā)詳解

我們?yōu)橄MM快學(xué)習(xí)Hyperledger fabric 的java工程師上線了一門教程Fabric java 區(qū)塊鏈開發(fā)詳解,課程面向初學(xué)者厦幅,內(nèi)容即包含Hyperledger Fabric的身份證書與MSP服務(wù)、權(quán)限策略笙纤、頻道配置與啟動(dòng)偏灿、鏈碼通信接口等核心概念坐桩,也包含F(xiàn)abric網(wǎng)絡(luò)設(shè)計(jì)逆巍、java鏈碼與應(yīng)用開發(fā)的操作實(shí)踐及塘,是java工程師學(xué)習(xí)Fabric區(qū)塊鏈開發(fā)的最佳選擇。

Hyperledger是一個(gè)旨在推動(dòng)區(qū)塊鏈跨行業(yè)應(yīng)用的開源項(xiàng)目锐极,由Linux基金會(huì)在2015年12月主導(dǎo)發(fā)起該項(xiàng)目笙僚,成員包括金融、銀行灵再、物聯(lián)網(wǎng)肋层、供應(yīng)鏈、制造和科技等多個(gè)行業(yè)的領(lǐng)頭羊翎迁,托管了眾多面向企業(yè)的區(qū)塊鏈開源框架和工具栋猖。

image

Hyperledger及Fabric項(xiàng)目概述

Hyperledger Fabric(后文簡(jiǎn)稱Fabric)是其中發(fā)展最好的一個(gè)企業(yè)級(jí)區(qū)塊鏈平臺(tái),最初由Digital Asset和IBM貢獻(xiàn)汪榔,目前已經(jīng)應(yīng)用于沃爾瑪?shù)氖澄锼菰存湥‵oodtrust)和馬士基的物流跟蹤鏈(TradeLens)中蒲拉,代表了當(dāng)下企業(yè)級(jí)區(qū)塊鏈應(yīng)用的最高水平〕针纾可以認(rèn)為Fabric是一種聯(lián)盟鏈(Consortium Blockchain)平臺(tái)雌团,它適合構(gòu)建跨越多個(gè)企業(yè)邊界的去中心化應(yīng)用。

由于Fabric項(xiàng)目的目標(biāo)是應(yīng)用于相對(duì)可信的企業(yè)聯(lián)盟環(huán)境士聪,因此其設(shè)計(jì)思路與比特幣锦援、以太坊等公鏈平臺(tái)有明顯的差異。Fabric借鑒了區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)剥悟,但引入了相當(dāng)多的身份驗(yàn)證與權(quán)限控制機(jī)制灵寺,以及數(shù)據(jù)隱私保護(hù)機(jī)制,以適應(yīng)企業(yè)級(jí)應(yīng)用的要求区岗。同時(shí)由于企業(yè)聯(lián)盟環(huán)境要比完全開放的公鏈環(huán)境可控略板,因此Fabric沒有強(qiáng)調(diào)其共識(shí)體系對(duì)拜占庭容錯(cuò)的實(shí)現(xiàn),允許使用 非拜占庭容錯(cuò)算法建立共識(shí)躏尉,從而可以達(dá)到相當(dāng)實(shí)用的交易吞吐量蚯根。

Fabric的定位與特點(diǎn)

毫無疑問后众,F(xiàn)abric是受到比特幣的啟發(fā)而誕生的胀糜,因此它借鑒了比特幣、以太坊這些公鏈中的一些核心特性蒂誉,例如采用不可篡改的區(qū)塊鏈結(jié)構(gòu)來保存數(shù)據(jù)教藻、采用非對(duì)稱加密技術(shù)來進(jìn)行身份識(shí)別 與認(rèn)證、支持智能合約等等右锨。

但是Fabric定位于企業(yè)級(jí)的分布式賬本技術(shù)(DLT - Distributed Ledger Technology)平臺(tái)括堤,它的主要目的是為跨越多個(gè)企業(yè)邊界的活動(dòng)提供不可篡改的分布式記賬平臺(tái)。例如在食物溯源應(yīng)用中,為了讓消費(fèi)者可以了解到所購(gòu)買食物是否安全悄窃,就必須將從農(nóng)場(chǎng)到加工商讥电、分銷商、 零售商乃至監(jiān)管機(jī)構(gòu)等各個(gè)環(huán)節(jié)的檢驗(yàn)與放行信息記錄到區(qū)塊鏈上轧抗,以保證溯源信息的透明與可信恩敌。

image

因此Fabric是一種聯(lián)盟鏈(Consortium Blockchain),它適合在多個(gè)企業(yè)間實(shí)現(xiàn)分布式記賬横媚,這一定位使Fabric的實(shí)現(xiàn)與以太坊這樣的公鏈有了明顯的差異:

分布式賬本 vs. 區(qū)塊鏈

分布式賬本是比區(qū)塊鏈更加寬泛的概念纠炮,可以認(rèn)為區(qū)塊鏈只是分布式賬本的一種實(shí)現(xiàn)技術(shù),其他的分布式賬本實(shí)現(xiàn)還包括哈希圖等灯蝴。

去中心化 vs. 分布式

Fabric淡化了去中心化(Decentralized)恢口,而以分布式(Distributed)代替,這一思路帶來了系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)上的巨大影響穷躁。例如耕肩,在Fabric中,采用中心化的CA機(jī)制來發(fā)放證書问潭,只有持有有效證書的節(jié)點(diǎn)和用戶才可以訪問區(qū)塊鏈上的賬本數(shù)據(jù)看疗。因此Fabric是許可制/Permissioned的區(qū)塊鏈,這與不需要許可/Permissionless的以太坊這樣的公鏈形成了鮮明的對(duì)比睦授。

拜占庭容錯(cuò) vs. 崩潰容錯(cuò)

由于采用許可機(jī)制两芳,F(xiàn)abric也淡化了對(duì)不可信(Trustless)環(huán)境下共識(shí)達(dá)成的依賴性,而假設(shè)聯(lián)盟鏈中的企業(yè)有可能是值得信賴的去枷,因此并不依賴于工作量證明這樣的拜占庭容錯(cuò)算法怖辆,雖然Fabric模塊化的設(shè)計(jì)可以支持引入不同的共識(shí)算法實(shí)現(xiàn),但目前的產(chǎn)品化方案是Kafka共識(shí)删顶,它顯然是不能對(duì)抗拜占庭錯(cuò)誤的竖螃,不過對(duì)不可信環(huán)境支持的淡化處理有利于提高交易的吞吐量,這對(duì)于企 業(yè)級(jí)應(yīng)用也是有益的逗余。

數(shù)據(jù)隱私保護(hù)

在另一方面特咆,F(xiàn)abric強(qiáng)化了隱私保護(hù)能力。例如录粱,F(xiàn)abric支持在同一套企業(yè)網(wǎng)絡(luò)上建立多個(gè)不同的通道/Channel腻格,每一個(gè)通道都有自己的區(qū)塊鏈和訪問控制,彼此互不影響啥繁,這有利于復(fù)用基礎(chǔ)設(shè)施菜职,例如不同企業(yè)間的銷售部門可以建立一個(gè)通道來分享市場(chǎng)數(shù)據(jù),而這些企業(yè)間的 研發(fā)部門可以建立另一個(gè)通道來分享技術(shù)數(shù)據(jù)旗闽。

Fabric并不是唯一的聯(lián)盟鏈解決方案酬核,但目前可以說是最復(fù)雜的企業(yè)聯(lián)盟鏈實(shí)現(xiàn)蜜另,這種復(fù)雜性源于設(shè)計(jì)者對(duì)應(yīng)用場(chǎng)景的假設(shè)和推演,以及對(duì)Fabric廣泛適用性的考量嫡意,這是我們?cè)趯W(xué)習(xí)過程中需要換位思考的一點(diǎn)举瑰。

課程內(nèi)容概述

本課程適合nodejs開發(fā)人員快速掌握超級(jí)賬本Fabric區(qū)塊鏈的設(shè)計(jì)思路、 核心概念蔬螟、網(wǎng)絡(luò)搭建嘶居、鏈碼及應(yīng)用開發(fā)等知識(shí)點(diǎn),課程主要內(nèi)容簡(jiǎn)述如下:

第一章促煮、課程概述

簡(jiǎn)介Fabric項(xiàng)目來源邮屁、定位特點(diǎn)、適用場(chǎng)景以及其與公鏈平臺(tái)的重要區(qū)別菠齿。

第二章佑吝、初識(shí)Fabric

創(chuàng)建一個(gè)最小CA,搭建一個(gè)最小Farbic網(wǎng)絡(luò)绳匀,開發(fā)一個(gè)最小Fabric鏈碼芋忿,實(shí)現(xiàn)一個(gè)最小Fabric應(yīng)用,從零開始學(xué)習(xí)并掌握Farbic中的核心概念疾棵、設(shè)計(jì)思路戈钢、實(shí)用工具與開發(fā)模型。

第三章是尔、身份與權(quán)限管理機(jī)制

深入學(xué)習(xí)Fabric中的身份驗(yàn)證機(jī)制與權(quán)限管理機(jī)制殉了,理解證書、成員服務(wù)提供器拟枚、 策略薪铜、訪問控制清單等核心概念并掌握其創(chuàng)建、部署和使用方法恩溅。

第四章隔箍、通道配置與更新

深入學(xué)習(xí)Fabric的通道配置初始化與更新流程、相關(guān)數(shù)據(jù)結(jié)構(gòu)以及配置工具的操作方法脚乡。

第五章蜒滩、鏈碼應(yīng)用開發(fā)進(jìn)階

學(xué)習(xí)理解鏈碼運(yùn)行機(jī)制、掌握狀態(tài)歷史跟蹤奶稠、富查詢俯艰、通道事件監(jiān)聽等鏈碼與應(yīng)用 開發(fā)進(jìn)階知識(shí)。

課程詳細(xì)目錄:

1.課程概述

  • 1.1 Hyperledger及Fabric項(xiàng)目概述
  • 1.2 Fabric的定位與特點(diǎn)
  • 1.3 課程內(nèi)容概述

2.初識(shí)Fabric

  • 2.1 Fabric架構(gòu)概述
  • 2.2 身份標(biāo)識(shí)與驗(yàn)證機(jī)制
  • 2.3 使用OpenSSL構(gòu)建小型CA
  • 2.4 MSP:成員服務(wù)提供器
  • 2.5 啟動(dòng)最小Fabric網(wǎng)絡(luò)
  • 2.6 通道初始化與節(jié)點(diǎn)加入
  • 2.7 開發(fā)計(jì)數(shù)器鏈碼
  • 2.8 鏈碼方法的路由
  • 2.9 鏈碼的安裝與激活
  • 2.10 在應(yīng)用中訪問鏈碼
  • 2.11 User接口實(shí)現(xiàn)類
  • 2.12 通道訪問參數(shù)設(shè)置
  • 2.13 鏈碼查詢
  • 2.14 鏈碼交易
  • 2.15 使用WIZ開發(fā)工具箱

3.身份與權(quán)限管理機(jī)制

  • 3.1 非對(duì)稱密碼學(xué)
  • 3.2 PKI體系與MSP機(jī)制
  • 3.3 使用cryptogen配置本地MSP
  • 3.4 從個(gè)體身份到安全主體
  • 3.5 通道MSP配置
  • 3.6 通道資源訪問策略
  • 3.7 策略的DSL描述語言
  • 3.8 通道訪問控制清單
  • 3.9 通道鏈碼背書策略

4.通道配置與更新

  • 4.1 系統(tǒng)通道的啟動(dòng)與配置塊獲取
  • 4.2 標(biāo)準(zhǔn)通道的啟動(dòng)與配置塊獲取
  • 4.3 深入通道配置區(qū)塊
  • 4.4 通道配置更新交易
  • 4.5 通道配置更新流水線

5.鏈碼與應(yīng)用開發(fā)進(jìn)階

  • 5.1 鏈碼運(yùn)行機(jī)制概述
  • 5.2 跟蹤狀態(tài)變遷歷史
  • 5.3 使用復(fù)合鍵
  • 5.4 使用CouchDB狀態(tài)庫(kù)
  • 5.5 監(jiān)聽通道事件
  • 5.6 使用連接配置文件

Hyperledger Fabric java 區(qū)塊鏈開發(fā)詳解課程地址:http://xc.hubwiz.com/course/5c9b89f54898e59b7b63430a

Fabric區(qū)塊鏈nodejs開發(fā)詳解

======================================================================

分享一些以太坊窒典、EOS蟆炊、比特幣等區(qū)塊鏈相關(guān)的交互式在線編程實(shí)戰(zhàn)教程:

  • java以太坊開發(fā)教程,主要是針對(duì)java和android程序員進(jìn)行區(qū)塊鏈以太坊開發(fā)的web3j詳解瀑志。
  • php以太坊,主要是介紹使用php進(jìn)行智能合約開發(fā)交互,進(jìn)行賬號(hào)創(chuàng)建劈猪、交易昧甘、轉(zhuǎn)賬、代幣開發(fā)以及過濾器和交易等內(nèi)容战得。
  • python以太坊充边,主要是針對(duì)python工程師使用web3.py進(jìn)行區(qū)塊鏈以太坊開發(fā)的詳解。
  • 以太坊入門教程常侦,主要介紹智能合約與dapp應(yīng)用開發(fā)浇冰,適合入門。
  • 以太坊開發(fā)進(jìn)階教程聋亡,主要是介紹使用node.js肘习、mongodb、區(qū)塊鏈坡倔、ipfs實(shí)現(xiàn)去中心化電商DApp實(shí)戰(zhàn)漂佩,適合進(jìn)階。
  • ERC721以太坊通證實(shí)戰(zhàn)罪塔,課程以一個(gè)數(shù)字藝術(shù)品創(chuàng)作與分享DApp的實(shí)戰(zhàn)開發(fā)為主線投蝉,深入講解以太坊非同質(zhì)化通證的概念、標(biāo)準(zhǔn)與開發(fā)方案征堪。內(nèi)容包含ERC-721標(biāo)準(zhǔn)的自主實(shí)現(xiàn)瘩缆,講解OpenZeppelin合約代碼庫(kù)二次開發(fā),實(shí)戰(zhàn)項(xiàng)目采用Truffle佃蚜,IPFS咳榜,實(shí)現(xiàn)了通證以及去中心化的通證交易所。
  • C#以太坊爽锥,主要講解如何使用C#開發(fā)基于.Net的以太坊應(yīng)用涌韩,包括賬戶管理、狀態(tài)與交易氯夷、智能合約開發(fā)與交互臣樱、過濾器和交易等。
  • EOS教程腮考,本課程幫助你快速入門EOS區(qū)塊鏈去中心化應(yīng)用的開發(fā)雇毫,內(nèi)容涵蓋EOS工具鏈、賬戶與錢包踩蔚、發(fā)行代幣棚放、智能合約開發(fā)與部署、使用代碼與智能合約交互等核心知識(shí)點(diǎn)馅闽,最后綜合運(yùn)用各知識(shí)點(diǎn)完成一個(gè)便簽DApp的開發(fā)飘蚯。
  • 深入淺出玩轉(zhuǎn)EOS錢包開發(fā)馍迄,本課程以手機(jī)EOS錢包的完整開發(fā)過程為主線,深入學(xué)習(xí)EOS區(qū)塊鏈應(yīng)用開發(fā)局骤,課程內(nèi)容即涵蓋賬戶攀圈、計(jì)算資源、智能合約峦甩、動(dòng)作與交易等EOS區(qū)塊鏈的核心概念赘来,同時(shí)也講解如何使用eosjs和eosjs-ecc開發(fā)包訪問EOS區(qū)塊鏈,以及如何在React前端應(yīng)用中集成對(duì)EOS區(qū)塊鏈的支持凯傲。課程內(nèi)容深入淺出犬辰,非常適合前端工程師深入學(xué)習(xí)EOS區(qū)塊鏈應(yīng)用開發(fā)。
  • java比特幣開發(fā)教程冰单,本課程面向初學(xué)者幌缝,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)球凰、去中心化共識(shí)機(jī)制狮腿、密鑰與腳本、交易與UTXO等呕诉,同時(shí)也詳細(xì)講解如何在Java代碼中集成比特幣支持功能缘厢,例如創(chuàng)建地址、管理錢包甩挫、構(gòu)造裸交易等贴硫,是Java工程師不可多得的比特幣開發(fā)學(xué)習(xí)課程。
  • php比特幣開發(fā)教程伊者,本課程面向初學(xué)者英遭,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)亦渗、去中心化共識(shí)機(jī)制挖诸、密鑰與腳本、交易與UTXO等法精,同時(shí)也詳細(xì)講解如何在Php代碼中集成比特幣支持功能多律,例如創(chuàng)建地址、管理錢包搂蜓、構(gòu)造裸交易等狼荞,是Php工程師不可多得的比特幣開發(fā)學(xué)習(xí)課程。
  • c#比特幣開發(fā)教程帮碰,本課程面向初學(xué)者相味,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)殉挽、去中心化共識(shí)機(jī)制丰涉、密鑰與腳本拓巧、交易與UTXO等,同時(shí)也詳細(xì)講解如何在C#代碼中集成比特幣支持功能昔搂,例如創(chuàng)建地址玲销、管理錢包输拇、構(gòu)造裸交易等摘符,是C#工程師不可多得的比特幣開發(fā)學(xué)習(xí)課程。
  • tendermint區(qū)塊鏈開發(fā)詳解策吠,本課程適合希望使用tendermint進(jìn)行區(qū)塊鏈開發(fā)的工程師逛裤,課程內(nèi)容即包括tendermint應(yīng)用開發(fā)模型中的核心概念,例如ABCI接口猴抹、默克爾樹带族、多版本狀態(tài)庫(kù)等,也包括代幣發(fā)行等豐富的實(shí)操代碼蟀给,是go語言工程師快速入門區(qū)塊鏈開發(fā)的最佳選擇蝙砌。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市跋理,隨后出現(xiàn)的幾起案子择克,更是在濱河造成了極大的恐慌,老刑警劉巖前普,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肚邢,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡拭卿,警方通過查閱死者的電腦和手機(jī)骡湖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來峻厚,“玉大人响蕴,你說我怎么就攤上這事』萏遥” “怎么了浦夷?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)刽射。 經(jīng)常有香客問我军拟,道長(zhǎng),這世上最難降的妖魔是什么誓禁? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任懈息,我火速辦了婚禮,結(jié)果婚禮上摹恰,老公的妹妹穿的比我還像新娘辫继。我一直安慰自己怒见,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布姑宽。 她就那樣靜靜地躺著遣耍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炮车。 梳的紋絲不亂的頭發(fā)上舵变,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音瘦穆,去河邊找鬼纪隙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扛或,可吹牛的內(nèi)容都是我干的绵咱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼熙兔,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼悲伶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起住涉,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤麸锉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后秆吵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淮椰,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年纳寂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了主穗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡毙芜,死狀恐怖忽媒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腋粥,我是刑警寧澤晦雨,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站隘冲,受9級(jí)特大地震影響闹瞧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜展辞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一奥邮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦洽腺、人聲如沸脚粟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽核无。三九已至,卻和暖如春藕坯,著一層夾襖步出監(jiān)牢的瞬間团南,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工堕担, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留已慢,地道東北人曲聂。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓霹购,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親朋腋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子齐疙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355