第五章 九析帶你輕鬆完爆 hyperledger fabric - 網絡節點介紹

本系列文章:
服務器


第一章:九析帶你完爆 fabric - 快速搭建區塊鏈網絡

第二章:九析帶你完爆 fabric - 快速搭建 GO 環境架構

第三章:九析帶你完爆 fabric - 快速上手 first-network 樣例ide

第四章:九析帶你完爆 fabric - 系統邏輯架構篇學習

第五章:九析帶你完爆 fabric - 網絡節點介紹
區塊鏈

目錄spa

1 前言翻譯

2 節點分類orm

    2.1 CA 節點blog

    2.2 客戶端節點

    2.3 orderer 節點

    2.4 peer 節點

        2.4.1 Anchor 節點

        2.4.2 Endorsor 節點

        2.4.3 Committer 節點

        2.4.4 peer 節點聲明

3 總結


1 前言

        fabric 區塊鏈網絡是由各類不一樣類型的節點所組成,正是這些不一樣類型的節點按照各自的做用和分工進行交互,才使得整個區塊鏈得以正常運做。


2 節點分類

        本文按照節點學習難易程度進行排序,上面最簡單,下面難度依次增長。

        區塊鏈網絡中的節點大體可分爲四類:CA 節點、客戶端節點、orderer 節點、peer 節點。

2.1 CA 節點

        CA 節點做用是頒發證書,它爲網絡中的節點通訊提供憑證(證書)。攜帶通過 CA 認證過的證書進行的交易纔會被接受。CA 節點並不是是區塊鏈網絡中強制性節點,即:它是可選的(optional)。此外,在 fabric 區塊鏈網絡中,你既能夠選擇 fabric 自身提供的 CA 認證方式,也能夠選擇其餘第三方認證方式。

        如下舉一個生活中的例子才解釋 CA 節點:某小區(區塊鏈網絡),物業公司(CA 頒發機構)會給各個住戶提供小區鑰匙(證書),只有擁有物業公司提供的鑰匙才容許在小區內部各門之間走動(交易)。固然物業公司是業主能夠選擇的,你既能夠選擇萬科,也能夠選擇綠城,或者有些老少區根本就沒有物業(CA 可選擇)

2.2 客戶端節點

        客戶端節點是區塊鏈的實際使用者,所以區塊鏈網絡就能夠有多個客戶端節點同時存在。它們既能夠跟 orderer 節點進行交互建立通道(channel),也能夠跟 peer 節點進行交互模擬交易執行等。大部分的區塊鏈操做都是經過客戶端節點來發起的。

2.3 orderer 節點

        orderer 節點是排序節點。它的做用相似一個管道或者過濾器。它從各個客戶端節點接收發送過來的交易,接着將這些交易按照必定的規則進行排序,而後將排好序的交易按照固定的時間間隔再打包成區塊,最後發送給組織的 Anchor 節點(下面會講,這裏先記住便可)。orderer 節點的排序規則目前官方只提供兩種方式:solo 和 kafka。

        solo 中文翻譯是「獨奏」,在區塊鏈網絡中表示只有一個 orderer 節點,因此它的排序規則就是按照 orderer 節點接受交易的前後順序來排序,也就是生活中的先來後到原則。因爲 solo 模式表示區塊鏈網絡中只有一個 orderer 節點,因此很容易致使單點故障,故生產環境中並不會使用此方式。

        kafka 即消息服務器。使用此排序方式的 orderer 節點,實際上是將整個排序工做交給 kafka 集羣去實現。 orderer 做爲 kafka 的生產者,將客戶端節點發送過來的交易發送給 kafka,而後再做爲 kafka 的消費者,接收從 kafka 發送回來的交易結果,根據從 kafka 接收到的消息順序就是最終排序的結果。這種方式有必定的隨機性,可是確實有點***子放屁的嫌疑。但目前生產環境大多采用這樣排序方式。

2.4 peer 節點

        除了 CA、客戶端、orderer 以外的其餘節點以外就都是 peer 節點了,但 peer 節點又根據功能不一樣分爲 Anchor、Endorsor 和 Committer 節點。爲了理解上的方便,咱們舉一個技術公司的例子:

        orderer 節點至關於 CTO;客戶端節點至關於產品經理;CA 節點至關於業務需求方;peer 節點則是一個統稱,表明全體技術人員,可是根據分工不一樣,peer 會有不一樣的角色,好比 Anchor 節點(項目經理)、Endorsor 節點(研發人員)、Committer(實習生)。

2.4.1 Anchor 節點

        通常狀況下,每一個技術公司都會分多個項目組,每一個項目組都會指定一個項目經理和多個開發人員。在 fabric 區塊鏈網絡中,項目組對應組織(Organization),項目經理對應 Anchor 節點(組織中的主節點或錨節點)。在組織中,只有 Anchor(項目經理)跟 Orderer 節點(CTO)惟一進行通訊,假如 Anchor 節點(項目經理)生病了(宕機),該組織內部的其餘 peer 成員能夠選舉一個新節點做爲 Anchor 節點。

2.4.2 Endorsor 節點

        Endorsor 節點是背書節點(擔保節點),智能合約就運行在背書節點之上。客戶端發送交易提案給背書節點,背書節點模擬執行以後對執行結果進行簽名背書,再將模擬執行結果返回給客戶端節點。若是你對這樣的定義很難理解,咱們不妨接着上面的例子作一個類比。

CTO(orderer 節點)想統計每一個研發人員(Endorer)的績效,研發人員(Endorsor)的績效是完成了多少產品經理(客戶端)需求。當客戶端(產品經理)提出需求後,Endorsor 節點接受需求後執行,若是有多個 Endorsor 節點,那麼這幾個節點都會去執行客戶端的需求,執行完畢後會通知客戶端,那麼到底這個需求是誰完成了呢?產品經理(客戶端)不作評判,它只是實事求是地把每一個 endorsor 節點完成的狀況告訴 CTO(orderer)節點,而後讓 CTO 去判斷到底是誰的績效(這個過程即是 fabric 網絡中的共識機制)。CTO 評判肯定 Endorsor 後,會把績效同步給項目組(組織)的 Anchor(項目經理),Anchor 收到通知後,就會廣播給組織內部的全部節點,全部節點收到消息後就會同步績效結果(記帳)。

2.4.3 Committer 節點

        peer 節點除了 Anchor(項目經理)、Endorsor(研發人員)以外的其餘類型節點就是 Committer 節點了。它就像實習生同樣(不負責實際開發任務),只被動接收績效記錄(Comitter)。

2.4.4 Peer 節點聲明

        peer 節點基本介紹完了,但還須要聲明一下,peer 節點的角色並不具有排他性,也就是說一個 peer 節點,它既能夠是 anchor,也能夠同時是 endorsor,也能夠同時是 committer。就像在一個項目組中就有一我的,它既是一個實習生,也同時是項目經理和實際開發同樣。


3 總結

image.png

        上圖就是整個 fabric 網絡節點拓補結構圖。能夠結合本人上面的介紹對照加深理解。自此,fabric 區塊鏈網絡中的節點以及節點做用都介紹結束了。若是你以爲九析的介紹對你有幫助的話,麻煩你給九析點個贊哦,謝謝!^_^

相關文章
相關標籤/搜索