Hyperledger Fabric節(jié)點(diǎn)間的網(wǎng)絡(luò)架構(gòu)是什么樣的?

0 導(dǎo)言

? ? ??在上一講《Hyperledger Fabric的邏輯架構(gòu)是什么樣的惫搏?》中具温,我們介紹了Fabric的邏輯架構(gòu),就是整個(gè)的技術(shù)組成部分筐赔。從應(yīng)用程序端來(lái)看铣猩,包括了SDK、API茴丰、事件达皿,通過(guò)SDK、API贿肩、事件來(lái)對(duì)底層區(qū)塊鏈進(jìn)行操作:包括身份管理峦椰、賬本管理、交易管理汰规、智能合約的部署和調(diào)用汤功,從底層區(qū)塊鏈這一端來(lái)看,對(duì)外提供了以下服務(wù):成員管理服務(wù)溜哮、共識(shí)服務(wù)滔金、鏈碼服務(wù)、安全和密碼服務(wù)茂嗓。fabric通過(guò)將各個(gè)部分分離成不同的模塊餐茵,做到可插拔性、靈活擴(kuò)展性述吸。

? ? ??通過(guò)上一講我們對(duì)fabric的邏輯架構(gòu)有了一個(gè)整體的認(rèn)識(shí)钟病。接下來(lái)我們來(lái)看看fabric節(jié)點(diǎn)間的網(wǎng)絡(luò)架構(gòu)是什么樣的?我們先來(lái)上一張圖:


? ? ??從圖中可以看出fabric包含以下節(jié)點(diǎn):客戶端節(jié)點(diǎn)刚梭、CA節(jié)點(diǎn)肠阱、Peer節(jié)點(diǎn)、Orderer節(jié)點(diǎn)朴读。我們下面來(lái)詳細(xì)介紹一下這些節(jié)點(diǎn)屹徘。

1 客戶端節(jié)點(diǎn)

? ? ??客戶端或應(yīng)用程序代表由最終用戶操作的實(shí)體,它必須連接到某一個(gè)Peer節(jié)點(diǎn)或者排序服務(wù)節(jié)點(diǎn)上與區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行通信衅金≡胍粒客戶端向背書(shū)節(jié)點(diǎn)(Endorser Peer)提交交易提案(Proposal)簿煌,當(dāng)收集到足夠背書(shū)后,向排序服務(wù)節(jié)點(diǎn)廣播交易鉴吹,進(jìn)行排序姨伟,生成區(qū)塊。

2 CA節(jié)點(diǎn)

? ? ??CA節(jié)點(diǎn)是fabric的證書(shū)頒發(fā)節(jié)點(diǎn)(Certificate Authority)豆励,由服務(wù)器(fabric-ca-server)和客戶端(fabric-ca-client)組成夺荒。

? ? ??CA節(jié)點(diǎn)接收客戶端的注冊(cè)申請(qǐng),返回注冊(cè)密碼用于登錄良蒸,以便獲取身份證書(shū)技扼。在區(qū)塊鏈網(wǎng)絡(luò)上所有的操作都會(huì)驗(yàn)證用戶的身份。

? ? ??CA節(jié)點(diǎn)是可選的嫩痰,也可以用其他成熟的第三方CA頒發(fā)證書(shū)剿吻。

3 Peer節(jié)點(diǎn)

? ? ??從上圖中可以看出每個(gè)組織可以擁有一到多個(gè)Peer節(jié)點(diǎn)。每個(gè)Peer節(jié)點(diǎn)可以擔(dān)任如下多種角色:

  • Endorser Peer(背書(shū)結(jié)點(diǎn))
  • Leader Peer(主節(jié)點(diǎn))
  • Committer Peer(記賬節(jié)點(diǎn))
  • Anchor Peer(錨節(jié)點(diǎn))
    注:每個(gè)Peer節(jié)點(diǎn)必定是一個(gè)記賬節(jié)點(diǎn)串纺,除記賬節(jié)點(diǎn)外丽旅,它也可以擔(dān)任其它一到多種角色,即某個(gè)節(jié)點(diǎn)可以同時(shí)是記賬節(jié)點(diǎn)和背書(shū)節(jié)點(diǎn)纺棺,也可以同時(shí)是記賬節(jié)點(diǎn)榄笙、背書(shū)節(jié)點(diǎn)、主節(jié)點(diǎn)五辽,錨節(jié)點(diǎn)办斑。

3.1 Endorser Peer(背書(shū)結(jié)點(diǎn))

? ? ??部分節(jié)點(diǎn)會(huì)執(zhí)行交易并對(duì)結(jié)果進(jìn)行簽名背書(shū),充當(dāng)背書(shū)節(jié)點(diǎn)的角色 杆逗。

? ? ??所謂背書(shū)(Endorsement)乡翅,就是指特定peer執(zhí)行交易并向生成交易提案( proposal )的客戶端應(yīng)用程序返回YES/NO響應(yīng)的過(guò)程。

? ? ??背書(shū)節(jié)點(diǎn)是動(dòng)態(tài)的角色罪郊,是與具體鏈碼綁定的蠕蚜。每個(gè)鏈碼在實(shí)例化的時(shí)候都會(huì)設(shè)置背書(shū)策略(Endorsement policy),指定哪些節(jié)點(diǎn)對(duì)交易背書(shū)才有效悔橄。

? ? ??也只有在應(yīng)用程序向節(jié)點(diǎn)發(fā)起交易背書(shū)請(qǐng)求時(shí)才成為背書(shū)節(jié)點(diǎn)靶累,其他時(shí)候是普通的記賬節(jié)點(diǎn),只負(fù)責(zé)驗(yàn)證交易并記賬癣疟。

