github.com/yacovm/fabric@v2.0.0-alpha.0.20191128145320-c5d4087dc723+incompatible/docs/source/network/network.md (about)

     1  # Blockchain network
     2  
     3  This topic will describe, **at a conceptual level**, how Hyperledger Fabric
     4  allows organizations to collaborate in the formation of blockchain networks.  If
     5  you're an architect, administrator or developer, you can use this topic to get a
     6  solid understanding of the major structure and process components in a
     7  Hyperledger Fabric blockchain network. This topic will use a manageable worked
     8  example that introduces all of the major components in a blockchain network.
     9  After understanding this example you can read more detailed information about
    10  these components elsewhere in the documentation, or try
    11  [building a sample network](../build_network.html).
    12  
    13  After reading this topic and understanding the concept of policies, you will
    14  have a solid understanding of the decisions that organizations need to make to
    15  establish the policies that control a deployed Hyperledger Fabric network.
    16  You'll also understand how organizations manage network evolution using
    17  declarative policies -- a key feature of Hyperledger Fabric. In a nutshell,
    18  you'll understand the major technical components of Hyperledger Fabric and the
    19  decisions organizations need to make about them.
    20  
    21  ## What is a blockchain network?
    22  
    23  A blockchain network is a technical infrastructure that provides ledger and
    24  smart contract (chaincode) services to applications. Primarily, smart contracts
    25  are used to generate transactions which are subsequently distributed to every
    26  peer node in the network where they are immutably recorded on their copy of the
    27  ledger. The users of applications might be end users using client applications
    28  or blockchain network administrators.
    29  
    30  In most cases, multiple [organizations](../glossary.html#organization) come
    31  together as a [consortium](../glossary.html#consortium) to form the network and
    32  their permissions are determined by a set of [policies](../glossary.html#policy)
    33  that are agreed by the consortium when the network is originally configured.
    34  Moreover, network policies can change over time subject to the agreement of the
    35  organizations in the consortium, as we'll discover when we discuss the concept
    36  of *modification policy*.
    37  
    38  ## The sample network
    39  
    40  Before we start, let's show you what we're aiming at! Here's a diagram
    41  representing the **final state** of our sample network.
    42  
    43  Don't worry that this might look complicated! As we go through this topic, we
    44  will build up the network piece by piece, so that you see how the organizations
    45  R1, R2, R3 and R4 contribute infrastructure to the network to help form it. This
    46  infrastructure implements the blockchain network, and it is governed by policies
    47  agreed by the organizations who form the network -- for example, who can add new
    48  organizations. You'll discover how applications consume the ledger and smart
    49  contract services provided by the blockchain network.
    50  
    51  ![network.structure](./network.diagram.1.png)
    52  
    53  *Four organizations, R1, R2, R3 and R4 have jointly decided, and written into an
    54  agreement, that they will set up and exploit a Hyperledger Fabric
    55  network. R4 has been assigned to be the network initiator  -- it has been given
    56  the power to set up the initial version of the network. R4 has no intention to
    57  perform business transactions on the network. R1 and R2 have a need for a
    58  private communications within the overall network, as do R2 and R3.
    59  Organization R1 has a client application that can perform business transactions
    60  within channel C1. Organization R2 has a client application that can do similar
    61  work both in channel C1 and C2. Organization R3 has a client application that
    62  can do this on channel C2. Peer node P1 maintains a copy of the ledger L1
    63  associated with C1. Peer node P2 maintains a copy of the ledger L1 associated
    64  with C1 and a copy of ledger L2 associated with C2. Peer node P3 maintains a
    65  copy of the ledger L2 associated with C2. The network is governed according to
    66  policy rules specified in network configuration NC4, the network is under the
    67  control of organizations R1 and R4. Channel C1 is governed according to the
    68  policy rules specified in channel configuration CC1; the channel is under the
    69  control of organizations R1 and R2.  Channel C2 is governed according to the
    70  policy rules specified in channel configuration CC2; the channel is under the
    71  control of organizations R2 and R3. There is an ordering service O4 that
    72  services as a network administration point for N, and uses the system channel.
    73  The ordering service also supports application channels C1 and C2, for the
    74  purposes of transaction ordering into blocks for distribution. Each of the four
    75  organizations has a preferred Certificate Authority.*
    76  
    77  ## Creating the Network
    78  
    79  Let's start at the beginning by creating the basis for the network:
    80  
    81  ![network.creation](./network.diagram.2.png)
    82  
    83  *The network is formed when an orderer is started. In our example network, N,
    84  the ordering service comprising a single node, O4, is configured according to a
    85  network configuration NC4, which gives administrative rights to organization
    86  R4. At the network level, Certificate Authority CA4 is used to dispense
    87  identities to the administrators and network nodes of the R4 organization.*
    88  
    89  We can see that the first thing that defines a **network, N,** is an **ordering
    90  service, O4**. It's helpful to think of the ordering service as the initial
    91  administration point for the network. As agreed beforehand, O4 is initially
    92  configured and started by an administrator in organization R4, and hosted in R4.
    93  The configuration NC4 contains the policies that describe the starting set of
    94  administrative capabilities for the network. Initially this is set to only give
    95  R4 rights over the network. This will change, as we'll see later, but for now R4
    96  is the only member of the network.
    97  
    98  ### Certificate Authorities
    99  
   100  You can also see a Certificate Authority, CA4, which is used to issue
   101  certificates to administrators and network nodes. CA4 plays a key role in our
   102  network because it dispenses X.509 certificates that can be used to identify
   103  components as belonging to organization R4. Certificates issued by CAs
   104  can also be used to sign transactions to indicate that an organization endorses
   105  the transaction result -- a precondition of it being accepted onto the
   106  ledger. Let's examine these two aspects of a CA in a little more detail.
   107  
   108  Firstly, different components of the blockchain network use certificates to
   109  identify themselves to each other as being from a particular organization.
   110  That's why there is usually more than one CA supporting a blockchain network --
   111  different organizations often use different CAs. We're going to use four CAs in
   112  our network; one for each organization. Indeed, CAs are so important that
   113  Hyperledger Fabric provides you with a built-in one (called *Fabric-CA*) to help
   114  you get going, though in practice, organizations will choose to use their own
   115  CA.
   116  
   117  The mapping of certificates to member organizations is achieved by via
   118  a structure called a
   119  [Membership Services Provider (MSP)](../glossary.html#membership-services).
   120  Network configuration NC4 uses a named
   121  MSP to identify the properties of certificates dispensed by CA4 which associate
   122  certificate holders with organization R4. NC4 can then use this MSP name in
   123  policies to grant actors from R4 particular
   124  rights over network resources. An example of such a policy is to identify the
   125  administrators in R4 who can add new member organizations to the network. We
   126  don't show MSPs on these diagrams, as they would just clutter them up, but they
   127  are very important.
   128  
   129  Secondly, we'll see later how certificates issued by CAs are at the heart of the
   130  [transaction](../glossary.html#transaction) generation and validation process.
   131  Specifically, X.509 certificates are used in client application
   132  [transaction proposals](../glossary.html#proposal) and smart contract
   133  [transaction responses](../glossary.html#response) to digitally sign
   134  [transactions](../glossary.html#transaction).  Subsequently the network nodes
   135  who host copies of the ledger verify that transaction signatures are valid
   136  before accepting transactions onto the ledger.
   137  
   138  Let's recap the basic structure of our example blockchain network. There's a
   139  resource, the network N, accessed by a set of users defined by a Certificate
   140  Authority CA4, who have a set of rights over the resources in the network N as
   141  described by policies contained inside a network configuration NC4.  All of this
   142  is made real when we configure and start the ordering service node O4.
   143  
   144  ## Adding Network Administrators
   145  
   146  NC4 was initially configured to only allow R4 users administrative rights over
   147  the network. In this next phase, we are going to allow organization R1 users to
   148  administer the network. Let's see how the network evolves:
   149  
   150  ![network.admins](./network.diagram.2.1.png)
   151  
   152  *Organization R4 updates the network configuration to make organization R1 an
   153  administrator too.  After this point R1 and R4 have equal rights over the
   154  network configuration.*
   155  
   156  We see the addition of a new organization R1 as an administrator -- R1 and R4
   157  now have equal rights over the network. We can also see that certificate
   158  authority CA1 has been added -- it can be used to identify users from the R1
   159  organization. After this point, users from both R1 and R4 can administer the
   160  network.
   161  
   162  Although the orderer node, O4, is running on R4's infrastructure, R1 has shared
   163  administrative rights over it, as long as it can gain network access. It means
   164  that R1 or R4 could update the network configuration NC4 to allow the R2
   165  organization a subset of network operations.  In this way, even though R4 is
   166  running the ordering service, and R1 has full administrative rights over it, R2
   167  has limited rights to create new consortia.
   168  
   169  In its simplest form, the ordering service is a single node in the network, and
   170  that's what you can see in the example. Ordering services are usually
   171  multi-node, and can be configured to have different nodes in different
   172  organizations. For example, we might run O4 in R4 and connect it to O2, a
   173  separate orderer node in organization R1.  In this way, we would have a
   174  multi-site, multi-organization administration structure.
   175  
   176  We'll discuss the ordering service a little [later in this topic](#the-ordering-service),
   177  but for now just think of the ordering service as an administration point which
   178  provides different organizations controlled access to the network.
   179  
   180  ## Defining a Consortium
   181  
   182  Although the network can now be administered by R1 and R4, there is very little
   183  that can be done. The first thing we need to do is define a consortium. This
   184  word literally means "a group with a shared destiny", so it's an appropriate
   185  choice for a set of organizations in a blockchain network.
   186  
   187  Let's see how a consortium is defined:
   188  
   189  ![network.consortium](./network.diagram.3.png)
   190  
   191  *A network administrator defines a consortium X1 that contains two members,
   192  the organizations R1 and R2. This consortium definition is stored in the
   193  network configuration NC4, and will be used at the next stage of network
   194  development. CA1 and CA2 are the respective Certificate Authorities for these
   195  organizations.*
   196  
   197  Because of the way NC4 is configured, only R1 or R4 can create new consortia.
   198  This diagram shows the addition of a new consortium, X1, which defines R1 and R2
   199  as its constituting organizations.  We can also see that CA2 has been added to
   200  identify users from R2. Note that a consortium can have any number of
   201  organizational members -- we have just shown two as it is the simplest
   202  configuration.
   203  
   204  Why are consortia important? We can see that a consortium defines the set of
   205  organizations in the network who share a need to **transact** with one another --
   206  in this case R1 and R2. It really makes sense to group organizations together if
   207  they have a common goal, and that's exactly what's happening.
   208  
   209  The network, although started by a single organization, is now controlled by a
   210  larger set of organizations.  We could have started it this way, with R1, R2 and
   211  R4 having shared control, but this build up makes it easier to understand.
   212  
   213  We're now going to use consortium X1 to create a really important part of a
   214  Hyperledger Fabric blockchain -- **a channel**.
   215  
   216  ## Creating a channel for a consortium
   217  
   218  So let's create this key part of the Fabric blockchain network -- **a channel**.
   219  A channel is a primary communications mechanism by which the members of a
   220  consortium can communicate with each other. There can be multiple channels in a
   221  network, but for now, we'll start with one.
   222  
   223  Let's see how the first channel has been added to the network:
   224  
   225  ![network.channel](./network.diagram.4.png)
   226  
   227  *A channel C1 has been created for R1 and R2 using the consortium definition X1.
   228  The channel is governed by a channel configuration CC1, completely separate to
   229  the network configuration.  CC1 is managed by R1 and R2 who have equal rights
   230  over C1. R4 has no rights in CC1 whatsoever.*
   231  
   232  The channel C1 provides a private communications mechanism for the consortium
   233  X1. We can see channel C1 has been connected to the ordering service O4 but that
   234  nothing else is attached to it. In the next stage of network development, we're
   235  going to connect components such as client applications and peer nodes. But at
   236  this point, a channel represents the **potential** for future connectivity.
   237  
   238  Even though channel C1 is a part of the network N, it is quite distinguishable
   239  from it. Also notice that organizations R3 and R4 are not in this channel -- it
   240  is for transaction processing between R1 and R2. In the previous step, we saw
   241  how R4 could grant R1 permission to create new consortia. It's helpful to
   242  mention that R4 **also** allowed R1 to create channels! In this diagram, it
   243  could have been organization R1 or R4 who created a channel C1. Again, note
   244  that a channel can have any number of organizations connected to it -- we've
   245  shown two as it's the simplest configuration.
   246  
   247  Again, notice how channel C1 has a completely separate configuration, CC1, to
   248  the network configuration NC4. CC1 contains the policies that govern the
   249  rights that R1 and R2 have over the channel C1 -- and as we've seen, R3 and
   250  R4 have no permissions in this channel. R3 and R4 can only interact with C1 if
   251  they are added by R1 or R2 to the appropriate policy in the channel
   252  configuration CC1. An example is defining who can add a new organization to the
   253  channel. Specifically, note that R4 cannot add itself to the channel C1 -- it
   254  must, and can only, be authorized by R1 or R2.
   255  
   256  Why are channels so important? Channels are useful because they provide a
   257  mechanism for private communications and private data between the members of a
   258  consortium. Channels provide privacy from other channels, and from the network.
   259  Hyperledger Fabric is powerful in this regard, as it allows organizations to
   260  share infrastructure and keep it private at the same time.  There's no
   261  contradiction here -- different consortia within the network will have a need
   262  for different information and processes to be appropriately shared, and channels
   263  provide an efficient mechanism to do this.  Channels provide an efficient
   264  sharing of infrastructure while maintaining data and communications privacy.
   265  
   266  We can also see that once a channel has been created, it is in a very real sense
   267  "free from the network". It is only organizations that are explicitly specified
   268  in a channel configuration that have any control over it, from this time forward
   269  into the future. Likewise, any updates to network configuration NC4 from this
   270  time onwards will have no direct effect on channel configuration CC1; for
   271  example if consortia definition X1 is changed, it will not affect the members of
   272  channel C1. Channels are therefore useful because they allow private
   273  communications between the organizations constituting the channel. Moreover, the
   274  data in a channel is completely isolated from the rest of the network, including
   275  other channels.
   276  
   277  As an aside, there is also a special **system channel** defined for use by the
   278  ordering service.  It behaves in exactly the same way as a regular channel,
   279  which are sometimes called **application channels** for this reason.  We don't
   280  normally need to worry about this channel, but we'll discuss a little bit more
   281  about it [later in this topic](#the-ordering-service).
   282  
   283  ## Peers and Ledgers
   284  
   285  Let's now start to use the channel to connect the blockchain network and the
   286  organizational components together. In the next stage of network development, we
   287  can see that our network N has just acquired two new components, namely a peer
   288  node P1 and a ledger instance, L1.
   289  
   290  ![network.peersledger](./network.diagram.5.png)
   291  
   292  *A peer node P1 has joined the channel C1. P1 physically hosts a copy of the
   293  ledger L1. P1 and O4 can communicate with each other using channel C1.*
   294  
   295  Peer nodes are the network components where copies of the blockchain ledger are
   296  hosted!  At last, we're starting to see some recognizable blockchain components!
   297  P1's purpose in the network is purely to host a copy of the ledger L1 for others
   298  to access. We can think of L1 as being **physically hosted** on P1, but
   299  **logically hosted** on the channel C1. We'll see this idea more clearly when we
   300  add more peers to the channel.
   301  
   302  A key part of a P1's configuration is an X.509 identity issued by CA1 which
   303  associates P1 with organization R1. Once P1 is started, it can **join** channel
   304  C1 using the orderer O4. When O4 receives this join request, it uses the channel
   305  configuration CC1 to determine P1's permissions on this channel. For example,
   306  CC1 determines whether P1 can read and/or write information to the ledger L1.
   307  
   308  Notice how peers are joined to channels by the organizations that own them, and
   309  though we've only added one peer, we'll see how  there can be multiple peer
   310  nodes on multiple channels within the network. We'll see the different roles
   311  that peers can take on a little later.
   312  
   313  ## Applications and Smart Contract chaincode
   314  
   315  Now that the channel C1 has a ledger on it, we can start connecting client
   316  applications to consume some of the services provided by workhorse of the
   317  ledger, the peer!
   318  
   319  Notice how the network has grown:
   320  
   321  ![network.appsmartcontract](./network.diagram.6.png)
   322  
   323  *A smart contract S5 has been installed onto P1.  Client application A1 in
   324  organization R1 can use S5 to access the ledger via peer node P1. A1, P1 and
   325  O4 are all joined to channel C1, i.e. they can all make use of the
   326  communication facilities provided by that channel.*
   327  
   328  In the next stage of network development, we can see that client application A1
   329  can use channel C1 to connect to specific network resources -- in this case A1
   330  can connect to both peer node P1 and orderer node O4. Again, see how channels
   331  are central to the communication between network and organization components.
   332  Just like peers and orderers, a client application will have an identity that
   333  associates it with an organization.  In our example, client application A1 is
   334  associated with organization R1; and although it is outside the Fabric
   335  blockchain network, it is connected to it via the channel C1.
   336  
   337  It might now appear that A1 can access the ledger L1 directly via P1, but in
   338  fact, all access is managed via a special program called a smart contract
   339  chaincode, S5. Think of S5 as defining all the common access patterns to the
   340  ledger; S5 provides a well-defined set of ways by which the ledger L1 can
   341  be queried or updated. In short, client application A1 has to go through smart
   342  contract S5 to get to ledger L1!
   343  
   344  Smart contracts can be created by application developers in each organization to
   345  implement a business process shared by the consortium members. Smart contracts
   346  are used to help generate transactions which can be subsequently distributed to
   347  every node in the network. We'll discuss this idea a little later; it'll be
   348  easier to understand when the network is bigger. For now, the important thing to
   349  understand is that to get to this point two operations must have been performed
   350  on the smart contract; it must have been **installed** on peers, and then
   351  **defined** on a channel.
   352  
   353  Hyperledger Fabric users often use the terms **smart contract** and
   354  **chaincode** interchangeably. In general, a smart contract defines the
   355  **transaction logic** that controls the lifecycle of a business object contained
   356  in the world state. It is then packaged into a chaincode which is then deployed
   357  to a blockchain network. Think of smart contracts as governing transactions,
   358  whereas chaincode governs how smart contracts are packaged for deployment.
   359  
   360  ### Installing a chaincode package
   361  
   362  After a smart contract S5 has been developed, an administrator in organization
   363  R1 must create a chaincode package and [install](../glossary.html#install) it
   364  onto peer node P1. This is a straightforward operation; once completed, P1 has
   365  full knowledge of S5. Specifically, P1 can see the **implementation** logic of
   366  S5 -- the program code that it uses to access the ledger L1. We contrast this to
   367  the S5 **interface** which merely describes the inputs and outputs of S5,
   368  without regard to its implementation.
   369  
   370  When an organization has multiple peers in a channel, it can choose the peers
   371  upon which it installs smart contracts; it does not need to install a smart
   372  contract on every peer.
   373  
   374  ### Defining a chaincode
   375  
   376  Although a chaincode is installed on the peers of individual organizations, it
   377  is governed and operated in the scope of a channel. Each organization needs to
   378  approve a **chaincode definition**, a set of parameters that establish how a
   379  chaincode will be used on a channel. An organization must approve a chaincode
   380  definition in order to use the installed smart contract to query the ledger
   381  and endorse transactions. In our example, which only has a single peer node P1,
   382  an administrator in organization R1 must approve a chaincode definition for S5.
   383  
   384  A sufficient number of organizations need to approve a chaincode definition (A
   385  majority, by default) before the chaincode definition can be committed to the
   386  channel and used to interact with the channel ledger. Because the channel only
   387  has one member, the administrator of R1 can commit the chaincode definition of
   388  S5 to the channel C1. Once the definition has been committed, S5 can now be
   389  [invoked](../glossary.html#invoke) by client application A1!
   390  
   391  Note that although every component on the channel can now access S5, they are
   392  not able to see its program logic.  This remains private to those nodes who have
   393  installed it; in our example that means P1. Conceptually this means that it's
   394  the smart contract **interface** that is defined and committed to a channel, in
   395  contrast to the smart contract **implementation** that is installed. To reinforce
   396  this idea; installing a smart contract shows how we think of it being
   397  **physically hosted** on a peer, whereas a smart contract that has been defined
   398  on a channel shows how we consider it **logically hosted** by the channel.
   399  
   400  ### Endorsement policy
   401  
   402  The most important piece of information supplied within the chaincode definition
   403  is the [endorsement policy](../glossary.html#endorsement-policy). It describes
   404  which organizations must approve transactions before they will be accepted by other
   405  organizations onto their copy of the ledger. In our sample network, transactions
   406  can only be accepted onto ledger L1 if R1 or R2 endorse them.
   407  
   408  Committing the chaincode definition to the channel places the endorsement policy
   409  on the channel ledger; it enables it to be accessed by any member of the channel.
   410  You can read more about endorsement policies in the [transaction flow topic](../txflow.html).
   411  
   412  ### Invoking a smart contract
   413  
   414  Once a smart contract has been installed on a peer node and defined on a
   415  channel it can be [invoked](../glossary.html#invoke) by a client application.
   416  Client applications do this by sending transaction proposals to peers owned by
   417  the organizations specified by the smart contract endorsement policy. The
   418  transaction proposal serves as input to the smart contract, which uses it to
   419  generate an endorsed transaction response, which is returned by the peer node to
   420  the client application.
   421  
   422  It's these transactions responses that are packaged together with the
   423  transaction proposal to form a fully endorsed transaction, which can be
   424  distributed to the entire network.  We'll look at this in more detail later  For
   425  now, it's enough to understand how applications invoke smart contracts to
   426  generate endorsed transactions.
   427  
   428  By this stage in network development we can see that organization R1 is fully
   429  participating in the network. Its applications -- starting with A1 -- can access
   430  the ledger L1 via smart contract S5, to generate transactions that will be
   431  endorsed by R1, and therefore accepted onto the ledger because they conform to
   432  the endorsement policy.
   433  
   434  ## Network completed
   435  
   436  Recall that our objective was to create a channel for consortium X1 --
   437  organizations R1 and R2. This next phase of network development sees
   438  organization R2 add its infrastructure to the network.
   439  
   440  Let's see how the network has evolved:
   441  
   442  ![network.grow](./network.diagram.7.png)
   443  
   444  *The network has grown through the addition of infrastructure from
   445  organization R2. Specifically, R2 has added peer node P2, which hosts a copy of
   446  ledger L1, and chaincode S5. R2 approves the same chaincode definition as R1.
   447  P2 has also joined channel C1, as has application A2. A2 and P2 are identified
   448  using certificates from CA2. All of this means that both applications A1 and A2
   449  can invoke S5 on C1 either using peer node P1 or P2.*
   450  
   451  We can see that organization R2 has added a peer node, P2, on channel C1. P2
   452  also hosts a copy of the ledger L1 and smart contract S5. We can see that R2 has
   453  also added client application A2 which can connect to the network via channel
   454  C1. To achieve this, an administrator in organization R2 has created peer node
   455  P2 and joined it to channel C1, in the same way as an administrator in R1. The
   456  administrator also has to approve the same chaincode definition as R1.
   457  
   458  We have created our first operational network! At this stage in network
   459  development, we have a channel in which organizations R1 and R2 can fully
   460  transact with each other. Specifically, this means that applications A1 and A2
   461  can generate transactions using smart contract S5 and ledger L1 on channel C1.
   462  
   463  ### Generating and accepting transactions
   464  
   465  In contrast to peer nodes, which always host a copy of the ledger, we see that
   466  there are two different kinds of peer nodes; those which host smart contracts
   467  and those which do not. In our network, every peer hosts a copy of the smart
   468  contract, but in larger networks, there will be many more peer nodes that do not
   469  host a copy of the smart contract. A peer can only *run* a smart contract if it
   470  is installed on it, but it can *know* about the interface of a smart contract by
   471  being connected to a channel.
   472  
   473  You should not think of peer nodes which do not have smart contracts installed
   474  as being somehow inferior. It's more the case that peer nodes with smart
   475  contracts have a special power -- to help **generate** transactions. Note that
   476  all peer nodes can **validate** and subsequently **accept** or **reject**
   477  transactions onto their copy of the ledger L1. However, only peer nodes with a
   478  smart contract installed can take part in the process of transaction
   479  **endorsement** which is central to the generation of valid transactions.
   480  
   481  We don't need to worry about the exact details of how transactions are
   482  generated, distributed and accepted in this topic -- it is sufficient to
   483  understand that we have a blockchain network where organizations R1 and R2 can
   484  share information and processes as ledger-captured transactions.  We'll learn a
   485  lot more about transactions, ledgers, smart contracts in other topics.
   486  
   487  ### Types of peers
   488  
   489  In Hyperledger Fabric, while all peers are the same, they can assume multiple
   490  roles depending on how the network is configured.  We now have enough
   491  understanding of a typical network topology to describe these roles.
   492  
   493    * [*Committing peer*](../glossary.html#commitment). Every peer node in a
   494      channel is a committing peer. It receives blocks of generated transactions,
   495      which are subsequently validated before they are committed to the peer
   496      node's copy of the ledger as an append operation.
   497  
   498    * [*Endorsing peer*](../glossary.html#endorsement). Every peer with a smart
   499      contract *can* be an endorsing peer if it has a smart contract installed.
   500      However, to actually *be* an endorsing peer, the smart contract on the peer
   501      must be used by a client application to generate a digitally signed
   502      transaction response. The term *endorsing peer* is an explicit reference to
   503      this fact.
   504  
   505      An endorsement policy for a smart contract identifies the
   506      organizations whose peer should digitally sign a generated transaction
   507      before it can be accepted onto a committing peer's copy of the ledger.
   508  
   509  These are the two major types of peer; there are two other roles a peer can
   510  adopt:
   511  
   512    * [*Leader peer*](../glossary.html#leading-peer). When an organization has
   513      multiple peers in a channel, a leader peer is a node which takes
   514      responsibility for distributing transactions from the orderer to the other
   515      committing peers in the organization.  A peer can choose to participate in
   516      static or dynamic leadership selection.
   517  
   518      It is helpful, therefore to think of two sets of peers from leadership
   519      perspective -- those that have static leader selection, and those with
   520      dynamic leader selection. For the static set, zero or more peers can be
   521      configured as leaders. For the dynamic set, one peer will be elected leader
   522      by the set. Moreover, in the dynamic set, if a leader peer fails, then the
   523      remaining peers will re-elect a leader.
   524  
   525      It means that an organization's peers can have one or more leaders connected
   526      to the ordering service. This can help to improve resilience and scalability
   527      in large networks which process high volumes of transactions.
   528  
   529    * [*Anchor peer*](../glossary.html#anchor-peer). If a peer needs to
   530      communicate with a peer in another organization, then it can use one of the
   531      **anchor peers** defined in the channel configuration for that organization.
   532      An organization can have zero or more anchor peers defined for it, and an
   533      anchor peer can help with many different cross-organization communication
   534      scenarios.
   535  
   536  Note that a peer can be a committing peer, endorsing peer, leader peer and
   537  anchor peer all at the same time! Only the anchor peer is optional -- for all
   538  practical purposes there will always be a leader peer and at least one
   539  endorsing peer and at least one committing peer.
   540  
   541  ### Adding organizations and peers to the channel
   542  
   543  When R2 joins the channel, the organization must install smart contract S5
   544  onto its peer node, P2. That's obvious -- if applications A1 or A2 wish to use
   545  S5 on peer node P2 to generate transactions, it must first be present;
   546  installation is the mechanism by which this happens. At this point, peer node P2
   547  has a physical copy of the smart contract and the ledger; like P1, it can both
   548  generate and accept transactions onto its copy of ledger L1.
   549  
   550  R2 must approve the same chaincode definition as was approved by R1 in order to
   551  use smart contract S5. Because the chaincode definition has already been
   552  committed to the channel by organization R1, R2 can use the chaincode as soon as
   553  the organization approves the chaincode definition and installs the chaincode
   554  package. The commit transaction only needs to happen once. A new organization
   555  can use the chaincode as soon as they approve the chaincode parameters agreed to
   556  by other members of the channel. Because the approval of a chaincode definition
   557  occurs at the organization level, R2 can approve the chaincode definition once
   558  and join multiple peers to the channel with the chaincode package installed.
   559  However, if R2 wanted to change the chaincode definition, both R1 and R2 would
   560  need to approve a new definition for their organization, and then one of the
   561  organizations would need to commit the definition to the channel.
   562  
   563  In our network, we can see that channel C1 connects two client applications, two
   564  peer nodes and an ordering service.  Since there is only one channel, there is
   565  only one **logical** ledger with which these components interact. Peer nodes P1
   566  and P2 have identical copies of ledger L1. Copies of smart contract S5 will
   567  usually be identically implemented using the same programming language, but
   568  if not, they must be semantically equivalent.
   569  
   570  We can see that the careful addition of peers to the network can help support
   571  increased throughput, stability, and resilience. For example, more peers in a
   572  network will allow more applications to connect to it; and multiple peers in an
   573  organization will provide extra resilience in the case of planned or unplanned
   574  outages.
   575  
   576  It all means that it is possible to configure sophisticated topologies which
   577  support a variety of operational goals -- there is no theoretical limit to how
   578  big a network can get. Moreover, the technical mechanism by which peers within
   579  an individual organization efficiently discover and communicate with each other --
   580  the [gossip protocol](../gossip.html#gossip-protocol) -- will accommodate a
   581  large number of peer nodes in support of such topologies.
   582  
   583  The careful use of network and channel policies allow even large networks to be
   584  well-governed.  Organizations are free to add peer nodes to the network so long
   585  as they conform to the policies agreed by the network. Network and channel
   586  policies create the balance between autonomy and control which characterizes a
   587  de-centralized network.
   588  
   589  ## Simplifying the visual vocabulary
   590  
   591  We’re now going to simplify the visual vocabulary used to represent our sample
   592  blockchain network. As the size of the network grows, the lines initially used
   593  to help us understand channels will become cumbersome. Imagine how complicated
   594  our diagram would be if we added another peer or client application, or another
   595  channel?
   596  
   597  That's what we're going to do in a minute, so before we do, let's simplify the
   598  visual vocabulary. Here's a simplified representation of the network we've
   599  developed so far:
   600  
   601  ![network.vocabulary](./network.diagram.8.png)
   602  
   603  *The diagram shows the facts relating to channel C1 in the network N as follows:
   604  Client applications A1 and A2 can use channel C1 for communication with peers
   605  P1 and P2, and orderer O4. Peer nodes P1 and P2 can use the communication
   606  services of channel C1. Ordering service O4 can make use of the communication
   607  services of channel C1. Channel configuration CC1 applies to channel C1.*
   608  
   609  Note that the network diagram has been simplified by replacing channel lines
   610  with connection points, shown as blue circles which include the channel number.
   611  No information has been lost. This representation is more scalable because it
   612  eliminates crossing lines. This allows us to more clearly represent larger
   613  networks. We've achieved this simplification by focusing on the connection
   614  points between components and a channel, rather than the channel itself.
   615  
   616  ## Adding another consortium definition
   617  
   618  In this next phase of network development, we introduce organization R3.  We're
   619  going to give organizations R2 and R3 a separate application channel which
   620  allows them to transact with each other.  This application channel will be
   621  completely separate to that previously defined, so that R2 and R3 transactions
   622  can be kept private to them.
   623  
   624  Let's return to the network level and define a new consortium, X2, for R2 and
   625  R3:
   626  
   627  ![network.consortium2](./network.diagram.9.png)
   628  
   629  *A network administrator from organization R1 or R4 has added a new consortium
   630  definition, X2, which includes organizations R2 and R3. This will be used to
   631  define a new channel for X2.*
   632  
   633  Notice that the network now has two consortia defined: X1 for organizations R1
   634  and R2 and X2 for organizations R2 and R3. Consortium X2 has been introduced in
   635  order to be able to create a new channel for R2 and R3.
   636  
   637  A new channel can only be created by those organizations specifically identified
   638  in the network configuration policy, NC4, as having the appropriate rights to do
   639  so, i.e. R1 or R4. This is an example of a policy which separates organizations
   640  that can manage resources at the network level versus those who can manage
   641  resources at the channel level. Seeing these policies at work helps us
   642  understand why Hyperledger Fabric has a sophisticated **tiered** policy
   643  structure.
   644  
   645  In practice, consortium definition X2 has been added to the network
   646  configuration NC4. We discuss the exact mechanics of this operation elsewhere in
   647  the documentation.
   648  
   649  ## Adding a new channel
   650  
   651  Let's now use this new consortium definition, X2, to create a new channel, C2.
   652  To help reinforce your understanding of the simpler channel notation, we've used
   653  both visual styles -- channel C1 is represented with blue circular end points,
   654  whereas channel C2 is represented with red connecting lines:
   655  
   656  ![network.channel2](./network.diagram.10.png)
   657  
   658  *A new channel C2 has been created for R2 and R3 using consortium definition X2.
   659  The channel has a channel configuration CC2, completely separate to the network
   660  configuration NC4, and the channel configuration CC1. Channel C2 is managed by
   661  R2 and R3 who have equal rights over C2 as defined by a policy in CC2. R1 and
   662  R4 have no rights defined in CC2 whatsoever.*
   663  
   664  The channel C2 provides a private communications mechanism for the consortium
   665  X2. Again, notice how organizations united in a consortium are what form
   666  channels. The channel configuration CC2 now contains the policies that govern
   667  channel resources, assigning management rights to organizations R2 and R3 over
   668  channel C2. It is managed exclusively by R2 and R3; R1 and R4 have no power in
   669  channel C2. For example, channel configuration CC2 can subsequently be updated
   670  to add organizations to support network growth, but this can only be done by R2
   671  or R3.
   672  
   673  Note how the channel configurations CC1 and CC2 remain completely separate from
   674  each other, and completely separate from the network configuration, NC4. Again
   675  we're seeing the de-centralized nature of a Hyperledger Fabric network; once
   676  channel C2 has been created, it is managed by organizations R2 and R3
   677  independently to other network elements. Channel policies always remain separate
   678  from each other and can only be changed by the organizations authorized to do so
   679  in the channel.
   680  
   681  As the network and channels evolve, so will the network and channel
   682  configurations. There is a process by which this is accomplished in a controlled
   683  manner -- involving configuration transactions which capture the change to these
   684  configurations. Every configuration change results in a new configuration block
   685  transaction being generated, and [later in this topic](#the-ordering-serivce),
   686  we'll see how these blocks are validated and accepted to create updated network
   687  and channel configurations respectively.
   688  
   689  ### Network and channel configurations
   690  
   691  Throughout our sample network, we see the importance of network and channel
   692  configurations. These configurations are important because they encapsulate the
   693  **policies** agreed by the network members, which provide a shared reference for
   694  controlling access to network resources. Network and channel configurations also
   695  contain **facts** about the network and channel composition, such as the name of
   696  consortia and its organizations.
   697  
   698  For example, when the network is first formed using the ordering service node
   699  O4, its behaviour is governed by the network configuration NC4. The initial
   700  configuration of NC4 only contains policies that permit organization R4 to
   701  manage network resources. NC4 is subsequently updated to also allow R1 to manage
   702  network resources. Once this change is made, any administrator from organization
   703  R1 or R4 that connects to O4 will have network management rights because that is
   704  what the policy in the network configuration NC4 permits. Internally, each node
   705  in the ordering service records each channel in the network configuration, so
   706  that there is a record of each channel created, at the network level.
   707  
   708  It means that although ordering service node O4 is the actor that created
   709  consortia X1 and X2 and channels C1 and C2, the **intelligence** of the network
   710  is contained in the network configuration NC4 that O4 is obeying.  As long as O4
   711  behaves as a good actor, and correctly implements the policies defined in NC4
   712  whenever it is dealing with network resources, our network will behave as all
   713  organizations have agreed. In many ways NC4 can be considered more important
   714  than O4 because, ultimately, it controls network access.
   715  
   716  The same principles apply for channel configurations with respect to peers. In
   717  our network, P1 and P2 are likewise good actors. When peer nodes P1 and P2 are
   718  interacting with client applications A1 or A2 they are each using the policies
   719  defined within channel configuration CC1 to control access to the channel C1
   720  resources.
   721  
   722  For example, if A1 wants to access the smart contract chaincode S5 on peer nodes
   723  P1 or P2, each peer node uses its copy of CC1 to determine the operations that
   724  A1 can perform. For example, A1 may be permitted to read or write data from the
   725  ledger L1 according to policies defined in CC1. We'll see later the same pattern
   726  for actors in channel and its channel configuration CC2.  Again, we can see that
   727  while the peers and applications are critical actors in the network, their
   728  behaviour in a channel is dictated more by the channel configuration policy than
   729  any other factor.
   730  
   731  Finally, it is helpful to understand how network and channel configurations are
   732  physically realized. We can see that network and channel configurations are
   733  logically singular -- there is one for the network, and one for each channel.
   734  This is important; every component that accesses the network or the channel must
   735  have a shared understanding of the permissions granted to different
   736  organizations.
   737  
   738  Even though there is logically a single configuration, it is actually replicated
   739  and kept consistent by every node that forms the network or channel. For
   740  example, in our network peer nodes P1 and P2 both have a copy of channel
   741  configuration CC1, and by the time the network is fully complete, peer nodes P2
   742  and P3 will both have a copy of channel configuration CC2. Similarly ordering
   743  service node O4 has a copy of the network configuration, but in a [multi-node
   744  configuration](#the-ordering-service), every ordering service node will have its
   745  own copy of the network configuration.
   746  
   747  Both network and channel configurations are kept consistent using the same
   748  blockchain technology that is used for user transactions -- but for
   749  **configuration** transactions. To change a network or channel configuration, an
   750  administrator must submit a configuration transaction to change the network or
   751  channel configuration. It must be signed by the organizations identified in the
   752  appropriate policy as being responsible for configuration change. This policy is
   753  called the **mod_policy** and we'll [discuss it later](#changing-policy).
   754  
   755  Indeed, the ordering service nodes operate a mini-blockchain, connected via the
   756  **system channel** we mentioned earlier. Using the system channel ordering
   757  service nodes distribute network configuration transactions. These transactions
   758  are used to co-operatively maintain a consistent copy of the network
   759  configuration at each ordering service node. In a similar way, peer nodes in an
   760  **application channel** can distribute channel configuration transactions.
   761  Likewise, these transactions are used to maintain a consistent copy of the
   762  channel configuration at each peer node.
   763  
   764  This balance between objects that are logically singular, by being physically
   765  distributed is a common pattern in Hyperledger Fabric. Objects like network
   766  configurations, that are logically single, turn out to be physically replicated
   767  among a set of ordering services nodes for example. We also see it with channel
   768  configurations, ledgers, and to some extent smart contracts which are installed
   769  in multiple places but whose interfaces exist logically at the channel level.
   770  It's a pattern you see repeated time and again in Hyperledger Fabric, and
   771  enables Hyperledger Fabric to be both de-centralized and yet manageable at the
   772  same time.
   773  
   774  ## Adding another peer
   775  
   776  Now that organization R3 is able to fully participate in channel C2, let's add
   777  its infrastructure components to the channel.  Rather than do this one component
   778  at a time, we're going to add a peer, its local copy of a ledger, a smart
   779  contract and a client application all at once!
   780  
   781  Let's see the network with organization R3's components added:
   782  
   783  ![network.peer2](./network.diagram.11.png)
   784  
   785  *The diagram shows the facts relating to channels C1 and C2 in the network N as
   786  follows: Client applications A1 and A2 can use channel C1 for communication
   787  with peers P1 and P2, and ordering service O4; client applications A3 can use
   788  channel C2 for communication with peer P3 and ordering service O4. Ordering
   789  service O4 can make use of the communication services of channels C1 and C2.
   790  Channel configuration CC1 applies to channel C1, CC2 applies to channel C2.*
   791  
   792  First of all, notice that because peer node P3 is connected to channel C2, it
   793  has a **different** ledger -- L2 -- to those peer nodes using channel C1.  The
   794  ledger L2 is effectively scoped to channel C2. The ledger L1 is completely
   795  separate; it is scoped to channel C1.  This makes sense -- the purpose of the
   796  channel C2 is to provide private communications between the members of the
   797  consortium X2, and the ledger L2 is the private store for their transactions.
   798  
   799  In a similar way, the smart contract S6, installed on peer node P3, and defined
   800  on channel C2, is used to provide controlled access to ledger L2. Application A3
   801  can now use channel C2 to invoke the services provided by smart contract S6 to
   802  generate transactions that can be accepted onto every copy of the ledger L2 in
   803  the network.
   804  
   805  At this point in time, we have a single network that has two completely separate
   806  channels defined within it.  These channels provide independently managed
   807  facilities for organizations to transact with each other. Again, this is
   808  de-centralization at work; we have a balance between control and autonomy. This
   809  is achieved through policies which are applied to channels which are controlled
   810  by, and affect, different organizations.
   811  
   812  ## Joining a peer to multiple channels
   813  
   814  In this final stage of network development, let's return our focus to
   815  organization R2. We can exploit the fact that R2 is a member of both consortia
   816  X1 and X2 by joining it to multiple channels:
   817  
   818  ![network.multichannel](./network.diagram.12.png)
   819  
   820  *The diagram shows the facts relating to channels C1 and C2 in the network N as
   821  follows: Client applications A1 can use channel C1 for communication with peers
   822  P1 and P2, and ordering service O4; client application A2 can use channel C1
   823  for communication with peers P1 and P2 and channel C2 for communication with
   824  peers P2 and P3 and ordering service O4; client application A3 can use channel
   825  C2 for communication with peer P3 and P2 and ordering service O4. Ordering service O4
   826  can make use of the communication services of channels C1 and C2. Channel
   827  configuration CC1 applies to channel C1, CC2 applies to channel C2.*
   828  
   829  We can see that R2 is a special organization in the network, because it is the
   830  only organization that is a member of two application channels!  It is able to
   831  transact with organization R1 on channel C1, while at the same time it can also
   832  transact with organization R3 on a different channel, C2.
   833  
   834  Notice how peer node P2 has smart contract S5 installed for channel C1 and smart
   835  contract S6 installed for channel C2. Peer node P2 is a full member of both
   836  channels at the same time via different smart contracts for different ledgers.
   837  
   838  This is a very powerful concept -- channels provide both a mechanism for the
   839  separation of organizations, and a mechanism for collaboration between
   840  organizations. All the while, this infrastructure is provided by, and shared
   841  between, a set of independent organizations.
   842  
   843  It is also important to note that peer node P2's behaviour is controlled very
   844  differently depending upon the channel in which it is transacting. Specifically,
   845  the policies contained in channel configuration CC1 dictate the operations
   846  available to P2 when it is transacting in channel C1, whereas it is the policies
   847  in channel configuration CC2 that control P2's behaviour in channel C2.
   848  
   849  Again, this is desirable -- R2 and R1 agreed the rules for channel C1, whereas
   850  R2 and R3 agreed the rules for channel C2. These rules were captured in the
   851  respective channel policies -- they can and must be used by every
   852  component in a channel to enforce correct behaviour, as agreed.
   853  
   854  Similarly, we can see that client application A2 is now able to transact on
   855  channels C1 and C2.  And likewise, it too will be governed by the policies in
   856  the appropriate channel configurations.  As an aside, note that client
   857  application A2 and peer node P2 are using a mixed visual vocabulary -- both
   858  lines and connections. You can see that they are equivalent; they are visual
   859  synonyms.
   860  
   861  ### The ordering service
   862  
   863  The observant reader may notice that the ordering service node appears to be a
   864  centralized component; it was used to create the network initially, and connects
   865  to every channel in the network.  Even though we added R1 and R4 to the network
   866  configuration policy NC4 which controls the orderer, the node was running on
   867  R4's infrastructure. In a world of de-centralization, this looks wrong!
   868  
   869  Don't worry! Our example network showed the simplest ordering service
   870  configuration to help you understand the idea of a network administration point.
   871  In fact, the ordering service can itself too be completely de-centralized!  We
   872  mentioned earlier that an ordering service could be comprised of many individual
   873  nodes owned by different organizations, so let's see how that would be done in
   874  our sample network.
   875  
   876  Let's have a look at a more realistic ordering service node configuration:
   877  
   878  ![network.finalnetwork2](./network.diagram.15.png)
   879  
   880  *A multi-organization ordering service.  The ordering service comprises ordering
   881  service nodes O1 and O4. O1 is provided by organization R1 and node O4 is
   882  provided by organization R4. The network configuration NC4 defines network
   883  resource permissions for actors from both organizations R1 and R4.*
   884  
   885  We can see that this ordering service completely de-centralized -- it runs in
   886  organization R1 and it runs in organization R4. The network configuration
   887  policy, NC4, permits R1 and R4 equal rights over network resources.  Client
   888  applications and peer nodes from organizations R1 and R4 can manage network
   889  resources by connecting to either node O1 or node O4, because both nodes behave
   890  the same way, as defined by the policies in network configuration NC4. In
   891  practice, actors from a particular organization *tend* to use infrastructure
   892  provided by their home organization, but that's certainly not always the case.
   893  
   894  ### De-centralized transaction distribution
   895  
   896  As well as being the management point for the network, the ordering service also
   897  provides another key facility -- it is the distribution point for transactions.
   898  The ordering service is the component which gathers endorsed transactions
   899  from applications and orders them into transaction blocks, which are
   900  subsequently distributed to every peer node in the channel. At each of these
   901  committing peers, transactions are recorded, whether valid or invalid, and their
   902  local copy of the ledger updated appropriately.
   903  
   904  Notice how the ordering service node O4 performs a very different role for the
   905  channel C1 than it does for the network N. When acting at the channel level,
   906  O4's role is to gather transactions and distribute blocks inside channel C1. It
   907  does this according to the policies defined in channel configuration CC1. In
   908  contrast, when acting at the network level, O4's role is to provide a management
   909  point for network resources according to the policies defined in network
   910  configuration NC4. Notice again how these roles are defined by different
   911  policies within the channel and network configurations respectively. This should
   912  reinforce to you the importance of declarative policy based configuration in
   913  Hyperledger Fabric. Policies both define, and are used to control, the agreed
   914  behaviours by each and every member of a consortium.
   915  
   916  We can see that the ordering service, like the other components in Hyperledger
   917  Fabric, is a fully de-centralized component. Whether acting as a network
   918  management point, or as a distributor of blocks in a channel, its nodes can be
   919  distributed as required throughout the multiple organizations in a network.
   920  
   921  ### Changing policy
   922  
   923  Throughout our exploration of the sample network, we've seen the importance of
   924  the policies to control the behaviour of the actors in the system. We've only
   925  discussed a few of the available policies, but there are many that can be
   926  declaratively defined to control every aspect of behaviour. These individual
   927  policies are discussed elsewhere in the documentation.
   928  
   929  Most importantly of all, Hyperledger Fabric provides a uniquely powerful policy
   930  that allows network and channel administrators to manage policy change itself!
   931  The underlying philosophy is that policy change is a constant, whether it occurs
   932  within or between organizations, or whether it is imposed by external
   933  regulators. For example, new organizations may join a channel, or existing
   934  organizations may have their permissions increased or decreased. Let's
   935  investigate a little more how change policy is implemented in Hyperledger
   936  Fabric.
   937  
   938  They key point of understanding is that policy change is managed by a
   939  policy within the policy itself.  The **modification policy**, or
   940  **mod_policy** for short, is a first class policy within a network or channel
   941  configuration that manages change. Let's give two brief examples of how we've
   942  **already** used mod_policy to manage change in our network!
   943  
   944  The first example was when the network was initially set up. At this time, only
   945  organization R4 was allowed to manage the network. In practice, this was
   946  achieved by making R4 the only organization defined in the network configuration
   947  NC4 with permissions to network resources.  Moreover, the mod_policy for NC4
   948  only mentioned organization R4 -- only R4 was allowed to change this
   949  configuration.
   950  
   951  We then evolved the network N to also allow organization R1 to administer the
   952  network.  R4 did this by adding R1 to the policies for channel creation and
   953  consortium creation. Because of this change, R1 was able to define the
   954  consortia X1 and X2, and create the channels C1 and C2. R1 had equal
   955  administrative rights over the channel and consortium policies in the network
   956  configuration.
   957  
   958  R4 however, could grant even more power over the network configuration to R1! R4
   959  could add R1 to the mod_policy such that R1 would be able to manage change of
   960  the network policy too.
   961  
   962  This second power is much more powerful than the first, because R1 now has
   963  **full control** over the network configuration NC4! This means that R1 can, in
   964  principle remove R4's management rights from the network.  In practice, R4 would
   965  configure the mod_policy such that R4 would need to also approve the change, or
   966  that all organizations in the mod_policy would have to approve the change.
   967  There's lots of flexibility to make the mod_policy as sophisticated as it needs
   968  to be to support whatever change process is required.
   969  
   970  This is mod_policy at work -- it has allowed the graceful evolution of a basic
   971  configuration into a sophisticated one. All the time this has occurred with the
   972  agreement of all organization involved. The mod_policy behaves like every other
   973  policy inside a network or channel configuration; it defines a set of
   974  organizations that are allowed to change the mod_policy itself.
   975  
   976  We've only scratched the surface of the power of policies and mod_policy in
   977  particular in this subsection. It is discussed at much more length in the policy
   978  topic, but for now let's return to our finished network!
   979  
   980  ## Network fully formed
   981  
   982  Let's recap what our network looks like using a consistent visual vocabulary.
   983  We've re-organized it slightly using our more compact visual syntax, because it
   984  better accommodates larger topologies:
   985  
   986  ![network.finalnetwork2](./network.diagram.14.png)
   987  
   988  *In this diagram we see that the Fabric blockchain network consists of two
   989  application channels and one ordering channel. The organizations R1 and R4 are
   990  responsible for the ordering channel, R1 and R2 are responsible for the blue
   991  application channel while R2 and R3 are responsible for the red application
   992  channel. Client applications A1 is an element of organization R1, and CA1 is
   993  it's certificate authority. Note that peer P2 of organization R2 can use the
   994  communication facilities of the blue and the red application channel. Each
   995  application channel has its own channel configuration, in this case CC1 and
   996  CC2. The channel configuration of the system channel is part of the network
   997  configuration, NC4.*
   998  
   999  We're at the end of our conceptual journey to build a sample Hyperledger Fabric
  1000  blockchain network. We've created a four organization network with two channels
  1001  and three peer nodes, with two smart contracts and an ordering service.  It is
  1002  supported by four certificate authorities. It provides ledger and smart contract
  1003  services to three client applications, who can interact with it via the two
  1004  channels. Take a moment to look through the details of the network in the
  1005  diagram, and feel free to read back through the topic to reinforce your
  1006  knowledge, or go to a more detailed topic.
  1007  
  1008  ### Summary of network components
  1009  
  1010  Here's a quick summary of the network components we've discussed:
  1011  
  1012  * [Ledger](../glossary.html#ledger). One per channel. Comprised of the
  1013    [Blockchain](../glossary.html#block) and
  1014    the [World state](../glossary.html#world-state)
  1015  * [Smart contract](../glossary.html#smart-contract) (aka chaincode)
  1016  * [Peer nodes](../glossary.html#peer)
  1017  * [Ordering service](../glossary.html#ordering-service)
  1018  * [Channel](../glossary.html#channel)
  1019  * [Certificate Authority](../glossary.html#hyperledger-fabric-ca)
  1020  
  1021  ## Network summary
  1022  
  1023  In this topic, we've seen how different organizations share their infrastructure
  1024  to provide an integrated Hyperledger Fabric blockchain network.  We've seen how
  1025  the collective infrastructure can be organized into channels that provide
  1026  private communications mechanisms that are independently managed.  We've seen
  1027  how actors such as client applications, administrators, peers and orderers are
  1028  identified as being from different organizations by their use of certificates
  1029  from their respective certificate authorities.  And in turn, we've seen the
  1030  importance of policy to define the agreed permissions that these organizational
  1031  actors have over network and channel resources.