1. 程式人生 > >ChainDesk|搭建Fabric網路:生成組織結構與身份證書

ChainDesk|搭建Fabric網路:生成組織結構與身份證書

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

 

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

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


 

目標

明確生成組織結構及身份證書所需的配置檔案及其內容含義

如何使用命令生成對應的組織結構信身份證書

任務實現

自動化指令碼 byfn.sh 可以自動幫我們建立網路環境執行時所需的所有內容,但在一些特定情況之下,我們根據不同的需求需要自定義一些設定。

現在,我們來實現最重要的環節,哪些配置檔案的相關設定會影響建立 Hyperledger Fabric 網路環境執行時所需要的相應內容。

3.1.1 與組織結構及身份證書關聯的配置檔案

如果要生成 Hyperledger Fabric 網路環境中所需的組織結構及身份證書資訊,組織中的成員提供節點服務,相應的證書代表身份,可以在實體間進行通訊以及交易時進行簽名與驗證。生成過程依賴crypto-config.yaml 配置檔案,該配置檔案路徑 :fabric-samples/first-network/crypto-config.yaml

crypto-config.yaml 配置檔案包含如下內容:

 

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

 

該配置檔案指定了 OrdererOrgs 及 PeerOrgs 兩個組織資訊。在 PeerOrgs 配置資訊中指定了 Org1 與 Org2 兩個組織。每個組織使用 Template 屬性下的 Count 指定了兩個節點, Users 屬性下的 Count 指定了一個使用者。

組織資訊中還包含組織名稱、域名、節點數量、及新增的使用者數量等相關資訊。

Peer 節點的域名組成為 peer + 起始數字0 + Domain,如 Org1 中的兩個 peer 節點的完整域名為:

peer0.org1.example.com,peer1.org1.example.com。

 

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

 

3.1.2 如何生成組織結構及身份證書

下面我們來實現組織結構及身份證書的生成。在 Hyperledger Fabric 中提供了一個工具 cryptogen ,該工具根據指定的配置檔案實現標準化自動生成。執行過程如下:

 

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

 

證書和金鑰(即MSP材料)將被輸出到當前一個名為 crypto-config 的目錄中,該目錄下有兩個子目錄:

ordererOrganizations 子目錄下包括構成 Orderer 組織(1個 Orderer 節點)的身份資訊

peerOrganizations 子目錄下為所有的 Peer 節點組織(2個組織,4個節點)的相關身份資訊. 其中最關鍵的是 MSP 目錄, 代表了實體的身份資訊

Cryptogen 工具按照配置檔案中指定的結構生成了對應的組織和金鑰、及相關的證書檔案

生成的 crypto-config 的完整結構如下:

 

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

 

在生成的目錄結構中最關鍵的是各個資源下的 msp 目錄內容,儲存了生成的代表 MSP 實體身份的各種證書檔案,一般包括:

admincerts :管理員的身份證書檔案

cacerts :信任的根證書檔案

keystore :節點的簽名私鑰檔案

signcerts :節點的簽名身份證書檔案

tlscacerts::TLS 連線用的證書

intermediatecerts (可選):信任的中間證書

crls (可選):證書撤銷列表

config.yaml (可選):記錄OrganizationalUnitldentifiers 資訊,包括根證書位置和ID資訊

這些身份檔案隨後可以分發到對應的Orderer 節點和Peer 節點上,並放到對應的MSP路徑下,用於簽名驗證使用。

FAQ

組織結構中可以新增新的組織嗎?

生成組織結構前,可以通過 crypto-config.yaml 配置檔案指定具體的組織資訊,如果是多個組織,只需要在該配置檔案中 PeerOrgs 節點最後新增新的組織資訊即可。

Org 組織中可以指定多個 Peer 節點嗎?

可以指定多個節點,只需要修改 Template 下的 Count 值即可(該值代表組織下有幾個節點)。

組織結構生成之後可以隨時新增或修改嗎?

目前,Hyperledger Fabric 無法對已生成的組織結構進行修改;所以需要提前做好規劃。在未來會支援對組織結構的節點進行動態修改。

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

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


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

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

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

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