fabric-docs-i18n icon indicating copy to clipboard operation
fabric-docs-i18n copied to clipboard

[ja_JP] Deploying a production network / Deploy the ordering service

Open shimos opened this issue 2 years ago • 0 comments

Original HTML: https://hyperledger-fabric.readthedocs.io/en/release-2.5/deployorderer/ordererdeploy.html Original Source: https://github.com/hyperledger/fabric/blob/e1e8e2e52aa4fc543360d245fe6554a0eaf81183/docs/source/deployorderer/ordererdeploy.md

diff --git a/docs/source/deployorderer/ordererdeploy.md b/docs/source/deployorderer/ordererdeploy.md
index e1e070924..72d807609 100644
--- a/docs/source/deployorderer/ordererdeploy.md
+++ b/docs/source/deployorderer/ordererdeploy.md
@@ -2,7 +2,9 @@
 
 Before deploying an ordering service, review the material in [Planning for an ordering service](./ordererplan.html) and [Checklist for a production ordering service](./ordererchecklist.html), which discusses all of the relevant decisions you need to make and parameters you need to configure before deploying an ordering service.
 
-This tutorial is based on the Raft consensus protocol and can be used to build an ordering service, which is comprised of ordering nodes, or "orderers". It describes the process to create a three-node Raft ordering service where all of the ordering nodes belong to the same organization.
+This tutorial is based on the Raft consensus protocol and can be used to build an ordering service, which is comprised of ordering nodes, or "orderers". It describes the process to create a three-node Raft ordering service where all of the ordering nodes belong to the same organization. This tutorial assumes that a system channel genesis block will not be used when bootstrapping the orderer. Instead, these nodes (or a subset of them), will be joined to a channel using the process to [Create a channel](../create_channel/create_channel_participation.html).
+
+For information on how to create an orderer that will be bootstrapped with a system channel genesis block, check out [Deploy the ordering service](https://hyperledger-fabric.readthedocs.io/en/release-2.2/deployorderer/ordererdeploy.html) from the Fabric v2.2 documentation.
 
 ## Download the ordering service binary and configuration files
 
@@ -88,81 +90,6 @@ Similarly, you need to point to the [local MSP of your orderer](https://hyperled
 
 Note that the local MSP contains the signed certificate (public key) and the private key for the orderer. The private key is used by the node to sign transactions, and is therefore not shared and must be secured. For maximum security, a Hardware Security Module (HSM) can be configured to generate and store this private key.
 
-### Create the ordering service genesis block
-
-The first channel that is created in a Fabric network is the "system" channel. The system channel defines the set of ordering nodes that form the ordering service and the set of organizations that serve as ordering service administrators. Peers transact on private "application" channels that are derived from the ordering service system channel, which also defines the "consortium" (the peer organizations known to the ordering service). Therefore, before you can deploy an ordering service, you need to generate the system channel configuration by creating the system channel "genesis block" using a tool called `configtxgen`. We'll then use the generated system channel genesis block to bootstrap each ordering node.
-
-#### Set up the `configtxgen` tool
-
-While it is possible to build the channel creation transaction file manually, it is easier to use the [configtxgen](../commands/configtxgen.html) tool, which works by reading a `configtx.yaml` file that defines the configuration of your channel and then writing the relevant information into a configuration block known as the "genesis block".
-
-Notice that the `configtxgen` tool is located in the `bin` folder of downloaded Fabric binaries.
-
-Before using `configtxgen`, confirm you have set the `FABRIC_CFG_PATH` environment variable to the path of the directory that contains your local copy of the `configtx.yaml` file. You can verify that are able to use the tool by printing the `configtxgen` help text:
-
-```
-configtxgen --help
-```
-
-#### The `configtx.yaml` file
-
-The `configtx.yaml` file is used to specify the **channel configuration** of the system channel and application channels. The information that is required to build the channel configuration is specified in a readable and editable form in the `configtx.yaml` file. The `configtxgen` tool uses the channel profiles that are defined in `configtx.yaml` to create the channel configuration block in the [protobuf format](https://developers.google.com/protocol-buffers).
-
-The `configtx.yaml` file is located in the `config` folder alongside the images that you downloaded and contains the following configuration sections that we need to create our new channel:
-
-- **Organizations:** The organizations that can become members of your channel. Each organization has a reference to the cryptographic material that is used to build the [channel MSP](../membership/membership.html).
-- **Orderer:** Which ordering nodes will form the Raft consenter set of the channel.
-- **Policies** Different sections of the file work together to define the channel policies that will govern how organizations interact with the channel and which organizations need to approve channel updates. For the purposes of this tutorial, we will use the defaults that are used by Fabric. For more information about policies, check out [Policies](../policies/policies.html).
-- **Profiles** Each channel profile references information from other sections of the `configtx.yaml` file to build a channel configuration. The profiles are used to create the genesis block of the channel.
-
-The `configtxgen` tool uses `configtx.yaml` file to create the genesis block for the channel. A detailed version of the `configtx.yaml` file is available in the [Fabric sample configuration](https://github.com/hyperledger/fabric/blob/{BRANCH}/sampleconfig/configtx.yaml). Refer to the [Using configtx.yaml to build a channel configuration](../create_channel/create_channel_config.html) tutorial to learn more about the  settings in this file.
-
-#### Generate the system channel genesis block
-
-The first channel that is created in a Fabric network is the system channel. The system channel defines the set of ordering nodes that form the ordering service and the set of organizations that serve as ordering service administrators. The system channel also includes the organizations that are members of blockchain [consortium](../glossary.html#consortium). The consortium is a set of peer organizations that belong to the system channel, but are not administrators of the ordering service. Consortium members have the ability to create new channels and include other consortium organizations as channel members.
-
-The genesis block of the system channel is required to deploy a new ordering service. A good example of a system channel profile can be found in the [test network configtx.yaml](https://github.com/hyperledger/fabric-samples/blob/master/test-network/configtx/configtx.yaml#L319) which includes the `TwoOrgsOrdererGenesis` profile as shown below:
-
-```yaml
-TwoOrgsOrdererGenesis:
-        <<: *ChannelDefaults
-        Orderer:
-            <<: *OrdererDefaults
-            Organizations:
-                - *OrdererOrg
-            Capabilities:
-                <<: *OrdererCapabilities
-        Consortiums:
-            SampleConsortium:
-                Organizations:
-                    - *Org1
-                    - *Org2
-```
-
-The `Orderer:` section of the profile defines the Raft ordering service, with the `OrdererOrg` as the ordering service administrator. The `Consortiums` section of the profile creates a consortium of peer organizations named `SampleConsortium:`.  For a production deployment, it is recommended that the peer and ordering nodes belong to separate organizations. This example uses peer organizations `Org1` and `Org2`. You will want to customize this section by providing your own consortium name and replacing `Org1` and `Org2` with the names of your peer organizations. If they are unknown at this time, you do not have to list any organizations under `Consortiums.SampleConsortium.Organizations`. Adding the peer organizations now saves the effort of a channel configuration update later. If you do add them, don't forget to define the peer organizations in the `Organizations:` section at the top of the `configtx.yaml` file as well. Notice this profile is missing an `Application:` section. You will need to create the application channels after you deploy the ordering service.
-
-After you have completed editing the `configtx.yaml` to reflect the orderer and peer organizations that will participate in your network, run the following command to create the genesis block of the system channel:
-```
-configtxgen -profile TwoOrgsOrdererGenesis -channelID system-channel -outputBlock ./system-genesis-block/genesis.block
-```
-
-Where:
-- `-profile` refers to the `TwoOrgsOrdererGenesis` profile in `configtx.yaml`.
-- `-channelID` is the name of the system channel. In this tutorial, the system channel is named `system-channel`.
-- `-outputBlock` refers to the location of the generated genesis block.
-
-When the command is successful, you will see logs of `configtxgen` loading the `configtx.yaml` file and printing a channel creation transaction:
-```
-INFO 001 Loading configuration
-INFO 002 Loaded configuration: /Usrs/fabric-samples/test-network/configtx/configtx.yaml
-INFO 003 Generating new channel configtx
-INFO 004 Generating genesis block
-INFO 005 Creating system channel genesis block
-INFO 006 Writing genesis block
-```
-
-Make note of the generated output block filename. This is your genesis block and will be referenced in the `orderer.yaml` file below.
-
 ### Storage
 
 You must provision persistent storage for your ledgers. The default location for the ledger is located at `/var/hyperledger/production/orderer`. Ensure that your orderer has write access to the folder. If you choose to use a different location, provide that path in the `FileLedger:` parameter in the `orderer.yaml` file. If you decide to use Kubernetes or Docker, recall that in a containerized environment, local storage disappears when the container goes away, so you will need to provision or mount persistent storage for the ledger before you deploy an orderer.
@@ -178,11 +105,11 @@ At a minimum, you need to configure the following parameters:
 - `General.TLS.PrivateKey ` - Ordering node private key from TLS CA.
 - `General.TLS.Certificate ` - Ordering node signed certificate (public key) from the TLS CA.
 - `General.TLS.RootCAS` - This value should be unset.
-- `General.BoostrapMethod:file` - Start ordering service with a system channel.
-- `General.BootstrapFile` - Path to and name of the genesis block file for the ordering service system channel.
+- `General.BoostrapMethod:none` - This allows the orderer to start without needing a system channel configuration block.
 - `General.LocalMSPDir` - Path to the ordering node MSP folder.
 - `General.LocalMSPID` - MSP ID of the ordering organization as specified in the channel configuration.
-- `FileLedger.Location` - Location of the orderer ledger on the file system.
+- `FileLedger.Location` - Location on the file system to the ledgers of the channels this orderer will be servicing.
+- `ChannelParticipation.Enabled` - Set to `true`. This allows the orderer to be joined to an application channel without joining a system channel first.
 
 Because this tutorial assumes that a system channel genesis block will not be used when bootstrapping the orderer, the following additional parameters are required if you want to create an application channel with the `osnadmin` command.
 
@@ -210,24 +137,17 @@ cd bin
 When the orderer starts successfully, you should see a message similar to:
 
 ```
-INFO 019 Starting orderer:
-INFO 01a Beginning to serve requests
+INFO 01d Registrar initializing without a system channel, number of application channels: 0, with 0 consensus.Chain(s) and 0 follower.Chain(s)
+INFO 01f Starting orderer:
 ```
 
-You have successfully started one node, you now need to repeat these steps to configure and start the other two orderers. When a majority of orderers are started, a Raft leader is elected. You should see something similar to the following output:
-```
-INFO 01b Applied config change to add node 1, current nodes in channel: [1] channel=syschannel node=1
-INFO 01c Applied config change to add node 2, current nodes in channel: [1 2] channel=syschannel node=1
-INFO 01d Applied config change to add node 3, current nodes in channel: [1 2 3] channel=syschannel node=1
-INFO 01e raft.node: 1 elected leader 2 at term 11 channel=syschannel node=1
-INFO 01f Raft leader changed: 0 -> 2 channel=syschannel node=1
-```
+You have successfully started one node, you now need to repeat these steps to configure and start the other two orderers.
 
 ## Next steps
 
 Your ordering service is started and ready to order transactions into blocks. Depending on your use case, you may need to add or remove orderers from the consenter set, or other organizations may want to contribute their own orderers to the cluster. See the topic on ordering service [reconfiguration](../raft_configuration.html#reconfiguration) for considerations and instructions.
 
-Finally, your system channel includes a consortium of peer organizations as defined in the `Organization` section of the channel configuration. This list of peer organizations are allowed to create channels on your ordering service. You need to use the `configtxgen` command and the `configtx.yaml` file to create an application channel. Refer to the [Creating a channel](../create_channel/create_channel.html#creating-an-application-channel) tutorial for more details.
+Once your nodes have been created, you are ready to join them to a channel. Check out [Create a channel](../create_channel/create_channel_participation.html) for more information.
 
 ## Troubleshooting
 
@@ -253,36 +173,6 @@ PANI 003 Failed to setup local msp with config: administrators must be declared
 
 Your local MSP definition is missing the `config.yaml` file. Create the file and copy it into the local MSP `/msp` folder of orderer. See the [Fabric CA](https://hyperledger-fabric-ca.readthedocs.io/en/release-1.4/deployguide/use_CA.html#nodeous) documentation for more instructions.
 
-
-### When you start the orderer, it fails with the following error:
-```
-PANI 005 Failed validating bootstrap block: initializing channelconfig failed: could not create channel Orderer sub-group config: setting up the MSP manager failed: administrators must be declared when no admin ou classification is set
-```
-
-**Solution:**   
-
-The system channel configuration is missing `config.yaml` file. If you are creating a new ordering service, the `MSPDir` referenced in `configtx.yaml` file is missing the `config.yaml` file. Follow instructions in the [Fabric CA](https://hyperledger-fabric-ca.readthedocs.io/en/release-1.4/deployguide/use_CA.html#nodeous) documentation to generate this file and then rerun `configtxgen` to regenerate the genesis block for the system channel.
-```
-# MSPDir is the filesystem path which contains the MSP configuration.
-        MSPDir: ../config/organizations/ordererOrganizations/ordererOrg1.example.com/msp
-```
-Before you restart the orderer, delete the existing channel ledger files that are stored in the `FileLedger.Location` setting of the `orderer.yaml` file.
-
-
-### When you start the orderer, it fails with the following error:
-```
-PANI 004 Failed validating bootstrap block: the block isn't a system channel block because it lacks ConsortiumsConfig
-```
-**Solution:**  
-
-Your channel configuration is missing the consortium definition. If you are starting a new ordering service, edit the `configtx.yaml` file `Profiles:` section and add the consortium definition:
-```
-Consortiums:
-            SampleConsortium:
-                Organizations:
-```
-The `Consortiums:` section is required but can be empty, as shown above, if the peer organizations are not yet known. Rerun `configtxgen` to regenerate the genesis block for the system channel and then before you start the orderer, delete the existing channel ledger files that are stored in the `FileLedger.Location` setting of the `orderer.yaml` file.
-
 ### When you start the orderer, it fails with the following error:
 ```
 PANI 27c Failed creating a block puller: client certificate isn't in PEM format:  channel=mychannel node=3
@@ -292,14 +182,5 @@ PANI 27c Failed creating a block puller: client certificate isn't in PEM format:
 
 Your `orderer.yaml` file is missing the `General.Cluster.ClientCertificate` and `General.Cluster.ClientPrivateKey` definitions. Provide the path to and filename of the public certificate (also known as a signed certificate) and private key generated by your TLS CA for the orderer in these two fields and restart the node.
 
-### When you start the orderer, it fails with the following error:
-```
-ServerHandshake -> ERRO 025 TLS handshake failed with error remote error: tls: bad certificate server=Orderer remoteaddress=192.168.1.134:52413
-```
-
-**Solution:**  
-
-This error can occur when the `tlscacerts` folder is missing from the orderer organization MSP folder specified in the channel configuration. Create the `tlscacerts` folder inside your MSP definition and insert the root certificate from your TLS CA (`ca-cert.pem`). Rerun `configtxgen` to regenerate the genesis block for the system channel so that the channel configuration includes this certificate. Before you start the orderer again, delete the existing channel ledger files that are stored in the `FileLedger.Location` setting of the `orderer.yaml` file.
-
 <!--- Licensed under Creative Commons Attribution 4.0 International License
 https://creativecommons.org/licenses/by/4.0/) -->

shimos avatar Sep 28 '23 00:09 shimos