Hyperledger Fabric1.0架构概览
Hyperledger是被業(yè)界非常看到的聯(lián)盟鏈的實(shí)現(xiàn),包括IBM、Intel、R3、各個(gè)大型商業(yè)銀行等都參與其中,帶給我們關(guān)于區(qū)塊鏈技術(shù)與軟件工業(yè)、金融、保險(xiǎn)、物流等領(lǐng)域碰撞結(jié)合的想象空間;在這個(gè)聯(lián)盟中,有超過1/4的成員都來自中國,這更是我們對(duì)于它的一舉一動(dòng)都非常關(guān)注。很大程度上,Hyperledger和它背后的聯(lián)盟體系就代表著區(qū)塊鏈在產(chǎn)業(yè)環(huán)境中的未來。
作為最重要的子項(xiàng)目,在聯(lián)盟推出Fabric 0.6版本后,最新的Fabirc 1.0 版本也即將問世,今天我們來走馬觀花地領(lǐng)略一下最新版本(1.0)的總體架構(gòu),對(duì)于這個(gè)承載產(chǎn)業(yè)夢想的新生事物有個(gè)基本的認(rèn)識(shí)。
說明:本文章僅僅是個(gè)概覽,具體的細(xì)節(jié)可以參考官網(wǎng)和github站點(diǎn)文檔;本人也只是從這些地方將信息匯集了一下,權(quán)作為是”借花獻(xiàn)佛“了。
- Fabric1.0總體架構(gòu)
Hyperledger的fabric當(dāng)前的穩(wěn)定版本是0.6版,在講解1.0版本之前,我們先看看0.6版本的總體架構(gòu):
對(duì)應(yīng)的0.6版本的運(yùn)行時(shí)架構(gòu):
0.6版本的架構(gòu)特點(diǎn)是:
針對(duì)上述問題,1.0版本做了很大的改進(jìn)和重構(gòu):
這是最新的1.0運(yùn)行時(shí)架構(gòu):
1.0 架構(gòu)要點(diǎn):
備注:最新的1.0版本中,上圖中的Membership服務(wù)已經(jīng)改名為fabric-ca
- 1.0版本架構(gòu)目標(biāo)
從Fabric的新架構(gòu)設(shè)計(jì)的建議文檔看,1.0版本的設(shè)計(jì)目標(biāo)如下:
- 架構(gòu)特點(diǎn)
Hyperledger fabirc 1.0 版本的在0.6版本基礎(chǔ)上,針對(duì)安全、保密、部署、維護(hù)、實(shí)際業(yè)務(wù)場景需求等方面進(jìn)行了很多改進(jìn),特別是Peer節(jié)點(diǎn)的功能分離,給系統(tǒng)架構(gòu)具備了支持多通道、可插拔的共識(shí)的能力,使得Fabric脫離了0.6版本帶給人的青澀感(僅僅是個(gè)”驗(yàn)證與演示“版的,呵呵),已經(jīng)接近于工業(yè)應(yīng)用的需求;
我們現(xiàn)在看看 1.0版本的關(guān)鍵架構(gòu):
- 多鏈與多通道
Fabric 1.0 的重要特征是支持多chain和多channel;
所謂的chain(鏈)實(shí)際上是包含Peer節(jié)點(diǎn)、賬本、ordering通道的邏輯結(jié)構(gòu),它將參與者與數(shù)據(jù)(包含chaincode在)進(jìn)行隔離,滿足了不同業(yè)務(wù)場景下的”不同的人訪問不同數(shù)據(jù)“的基本要求。
同時(shí),一個(gè)peer節(jié)點(diǎn)也可以參與到多個(gè)chain中(通過接入多個(gè)channel);如下圖所示
關(guān)于通道:通道是有共識(shí)服務(wù)(ordering)提供的一種通訊機(jī)制,類似于消息系統(tǒng)中的發(fā)布-訂閱(PUB/SUB)中的topic;基于這種發(fā)布-訂閱關(guān)系,將peer和orderer連接在一起,形成一個(gè)個(gè)具有保密性的通訊鏈路(虛擬),實(shí)現(xiàn)了業(yè)務(wù)隔離的要求;通道也與賬本(ledger)-狀態(tài)(worldstate)緊密相關(guān);如下圖所示:
共識(shí)服務(wù)與(P1、PN)、(P1、P2、P3)、(P2、P3)組成了三個(gè)相互獨(dú)立的通道,加入到不同通道的Peer節(jié)點(diǎn)能夠維護(hù)各個(gè)通道對(duì)應(yīng)的賬本和狀態(tài);也其實(shí)也對(duì)應(yīng)現(xiàn)實(shí)世界中,不同業(yè)務(wù)場景下的參與方,例如銀行、保險(xiǎn)公司;物流企業(yè)、生產(chǎn)企業(yè)等實(shí)體結(jié)構(gòu);我們可以看到channel機(jī)制實(shí)際上是的Fabric建模實(shí)際業(yè)務(wù)流程的能力大大增強(qiáng)了,大家可以發(fā)揮想象力去找到可能的應(yīng)用領(lǐng)域
- 交易(數(shù)據(jù))流程說明
新版本的架構(gòu)變化導(dǎo)致新的交易流程的變化,我們簡述如下:
總體流程如下圖所示:
上述過程對(duì)應(yīng)的執(zhí)行序列圖如下:
在新的架構(gòu)中,Peer節(jié)點(diǎn)負(fù)責(zé)維護(hù)區(qū)塊鏈的賬本(ledger)和狀態(tài)(State),本地的賬本稱為PeerLedger,其結(jié)構(gòu)如下:
我們可以看到,整個(gè)區(qū)塊結(jié)構(gòu)分為文件系統(tǒng)存儲(chǔ)的Block結(jié)構(gòu)和數(shù)據(jù)庫維護(hù)的State狀態(tài),其中state的存儲(chǔ)結(jié)構(gòu)是可以替換的,可選的實(shí)現(xiàn)包括各種KV數(shù)據(jù)庫(LEVELDB,CouchDB等);
上邊就是我們對(duì)Fabric 1.0版本的簡要介紹,由于Fabric的復(fù)雜性,后續(xù)我也會(huì)針對(duì)1.0版本中的技術(shù)細(xì)節(jié)和實(shí)現(xiàn)機(jī)制進(jìn)行專題說明,敬請(qǐng)關(guān)注;
同時(shí),1.0 版本的代碼和文檔每天都在更新,請(qǐng)大家關(guān)注官網(wǎng)和github,這里是最好學(xué)習(xí)天地。
最后說民一下大家比較關(guān)心的版本計(jì)劃:
- 1.0版本的版本計(jì)劃
下邊是劇透的官方開發(fā)計(jì)劃,只是“Proposed“,也許隨時(shí)會(huì)有變化哦:
從官方公布的計(jì)劃看,1.0版本應(yīng)該可以在3月份完成release,讓我們期待這個(gè)最新版本的誕生吧。
總結(jié)
以上是生活随笔為你收集整理的Hyperledger Fabric1.0架构概览的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优秀的API接口设计原则及方法
- 下一篇: 区块链核心技术:拜占庭共识算法之PBFT