【发布时间】:2019-02-20 13:05:59
【问题描述】:
可以在不了解以后将成为联盟一部分的组织的情况下引导订购者吗?
结构样本通常在 configtx.yaml 中定义了一些联盟。
可以仅使用订购者组织的知识来创建订购者通用创世块吗? 这是否允许以后添加组织?
【问题讨论】:
标签: hyperledger-fabric hyperledger
可以在不了解以后将成为联盟一部分的组织的情况下引导订购者吗?
结构样本通常在 configtx.yaml 中定义了一些联盟。
可以仅使用订购者组织的知识来创建订购者通用创世块吗? 这是否允许以后添加组织?
【问题讨论】:
标签: hyperledger-fabric hyperledger
是的,您可以在初始频道配置后添加对等组织。
请参阅tutorial 以便稍后添加组织。
【讨论】:
是的,Orderer Genesis Block 有一个默认配置的系统通道,通常称为testchainid,其中的所有联盟和组织都是此通道配置块的一部分。
系统通道配置的典型结构如下所示
&ConfigGroup{
Groups: map<string, *ConfigGroup> {
"Application":&ConfigGroup{
Groups:map<String, *ConfigGroup> {
{{org_name}}:&ConfigGroup{
Values:map<string, *ConfigValue>{
"MSP":msp.MSPConfig,
"AnchorPeers":peer.AnchorPeers,
},
},
},
},
"Orderer":&ConfigGroup{
Groups:map<String, *ConfigGroup> {
{{org_name}}:&ConfigGroup{
Values:map<string, *ConfigValue>{
"MSP":msp.MSPConfig,
},
},
},
Values:map<string, *ConfigValue> {
"ConsensusType":orderer.ConsensusType,
"BatchSize":orderer.BatchSize,
"BatchTimeout":orderer.BatchTimeout,
"KafkaBrokers":orderer.KafkaBrokers,
},
},
"Consortiums":&ConfigGroup{
Groups:map<String, *ConfigGroup> {
{{consortium_name}}:&ConfigGroup{
Groups:map<string, *ConfigGroup> {
{{org_name}}:&ConfigGroup{
Values:map<string, *ConfigValue>{
"MSP":msp.MSPConfig,
},
},
},
Values:map<string, *ConfigValue> {
"ChannelCreationPolicy":common.Policy,
}
},
},
},
},
Values: map<string, *ConfigValue> {
"HashingAlgorithm":common.HashingAlgorithm,
"BlockHashingDataStructure":common.BlockDataHashingStructure,
"Consortium":common.Consortium,
"OrdererAddresses":common.OrdererAddresses,
},
}
注意其中的"Consortiums":&ConfigGroup{...,这是配置组,您需要在其中添加要添加到联盟的新组织的 MSP。
将组织添加到联盟的过程与将组织添加到频道的过程类似,不同之处在于您将组织添加到系统频道。
另一个旁注:添加新组织不需要联盟中现有组织的签名,Orderer 可以单独完成。
【讨论】: