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):
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.