本文為Hyperledger Fabric 1.4 產(chǎn)品鏈搭建教程系列第一篇歧匈,介紹MyFabric Demo鏈的各種組織和身份如何創(chuàng)建。
本篇代碼可以從Github上下載 - myfabric-demo-chain
代碼目錄結(jié)構(gòu)如下
myfabric-demo-chain
├── chaincode
├── org0 //org0組織目錄
├── org0-orderer
├── org1 //org1組織目錄
├── org1-peer
├── org2 //org2組織目錄
├── org2-peer
├── peer-cli
├── scripts
├── start-ca.sh //ca啟動腳本
├── start-chain.sh
├── start.sh
├── stop-ca.sh //ca結(jié)束腳本
├── stop-chain.sh
└── stop.sh
本節(jié)教程相關(guān)部分已用//
標出阔逼。
MyFabric Demo鏈包含3個組織阔挠,org0医舆,org1和org2
start-ca.sh
負責調(diào)用3個組織里面的start.sh
腳本
stop-ca.sh
負責調(diào)用3個組織里面的stop.sh
腳本
org0提供1個orderer節(jié)點,目錄結(jié)構(gòu)如下
org0
├── config
│ ├── ica-fabric-ca-server-config.yaml //中間CA服務(wù)配置文件
│ └── rca-fabric-ca-server-config.yaml //根CA服務(wù)配置文件
├── data
│ ├── admin
│ │ ├── msp //組織admin msp目錄
│ │ └── tls //組織admin tls目錄
│ ├── msp //組織msp目錄
│ │ ├── admincerts
│ │ ├── cacerts
│ │ ├── intermediatecerts
│ │ ├── keystore
│ │ ├── signcerts
│ │ ├── tlscacerts
│ │ ├── tlsintermediatecerts
│ │ └── user
│ ├── orderer
│ │ ├── msp //組織orderer msp目錄
│ │ └── tls //組織orderer tls目錄
│ ├── org0-ca-cert.pem //組織根CA證書
│ └── org0-ca-chain.pem //組織中間CA證書
├── docker-compose.yml
├── start.sh
└── stop.sh
start.sh
腳本啟動docker compose振坚,生成data
下的各個身份目錄stop.sh
腳本關(guān)閉docker composedocker-compose
啟動3個docker薇搁,根CA服務(wù)docker,中間CA服務(wù)docker渡八,身份生成docker
Hyperledger Fabric通過MSP管理各種身份啃洋,詳細概念請參閱Membership。
主要有兩個用途
channel msp - 保存在鏈上屎鳍,用來定義組織管理員宏娄,CA證書等信息。此msp沒有自己的身份文件逮壁。上圖中
org0/data/msp
即為channel msp孵坚,其中keystore
和signcerts
目錄為空。local msp - 保存在本地,提供鏈各種角色(client卖宠,orderer巍杈,peer)的身份信息。此msp需要身份文件用來簽名逗堵。上圖中
org0/data/orderer/msp
即為local msp表示orderer身份秉氧,org0/data/admin/msp
也為local msp表示組織admin身份。它們下面的目錄結(jié)構(gòu)和組織msp下的目錄結(jié)構(gòu)類似蜒秤,只是其中keystore
和signcerts
目錄存有身份文件汁咏。
如果開啟了tls安全傳輸則需要使用對應(yīng)tls
目錄下的身份文件。
org1提供2個peer節(jié)點作媚,目錄結(jié)構(gòu)如下
org1
├── config
│ ├── ica-fabric-ca-server-config.yaml //中間CA服務(wù)配置文件
│ └── rca-fabric-ca-server-config.yaml //根CA服務(wù)配置文件
├── data
│ ├── admin
│ │ ├── msp //組織admin msp目錄
│ │ └── tls //組織admin tls目錄
│ ├── msp //組織msp目錄
│ │ ├── admincerts
│ │ ├── cacerts
│ │ ├── intermediatecerts
│ │ ├── keystore
│ │ ├── signcerts
│ │ ├── tlscacerts
│ │ ├── tlsintermediatecerts
│ │ └── user
│ ├── org1-ca-cert.pem //組織根CA證書
│ ├── org1-ca-chain.pem //組織中間CA證書
│ ├── peer
│ │ ├── peer1
│ │ │ ├── msp //組織peer1 msp目錄
│ │ │ └── tls //組織peer1 tls目錄
│ │ └── peer2
│ │ ├── msp //組織peer2 msp目錄
│ │ └── tls //組織peer2 tls目錄
│ └── user
│ ├── msp
│ └── tls
├── docker-compose.yml
├── start.sh
└── stop.sh
其目錄結(jié)構(gòu)和org0基本相同攘滩,唯一區(qū)別是兩個peer身份目錄代替了一個orderer身份目錄。
根CA服務(wù)配置參數(shù)纸泡,中間CA服務(wù)配置參數(shù)以及調(diào)用它們生成相應(yīng)的身份目錄漂问,請閱讀源代碼,這里不再敘述女揭。
此過程的核心要點以及關(guān)鍵注意事項蚤假。
I. fabric ca server及fabric ca client調(diào)用流程為
指定fabric ca server 啟動用戶名和密碼,啟動
fabric-ca-server
指定
FABRIC_CA_CLIENT_HOME
目錄(此目錄表明當前執(zhí)行fabric-ca-client
命令的身份)吧兔,調(diào)用fabric-ca-client enroll
方法生成身份證書磷仰。調(diào)用
fabric-ca-client register
方法,生成新用戶指定
FABRIC_CA_CLIENT_HOME
指向新用戶目錄境蔼,調(diào)用fabric-ca-client enroll
方法生成新用戶身份證書灶平。可以生成兩種證書箍土,標準msp身份和tls連接用身份逢享。默認為生成msp身份,--enrollment.profile tls
表示生成tls身份吴藻。
II. 身份證書可以使用在線工具查看內(nèi)容瞒爬。
下面給出幾種證書內(nèi)容示例,注意標記部分
中間CA證書
用戶證書
peer tls證書
Subject Alternative Names由--csr.hosts $PEER_HOST
指定沟堡。它的值疮鲫,Common Name值以及證書相關(guān)命名建議采用域名命名規(guī)范。從前到后弦叶,范圍越來越大,并且不要包含_
這種特殊字符妇多。
III. 修改證書中的默認names
Hyperledger Fabric證書中的默認names為 /C=US/ST=North Carolina/O=Hyperledger/OU=Fabric
伤哺,可以自定義,Demo中改為/C=CN/ST=Si Chuan/L=Cheng Du/O=My Fabric Demo/
。
CA證書中的names由CA服務(wù)配置文件中csr
部分指定立莉,其它生成證書的names由--csr.names
指定绢彤。
本篇完,請繼續(xù)閱讀Hyperledger Fabric 1.4 產(chǎn)品鏈搭建教程系列第二篇 - Hyperledger Fabric 1.4 產(chǎn)品鏈搭建教程 (二) —— MyFabric Demo鏈節(jié)點啟動及合約部署調(diào)用