如何在结构中设置多通道配置?是否有可能从同伴加入的频道获取数据?
我创建了2个名为channel1和channel2的频道。
Peer0和peer1 - 加入所有频道
Peer2和peer3 - 加入channel1
Peer4和Peer5 - 加入channel2
预期结果是:
Peer0和Peer1能够看到来自channel1和channel2的数据 Peer2和Peer3只能看到来自channel1的数据 Peer4和Peer5只能看到来自channel2的日期。
答案 0 :(得分:0)
Hyperledger Fabric建议在构建管理性(默认)网络后,通过添加和创建其余的组织,联盟及其渠道来扩展网络。
您可以从“ Blockchain network”(它依次显示构建顺序。)或BYFN tutorial中获得该信息和示例。比立即找到如何建立“多渠道网络”要容易得多。
无论如何,首先,您的频道配置(例如configtx.yaml)必须获得两个联盟定义。因此,一个联盟指的是一个渠道,有多少个(或哪个)组织参与其中。这意味着通过定义联盟来创建渠道。
在您的情况下,假设您定义了3个ORG和6个对等点(或者,可以定义很多不同类型的网络模型。)
联盟的定义如下(这不是完全正确的完整代码,它只是了解我们如何处理...的一个示例)
--- configtx.yaml ---
Profiles:
OrgsOrdererGenesis:
...
Consortiums:
# refer to channel1
ConsortiumOne:
Organizations:
- ORG1
- ORG2
# refer to channel2
ConsortiumTwo:
Organizations:
- ORG1
- ORG3
...
channel1:
Consortiums: ConsortiumOne
Application:
<<: *ApplicationDefaults
Organizations:
- ORG1
- ORG2
channel2:
Consortiums: ConsortiumTwo
Application:
<<: *ApplicationDefaults
Organizations:
- ORG1
- ORG3
...
在另一种情况下,我们将只与一个财团合作;
Profiles:
OrgsOrdererGenesis:
...
Consortiums:
ConsortiumAll:
Organizations:
- ORG1
- ORG2
- ORG3
...
channel1:
Consortiums: ConsortiumAll
Application:
<<: *ApplicationDefaults
Organizations:
- ORG1
- ORG2
channel2:
Consortiums: ConsortiumAll
Application:
<<: *ApplicationDefaults
Organizations:
- ORG1
- ORG3
...
通过通道策略,您必须实现将适当的对等方连接到所创建的每个通道。我们不能在此评论中依次探讨建筑物多渠道的细节。参见此multichannel design document,它将对您有所帮助。或者,最好深入研究Hyperledger Docs支持的基本信息。
答案 1 :(得分:0)
有一个工具可以帮助您更轻松地生成预期的Hyperledger架构网络。 networkLancher
就像上面提到的Peter一样,您可以根据需要定义网络参与者,然后安排参与者加入所需的频道。
因此,此工具仅需输入几个命令行即可生成加密材料和docker-compose。此外,network.json
可以帮助您配置环境参数,容器连接...
以下是创建2通道Hyperledger架构网络的示例,该网络具有3个组织和3个对等组织之前的组织:
./networkLauncher.sh -o 3 -x 3 -r 3 -p 3 -k 3 -z 3 -n 2 -t kafka -f test
希望这会有所帮助。