4

EDIT: My previous question version focused on some confusion in the Orderer FAQ, but I think the below question better identifies the confusion with the Orderer (System) Channel:

Q: What specifically defines the boundaries of a Hyperledger Fabric Network?

In the Network Docs, the below diagram shows a "Network" (light blue box): HLF Network Diagram

The "Creating the Network" section states:

The network is created from the definition of the consortium including its clients, peers, channels, and ordering service(s). The ordering service is the administration point for the network because it contains the configuration for the channel(s) within the network. [emphasis mine]

This paragraph seems to first suggest that the Consortium defines the "Network" (and suggests a potential for multiple Orderer Channels?), but then states that the Ordering Service (singular?) is the backbone of the network.

Does this mean that the Orderer (System) Channel is what defines this "Network"? This would seem to indicate that only one Orderer Channel is possible in a Network (since it defines the network).

The Architecture section is also a bit confusing in this paragraph:

Partitioning (ordering service channels). Ordering service may support multiple channels. . . Even though some ordering service implementations included with Hyperledger Fabric support multiple channels, for simplicity of presentation, in the rest of this document, we assume ordering service consists of a single channel/topic.

I initially read this paragraph as referring to Application Channels, but it could possibly also be referring to Orderer System Channels. Is this section describing the potential for multiple Orderer (System) Channels?

If multiple Orderer Channels are possible, what is the definition of that "Network" (light blue box) in the diagram? What are the boundaries of this Network as compared to other Hyperledger Fabric networks in existence - could they possibly all overlap their various Orderer Channels to create one giant "Network"?

The configtx.yaml file also seems to indicate the potential for multiple Orderer Channels since the Orderers are defined in each separate Application channel Configuration Transaction vs. in a single, initial System Channel transaction:

Here is the v1.2 configtx.yaml file Profiles section:

Profiles:

    TwoOrgsOrdererGenesis:
        Capabilities:
            <<: *ChannelCapabilities
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg
            Capabilities:
                <<: *OrdererCapabilities
        Consortiums:
            SampleConsortium:
                Organizations:
                    - *Org1
                    - *Org2
    TwoOrgsChannel:
        Consortium: SampleConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
            Capabilities:
                <<: *ApplicationCapabilities

It would also be helpful to have the fourth FAQ answer clarified:

Although [it is possible to have an organization act both in an ordering and application role], it is a highly discouraged configuration. . .

If a completely separate organization is needed to manage the Orderers, what is the point of creating a "decentralized" transaction network with Hyperledger Fabric? Any "consortium" of companies will need to involve a third party anyway.

sean
  • 3,484
  • 5
  • 27
  • 45
  • This may get more action on their mailing list or chat server: https://chat.hyperledger.org/channel/fabric – Jorden Oct 04 '18 at 21:41
  • You nailed it! With the introduction of the Raft orderer in version 1.4, each company can contribute their own orderer node - at least that's what they say. Prior to that the ordering service was centralized. – morpheus Jan 24 '20 at 17:25

0 Answers0