超边缘结构中的多通道配置

时间:2018-05-24 06:42:13

标签: hyperledger-fabric blockchain

如何在结构中设置多通道配置?是否有可能从同伴加入的频道获取数据?

我创建了2个名为channel1和channel2的频道。

Peer0和peer1 - 加入所有频道
Peer2和peer3 - 加入channel1
Peer4和Peer5 - 加入channel2

预期结果是:

Peer0和Peer1能够看到来自channel1和channel2的数据 Peer2和Peer3只能看到来自channel1的数据 Peer4和Peer5只能看到来自channel2的日期。

2 个答案:

答案 0 :(得分:0)


Hyperledger Fabric建议在构建管理性(默认)网络后,通过添加和创建其余的组织,联盟及其渠道来扩展网络。

您可以从“ Blockchain network”(它依次显示构建顺序。)或BYFN tutorial中获得该信息和示例。比立即找到如何建立“多渠道网络”要容易得多。


无论如何,首先,您的频道配置(例如configtx.yaml)必须获得两个联盟定义。因此,一个联盟指的是一个渠道,有多少个(或哪个)组织参与其中。这意味着通过定义联盟来创建渠道。

在您的情况下,假设您定义了3个ORG和6个对等点(或者,可以定义很多不同类型的网络模型。)

  • ORG1贡献了2个对等体,分别为peer0和peer1
  • ORG2贡献了2个对等体,分别是peer2和peer3
  • ORG3贡献了2个对等体,分别是peer4和peer5

联盟的定义如下(这不是完全正确的完整代码,它只是了解我们如何处理...的一个示例)

--- 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

希望这会有所帮助。