Skip to content

Commit

Permalink
Add Create a channel tutorial without a system channel and using test…
Browse files Browse the repository at this point in the history
… network

Signed-off-by: pama-ibm <[email protected]>
  • Loading branch information
pamandrejko authored and denyeart committed Feb 3, 2021
1 parent 2f69b42 commit 7ad69c7
Show file tree
Hide file tree
Showing 14 changed files with 474 additions and 444 deletions.
27 changes: 0 additions & 27 deletions docs/source/Fabric-FAQ.rst
Original file line number Diff line number Diff line change
Expand Up @@ -197,33 +197,6 @@ Ordering Service

..
:Question:
**What is the orderer system channel?**

:Answer:
The orderer system channel (sometimes called ordering system channel) is the
channel the orderer is initially bootstrapped with. It is used to orchestrate
channel creation. The orderer system channel defines consortia and the initial
configuration for new channels. At channel creation time, the organization
definition in the consortium, the ``/Channel`` group's values and policies, as
well as the ``/Channel/Orderer`` group's values and policies, are all combined
to form the new initial channel definition.

..
:Question:
**If I update my application channel, should I update my orderer system
channel?**

:Answer:
Once an application channel is created, it is managed independently of any
other channel (including the orderer system channel). Depending on the
modification, the change may or may not be desirable to port to other
channels. In general, MSP changes should be synchronized across all channels,
while policy changes are more likely to be specific to a particular channel.

..
:Question:
**Can I have an organization act both in an ordering and application role?**

Expand Down
2 changes: 1 addition & 1 deletion docs/source/capabilities_concept.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ While it is possible to create an ordering service using a legacy process in whi

If you do use the [legacy system channel process](./create_channel/create_channel.html), the **orderer** and **channel** capabilities of a channel are inherited by default from the ordering system channel, where modifying them are the exclusive purview of ordering service admins. As a result, peer organizations should inspect the genesis block of a channel prior to joining their peers to that channel. Although the channel capability is administered by the orderers in the orderer system channel (just as the consortium membership is), it is typical and expected that the ordering admins will coordinate with the consortium admins to ensure that the channel capability is only upgraded when the consortium is ready for it. Note: because the ordering system channel does not define an **application** capability, this capability must be specified in the channel profile when creating the genesis block for the channel.

If you use the recommended process to [Create a channel without a system channel](./create_channel/create_channel_participation.html), all these capability levels are specified in the application channel genesis block that is created.
If you use the recommended process to [Create a channel](./create_channel/create_channel_participation.html), all these capability levels are specified in the application channel genesis block that is created.

**Take caution** when modifying an application capability. Because the ordering service does not validate that the capability level exists, it will allow a channel to be modified to contain, for example, a v1.8 application capability even if no such capability exists. Any peer attempting to read a configuration block with this capability would, as we have shown, crash, and even if it was possible to modify the channel once again to a valid capability level, it would not matter, as no peer would be able to get past the block with the invalid v1.8 capability.

Expand Down
396 changes: 0 additions & 396 deletions docs/source/create_channel/create_channel.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/source/create_channel/create_channel_config.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ The `TwoOrgsChannel` provides the name of the consortium, `SampleConsortium`, ho

### SampleAppChannelEtcdRaft

The `SampleAppChannelEtcdRaft` profile is provided for customers that prefer to create a channel without a system channel by using the `osnadmin CLI`. The major difference is that a consortium definition is no longer required. Check out the [Create a channel without a system channel](create_channel_participation.html) tutorial to learn more about how to use this profile.
The `SampleAppChannelEtcdRaft` profile is provided for customers that prefer to create a channel without a system channel by using the `osnadmin CLI`. The major difference is that a consortium definition is no longer required. Check out the [Create a channel](create_channel_participation.html) tutorial to learn more about how to use this profile.

```
SampleAppChannelEtcdRaft:
Expand Down
15 changes: 9 additions & 6 deletions docs/source/create_channel/create_channel_overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,14 @@ Because of the fundamental role that channels play in the operation and governan
of Fabric, we provide a series of tutorials that cover different aspects
of how channels are created. Fabric v2.3 introduces the capability to
create a channel without requiring a system channel, removing an extra
layer of administration from the process. The **Create a channel without a system channel**
tutorial introduces the new flow. The legacy process for creating a channel continues to be
supported and is described in the **Create a channel with a system channel (legacy)** tutorial.
Both tutorials describe the operational steps that need to be taken
by a network administrator. The :doc:`create_channel_config` tutorial
layer of administration from the process. The **Create a channel**
tutorial introduces the new flow. If you don't yet have a network and prefer to use the
test network, see **Create a channel using the test network**.
The legacy process for creating a channel based on a system channel continues to be
supported and is described in the Fabric v2.2
`Create a channel tutorial <https://hyperledger-fabric.readthedocs.io/en/release-2.2/create_channel/create_channel.html>`_.
Each tutorial describes the operational steps that need to be taken
by a network administrator to create a channel. For a deeper dive, the :doc:`create_channel_config` tutorial
introduces the conceptual aspects of creating a channel, followed by a
separate discussion of :doc:`channel_policies`.

Expand All @@ -27,7 +30,7 @@ separate discussion of :doc:`channel_policies`.
:maxdepth: 1

create_channel_participation.md
create_channel.md
create_channel_test_net.md
create_channel_config.md
channel_policies.md

Expand Down
6 changes: 4 additions & 2 deletions docs/source/create_channel/create_channel_participation.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Create a channel without a system channel
# Create a channel

To simplify the channel creation process and enhance the privacy and scalability of channels, it is now possible to create application channels (where transactions involving assets happen) without first creating a “system channel” managed by the ordering service. Use this tutorial to learn how to create new channels without a system channel by using the `configtxgen` tool to create a genesis block and the `osnadmin CLI` (which runs against a REST API exposed by each ordering service node) to join ordering nodes to a channel. This process allows ordering nodes to join (or leave) any number of channels as needed, similar to how peers can participate in multiple channels.

**How this process differs from the legacy process:**
**How this process differs from the legacy Fabric v2.2 process:**

* **System channel no longer required**: Besides the creation of the system channel representing an extra step (as compared to the new process), this system channel created an extra layer of administration that, for some use cases, provided no tangible benefit.
* **Consortium no longer required**: You no longer need to define the set of organizations, known as the “consortium”, who are permitted to create channels on a particular ordering service. With this new process, all channels are application channels, so the concept of a list of organizations who can create channels no longer applies. Any set of organizations can get together and create a channel using a defined set of ordering nodes (which become the ordering service of that channel).
Expand All @@ -29,6 +29,8 @@ While creating the channel, this tutorial will take you through the following st
- [Step three: Join additional ordering nodes](#step-three-join-additional-ordering-nodes)
- [Next steps](#next-steps)

**Note**: If you prefer to learn how to create a channel with the test network instead, check out the [Create a channel using the test network](create_channel_test_net.html) tutorial.

## Folder structure

This tutorial uses the following folder structure for the generated orderer organization MSP and orderer certificates, and while it is not mandatory, it is useful when referring to the certificates referenced by the commands.
Expand Down
Loading

0 comments on commit 7ad69c7

Please sign in to comment.