Fabric從1.X開始,在擴展性及安全性上面有了大大的提升,且新增了諸多的新特性:
多通道:支持多通道,提高隔離安全性。
可拔插的組件:支持共識組件、權限管理組件等可拔插功能。
賬本數據可被存儲為多種格式。
分化了Peer節點的多種角色,可以根據具體情況實現靈活部署
Hyperledger Fabric超級賬本整體邏輯架構如下圖所示:

Fabric四大核心組件:
Membership Services:成員管理保證了Fabric平台訪問的安全性。提供了成員的注冊、管理及審核功能。
Blockchain Services:是區塊鏈的核心部分,為區塊鏈的主體功能提供了底層支撐;包括共識管理、分布式賬本實現、賬本的存儲以及網絡中各節點之間的通信實現。
BlockChain:區塊之間以Hash連接為結構的交易日志。peer從order service接收交易區塊k,並根據背書策略和並發沖突標記區塊上的交易是否有效,然后將該區塊追加到peer文件系統中的Hash Chain上。
Transaction:交易有對鏈碼的部署或調用兩種操作類型:
部署交易:部署是請求在peer上啟動鏈碼容器;創建新的鏈碼並設置一個程序作為參數。當一個部署交易執行成功,表明鏈碼已被安裝到區塊鏈上。
調用交易:調用是從賬本中請求讀寫集。是在之前已部署鏈碼的情況下執行一個操作。調用交易將使用鏈碼提供的一個函數。當成功時,鏈碼執行特定的函數對賬本數據進行操作(修改狀態),並返回操作結果。
Chaincode Services:提供了鏈碼的部署及運行時的所需環境。
Chaincode:是一個可以對賬本數據進行操作的可開發的組件程;鏈碼被布署運行在一個安全的容器中;用戶可以通過調用鏈碼中的指定函數對賬本數據進行修改或讀取操作。
Event:為各組件之間提供異步通信提供了技術實現。
2.1.2 實際中的運行時架構
實際運行時架構如下圖所示:

運行時架構圖中各項解釋如下:
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節點?
只需要連接到背書節點即可。
背書節點怎么指定?
在實例化鏈碼時由背書策略指定。