3.2 Leader Peer(主節(jié)點(diǎn))

? ? ??從圖中可以看出挣柬,主節(jié)點(diǎn)負(fù)責(zé)和Orderer排序服務(wù)節(jié)點(diǎn)通信,從排序服務(wù)節(jié)點(diǎn)處獲取最新的區(qū)塊并在組織內(nèi)部同步睛挚⌒盎祝可以強(qiáng)制設(shè)置,也可以選舉產(chǎn)生扎狱。

3.3 Committer Peer(記賬節(jié)點(diǎn))

? ? ??負(fù)責(zé)驗(yàn)證從排序服務(wù)節(jié)點(diǎn)接收的區(qū)塊里的交易侧到,然后將塊提交(寫(xiě)入/追加)到其通道賬本的副本勃教。記賬節(jié)點(diǎn)還將每個(gè)塊中的每個(gè)交易標(biāo)記為有效或無(wú)效。

3.4 Anchor Peer(錨節(jié)點(diǎn))

? ? ??在一個(gè)通道( channel )上可以被所有其他peer發(fā)現(xiàn)的peer匠抗,通道上的每個(gè)成員都有一個(gè)Anchor Peer(或多個(gè)Anchor peer 來(lái)防止單點(diǎn)故障)故源,允許屬于不同成員的peer發(fā)現(xiàn)通道上的所有現(xiàn)有peer。

4 Orderer(排序服務(wù)節(jié)點(diǎn))

? ? ?排序服務(wù)節(jié)點(diǎn)接收包含背書(shū)簽名的交易汞贸,對(duì)未打包的交易進(jìn)行排序生成區(qū)塊绳军,廣播給Peer節(jié)點(diǎn)。

? ? ?排序服務(wù)提供的是原子廣播著蛙,保證同一個(gè)鏈上的節(jié)點(diǎn)為接收到機(jī)同的消息删铃,并且有相同的邏輯順序耳贬。

? ? ?排序服務(wù)獨(dú)立于peer進(jìn)程存在并且以先來(lái)先服務(wù)的方式對(duì)網(wǎng)絡(luò)上的所有信道進(jìn)行排序交易踏堡。排序服務(wù)旨在支持超出現(xiàn)有的SOLO和Kafka品種的可插拔實(shí)現(xiàn)。排序服務(wù)是整個(gè)網(wǎng)絡(luò)的公共綁定; 它包含綁定到每個(gè)成員的加密身份材料咒劲。

5 總結(jié)

? ? ?Fabric系統(tǒng)是通過(guò)組織來(lái)劃分的顷蟆,每個(gè)組織內(nèi)都包含承擔(dān)不同功能的Peer 節(jié)點(diǎn),每個(gè)Peer節(jié)點(diǎn)又可以擔(dān)任多種角色腐魂。所有的組織共用一個(gè)統(tǒng)一的Orderer集群帐偎。因此在設(shè)計(jì)基于Hyperledger Fabric的系統(tǒng)時(shí)需要考慮組織之間的業(yè)務(wù)關(guān)系,以及內(nèi)部每個(gè)模塊之間的聯(lián)系蛔屹,以此來(lái)進(jìn)行統(tǒng)一的規(guī)劃削樊。

6 參考資料

1.https://hyperledger-fabric.readthedocs.io/en/release-1.2/index.html
2.《深度探索區(qū)塊鏈:Hyperledger技術(shù)與應(yīng)用》作者:張?jiān)鲵E,董寧兔毒,朱軒彤漫贞,陳劍雄 著 出版社:機(jī)械工業(yè)出版社
3.《區(qū)塊鏈開(kāi)發(fā)實(shí)戰(zhàn):Hyperledger Fabric關(guān)鍵技術(shù)與案例分析》作者:馮翔,劉濤育叁,吳壽鶴迅脐,周廣益 著 出版社:機(jī)械工業(yè)出版社

? ? ??注意:本篇文章大部分內(nèi)容 來(lái)自《深度探索區(qū)塊鏈:Hyperledger技術(shù)與應(yīng)用》(作者:張?jiān)鲵E,董寧豪嗽,朱軒彤谴蔑,陳劍雄 著 出版社:機(jī)械工業(yè)出版社)這本書(shū)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市龟梦,隨后出現(xiàn)的幾起案子隐锭,更是在濱河造成了極大的恐慌,老刑警劉巖计贰,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钦睡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蹦玫,警方通過(guò)查閱死者的電腦和手機(jī)赎婚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)刘绣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人挣输,你說(shuō)我怎么就攤上這事纬凤。” “怎么了撩嚼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵停士,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我完丽,道長(zhǎng)恋技,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任逻族,我火速辦了婚禮蜻底,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘聘鳞。我一直安慰自己薄辅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布抠璃。 她就那樣靜靜地躺著站楚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搏嗡。 梳的紋絲不亂的頭發(fā)上窿春,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音采盒,去河邊找鬼旧乞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛纽甘,可吹牛的內(nèi)容都是我干的良蛮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼悍赢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼决瞳!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起左权,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤皮胡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后赏迟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體屡贺,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了甩栈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泻仙。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖量没,靈堂內(nèi)的尸體忽然破棺而出玉转,到底是詐尸還是另有隱情,我是刑警寧澤殴蹄,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布究抓,位于F島的核電站,受9級(jí)特大地震影響袭灯,放射性物質(zhì)發(fā)生泄漏刺下。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一稽荧、第九天 我趴在偏房一處隱蔽的房頂上張望橘茉。 院中可真熱鬧,春花似錦蛤克、人聲如沸捺癞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至惕鼓,卻和暖如春筋现,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背箱歧。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工矾飞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人呀邢。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓洒沦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親价淌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子申眼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容