Hyperledger fabric 1.0Beta網絡組成及構建流程

1、fabric網絡結構(暫時不包括CA)

 

 

  如上圖所示,在fabric網絡中,O表示Orderer,P表明Peer,EP表明Endorsing Peer(endorser),CC表明Chaincode以及Client、Channel、Ledger、Transaction,由它們組成了整個網絡,下面對每種元素進行介紹:網絡

  Client:安裝在節點(Peer)處的客戶端,能夠發起構建channel的請求,也能夠建立和發起事務(transaction);它不能直接操做chaincode,必須經過peer。spa

  Peer:從orderer處獲取區塊用於維護當前狀態以及存儲在本地的賬本(ledger)。3d

  Transaction:部署事務(Deploy Transaction)用於生成新的chaincode;喚醒事務(Invoke Transaction)用於經過chaincode執行一次操做。code

  Endorsing Peer:一種特殊的節點,在channel內部署chaincode的時候需定義好備書節點列表;在Client發起事務時,在備書節點上模擬該事務的執行並返回響應。blog

  Orderer:負責維護網絡中的多個channgel;負責接收Client經過備書策略後的事務消息,將事務進行排序放入block中,再傳遞給該channel中的全部peer。排序

  Channel:在網絡中的若干個節點中組成的子網,用於隔絕子網與其它節點間的通訊和信息共享,Peer能夠屬於不一樣的channel。事務

  Orderer System Channel:是網絡中建立的第一個channel,channel能有多個,但Orderer System Channel有且只能有一個,它根據配置文件建立,對它具備讀權限能夠看到全部生成的  channel,不推薦在該channel跑任何應用。部署

  Chaincode:是運行在peer上的一段程序,用於對當前狀態或賬本進行讀寫操做。源碼

  Ledger:對channel中全部事務的執行結果的一個有序的、防篡改的記錄。io

  Anchor Peer:屬於多個channel的節點。

  Leading Peer: channel中負責與orderer通訊的節點。

2、網絡的構建流程

  1. 系統開始部署時,會根據channel配置文件自動生成orderer system channel,這是網絡中的第一個channel,channel上的節點都是Orderer;
  2. client發送createChannel消息結某個orderer來建立一個channel,order通過多重認證後生成一個配置模板,並將帶有這個新建channel配置的CONFIG事務發送至orderer system channel;
  3. client經過對orderer輪詢channel是否建立成功,若成功,經過該channel發送joinChannel消息邀請相應的節點加入到該channel中;
  4. client調用installChaincode將chaincode源碼存放位置及相關信息告知channel內的全部節點;
  5. chainCode實例化:client經過channel發送sendInstantiateProposal消息至備書節點,經過channel的備書策略決定是否經過;
  6. client將備書節點的簽名封裝在事務消息中,發送至orderer,由orderer封裝成block後發送至其它節點,其它節點收到收到block後判斷事務的有效性,如有效則完成實例化。

  (5,6的執行和事務的處理流程徹底同樣,將在下一篇裏詳細講述)

相關文章
相關標籤/搜索