本教程将讲述如何一步一步通过配置文件搭建hyperledger fabric区块链网络,教程涉及以下步骤,分别是
#1.生成注册证书材料和各个organization的证明材料(CA证书)
#2.生成orderer创世纪区块提供ordering服务,以及生成channel相关信息的配置文件
#3.创建channel以及把peer节点加入到channel中
#4.安装chaincode并初始化进行测试验收
以下是每个步骤的详解:
第一步:生成注册材料包括order organization和peer organization的root certificate(ca-cert)以及属于这些organization的成分的身份注册与证明材料;其中每个单独的organization拥有其ca证书,属于该organization中的成分的身份注册与证明材料(密钥)由该organization的ca颁发,最终通过私钥-公钥对完成对单独个体的数字签名身份认证。以上步骤涉及到的organization和属于该organization的成分在文件-crypto-config.yaml-中声明,并且通过工具cryptogen生成证书和密钥,该文件的具体内容如下:
OrdererOrgs:
- Name: Orderer
Domain: example.com
Specs:
- Hostname: orderer
PeerOrgs:
- Name: Org1
Domain: org1.example.com
EnableNodeOUs: true
Users:
Count: 1
- Name: Org2
Domain: org2.example.com
EnableNodeOUs: true
Template:
Count: 2
Users:
Count: 1
该文件涉及到三个organization,分别是一个OrdererOrgs与两个PeerOrgs。
这一步操作通过以下语句完成:
../bin/cryptogen generate --config=./crypto-config.yaml
由此生成的证书和密钥保存在文件夹-crypto-config-下。
第二步:在注册材料生成了以后,就需要定义一系列属于区块链系统的定义,包括一个orderer创世纪块(orderer genesis block),用以提供ordering服务(这一步理解为创建一个order organization以及该organization下的orderer节点);一个通道配置交易文件,用以在channel创建时广播到orderer,定义该channel的配置信息,包括属于该channel的organization等;以及多个anchor peer transaction(例子中是2个)文件,每个anchor peer transaction对应一个organization,用以指定该channel下每个organization的anchor peer(理解为organization的第一个peer)。
以上步骤涉及到的配置都在文件-configtx.yaml-中声明,并且通过工具configtxgen生成相关成分,-configtx.yaml-的内容如下:
Organizations:
- &OrdererOrg
Name: OrdererOrg
ID: OrdererMSP
MSPDir: crypto-config/ordererOrganizations/example.com/msp
- &Org1
Name: Org1MSP
ID: Org1MSP
MSPDir: crypto-config/peerOrganizations/org1.example.com/msp
AnchorPeers:
- Host: peer0.org1.example.com
Port: 7051
- &Org2
Name: Org2MSP
ID: Org2MSP
MSPDir: crypto-config/pe