1. 程式人生 > >ChainDesk|扒開Fabric架構:抽象的邏輯架構與實際的執行時架構

ChainDesk|扒開Fabric架構:抽象的邏輯架構與實際的執行時架構

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

 ​

 

作者:ChainDesk韓小東,ChainDesk區塊鏈行業分析師, ChainDesk區塊鏈工程師

ChainDesk官網:

http://www.chaindesk.cn/?20181214csdnmeiti

本篇文章閱讀時間:2分鐘


 

目標

理解Hyperledger Fabric超級賬本的邏輯架構。

理解Hyperledger Fabric超級賬本的實際執行時架構。

任務實現

進步非常快。現在我們結合圖形,然後根據對應的解釋全面理解Hyperledger Fabric的架構。

2.1.1 比較抽象的邏輯架構

Fabric從1.X開始,在擴充套件性及安全性上面有了大大的提升,且新增了諸多的新特性:

多通道:支援多通道,提高隔離安全性。

可拔插的元件:支援共識元件、許可權管理元件等可拔插功能。

賬本資料可被儲存為多種格式。

分化了Peer節點的多種角色,可以根據具體情況實現靈活部署

Hyperledger Fabric超級賬本整體邏輯架構如下圖所示:

 

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

 ​

 

Fabric四大核心元件:

Membership Services:成員管理保證了Fabric平臺訪問的安全性。提供了成員的註冊、管理及稽核功能。

Blockchain Services:是區塊鏈的核心部分,為區塊鏈的主體功能提供了底層支撐;包括共識管理、分散式賬本實現、賬本的儲存以及網路中各節點之間的通訊實現。

BlockChain:區塊之間以Hash連線為結構的交易日誌。peer從order service接收交易區塊k,並根據背書策略和併發衝突標記區塊上的交易是否有效,然後將該區塊追加到peer檔案系統中的Hash Chain上。

Transaction:交易有對鏈碼的部署或呼叫兩種操作型別:

部署交易:部署是請求在peer上啟動鏈碼容器;建立新的鏈碼並設定一個程式作為引數。當一個部署交易執行成功,表明鏈碼已被安裝到區塊鏈上。

呼叫交易:呼叫是從賬本中請求讀寫集。是在之前已部署鏈碼的情況下執行一個操作。呼叫交易將使用鏈碼提供的一個函式。當成功時,鏈碼執行特定的函式對賬本資料進行操作(修改狀態),並返回操作結果。

Chaincode Services:提供了鏈碼的部署及執行時的所需環境。

Chaincode:是一個可以對賬本資料進行操作的可開發的元件程;鏈碼被佈署執行在一個安全的容器中;使用者可以通過呼叫鏈碼中的指定函式對賬本資料進行修改或讀取操作。

Event:為各元件之間提供非同步通訊提供了技術實現。

 

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

 ​

 

2.1.2 實際中的執行時架構

實際執行時架構如下圖所示:

 

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

 ​

 

執行時架構圖中各項解釋如下:

APP:代表一個客戶端(CLI)或SDK,作用是建立交易並獲取到足夠的背書之後向Orderer排序服務節點提交交易請求(Peer與Orderer節點提供了gRPC遠端訪問介面,供客戶端呼叫)。

CA:負責對網路中所有的證書進行管理(對Fabric網路中的成員身份進行管理), 提供標準的PKI服務。

MSP(Member Service Provider):為客戶端和Peer提供證書的系統抽象元件。

Channel:將一個大的網路分割成為不同的私有"子網"。

通道的作用:通道提供一種通訊機制,將peers和orderer連線在一起,形成一個具有保密性的通訊鏈路(虛擬), 進行資料隔離。

要加入通道的每個節點都必須擁有自己的通過成員服務提供商(MSP)獲得的身份標識。

Orderer:對客戶端提交的交易請求進行排序,之後生成區塊廣播給通道內的所有peer節點。

Org1:代表聯盟中的某一個組織(一個聯盟中可以多個不同的組織組成)。

Peer:表示組織中的節點;Peer節點以區塊的形式從Orderer排序服務節點接收有序狀態更新,維護狀態和賬本。在Fabtic網路環境中 Peer 節點可以劃分為如下角色:

Endorsing peer:根據指定的策略呼叫智慧合約,對結果進行背書, 返回提案響應到客戶端。

Committing peer:驗證資料並儲存至賬本中。

Anchor peer:跨組織通訊。

Leading peer:作為組織內所有節點的的代表連線到Orderer排序服務節點, 將從排序服務節點接收到的批量區塊廣播給組織內的其它節點。

網路中只有部分節點為背書節點; 網路中所有Peer節點為賬本節點。

Chaincode:鏈式程式碼,簡稱鏈碼;執行在容器中,提供相應的API與賬本資料進行互動。

Ledger:是由排序服務構建的一個全部有序的交易雜湊鏈塊,儲存在所有的peer節點中。賬本提供了在系統執行過程中發生的可驗證歷史,它包含所有成功的狀態更改(有效交易)和不成功的狀態更改(無效交易)。

FAQ

應用程式或客戶端到底需要連線到哪些Peer節點?

只需要連線到背書節點即可。

背書節點怎麼指定?

在例項化鏈碼時由背書策略指定。

未經授權禁止轉載、改編,轉載請註明出處!

本文地址: http://www.chaindesk.cn/witbook/11/102

 


 

ChainDesk——全球區塊鏈技術生態超級社群

以區塊鏈技術為入口,搭建全球區塊鏈技術生態超級社群,社群將服務於公鏈生態建設、DAPP專案研發、技術諮詢、課程體系研發、區塊鏈書籍編寫,區塊鏈課程製作、講師培訓、區塊鏈職業教育、區塊鏈線上教育、去中心化技術評測一體化的區塊鏈技術超級社群。

免費·原創·專業·高效·系統

§ 區塊鏈技術QQ交流群:263270946

§ 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

 

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

 ​