我一直在关注Hyperledger的基本网络教程,我正在探索拥有2个对等体和2个频道的可能性,每个频道有一个对等体。
我已经使用configtxgen命令为第二个频道mychannel2.tx
创建了一个频道配置文件:
../bin/configtxgen -profile OneOrgChannel -outputCreateChannelTx /config/channel2.tx -channelID mychannel2
但是,我不知道如何创建第二个对等体来添加到此频道。我的猜测是我必须配置crypto-config.yaml
文件,但我不知道如何添加同行。
但是一旦我添加了一个对等体,我就可以使用basic network tutorial的start.sh脚本来创建一个频道,让第二个对等体像这样加入频道:
# Create the channel
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
# Join peer0.org1.example.com to the channel.
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel join -b mychannel.block
答案 0 :(得分:2)
要创建新的对等体,您只需为其组织签署的对等体生成适当的加密材料。为此,您可以使用cryptogen
cli工具,您可以在其中重复使用现有的crypto-config.yaml
文件,您需要使用模板定义组织的对等数量以及要生成的用户证书数量:
PeerOrgs:
- Name: Org1
Domain: org1.example.com
Template:
Count: 2
Users:
Count: 1
- Name: Org2
Domain: org2.example.com
Template:
Count: 2
Users:
Count: 1
在上面的示例中,它定义了两个具有两个对等组织的组织,每个组织一个用户。
接下来,你必须定义一个configtxgen
的频道来指定你的要求,对于你想要的情况:
2个对等体和2个通道,每个通道一个对等体。
因此需要定义将指定这些渠道的配置文件,现在是这些对等体属于同一组织的问题。假设他们来自不同的组织,因此配置将如下所示:
Profiles:
TwoOrgsOrdererGenesis:
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Consortiums:
SampleConsortium:
Organizations:
- *Org1
- *Org2
ChannelOne:
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
ChannelTwo:
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *Org2
现在,您需要为两个通道生成配置事务,以生成创建块并能够加入通道。
FABRIC_CFG_PATH=. configtxgen -profile ChannelOne -channelID channelone -outputCreateChannelTx=channelone.tx
FABRIC_CFG_PATH=. configtxgen -profile ChannelTwo -channelID channeltwo -outputCreateChannelTx=channeltwo.tx
最后,一旦您拥有每个频道的配置事务,您就可以将它们提交给订购服务,创建一个新频道,然后将对等体加入适当的频道。请注意,您无需更改crypto-config.yaml
。