title: hyperledger fabric Orderer Genesis block generation
body: <p>I'm creating my first network with Hyperledger Fabric. I'm trying to set up a network with 3 Orgs on Mac OSX 10.13.4 and Fabric v1.1.0.</p>
  
  <p>After create the crypto materials successfully, I continued with the Orderer Genesis block generation. However I got the following error message:</p>
  
  <p>[common/tools/configtxgen/localconfig] Load -> CRIT 002 Error reading configuration:  While parsing config: yaml: line 31: did not find expected key
  2018-04-29 23:16:14.056 CEST [common/tools/configtxgen] func1 -> CRIT 003 Error reading configuration: While parsing config: yaml: line 31: did not find expected key
  panic: Error reading configuration: While parsing config: yaml: line 31: did not find expected key [recovered] panic: Error reading configuration: While parsing config: yaml: line 31: did not find expected key</p>
  
  <p>My configtx.yaml file is:</p>
  
  <pre><code># Copyright IBM Corp. All Rights Reserved.
  #
  # SPDX-License-Identifier: Apache-2.0
  #
  
  ---
  ################################################################################
  #
  #   Profile
  #
  #   - Different configuration profiles may be encoded here to be specified
  #   as parameters to the configtxgen tool
  #
  ################################################################################
  Profiles:
  
     MhmdOrdererGenesis:
          Capabilities:
              &lt;&lt;: *ChannelCapabilities
          Orderer:
              &lt;&lt;: *OrdererDefaults
              Organizations:
                  - *OrdererOrg
              Capabilities:
                  &lt;&lt;: *OrdererCapabilities
          Consortiums:
              MhmdConsortium:
                  Organizations:
                      - *Hos
                      - *Pha
                      - *Res
      MhmdChannel:
          Consortium: MhmdConsortium
          Application:
              &lt;&lt;: *ApplicationDefaults
              Organizations:
                  - *Hos
                  - *Pha
                  - *Res
              Capabilities:
                  &lt;&lt;: *ApplicationCapabilities
  
  ################################################################################
  #
  #   Section: Organizations
  #
  #   - This section defines the different organizational identities which will
  #   be referenced later in the configuration.
  #
  ################################################################################
  Organizations:
  
      # SampleOrg defines an MSP using the sampleconfig.  It should never be used
      # in production but may be used as a template for other definitions
      - &amp;OrdererOrg
          # DefaultOrg defines the organization which is used in the sampleconfig
          # of the fabric.git development environment
          Name: OrdererOrg
  
          # ID to load the MSP definition as
          ID: OrdererMSP
  
          # MSPDir is the filesystem path which contains the MSP configuration
          MSPDir: crypto-config/ordererOrganizations/mhmd.com/msp
  
      - &amp;Hos
          # DefaultOrg defines the organization which is used in the sampleconfig
          # of the fabric.git development environment
          Name: HosMSP
  
          # ID to load the MSP definition as
          ID: HosMSP
  
          MSPDir: crypto-config/peerOrganizations/hos.mhmd.com/msp
  
          AnchorPeers:
              # AnchorPeers defines the location of peers which can be used
              # for cross org gossip communication.  Note, this value is only
              # encoded in the genesis block in the Application section context
              - Host: peer0.hos.example.com
                Port: 7051
  
      - &amp;Pha
          # DefaultOrg defines the organization which is used in the sampleconfig
          # of the fabric.git development environment
          Name: PhaMSP
  
          # ID to load the MSP definition as
          ID: PhaMSP
  
          MSPDir: crypto-config/peerOrganizations/pha.mhmd.com/msp
  
          AnchorPeers:
              # AnchorPeers defines the location of peers which can be used
              # for cross org gossip communication.  Note, this value is only
              #encoded in the genesis block in the Application section context
              - Host: peer0.pha.example.com
                Port: 7051
  
      - &amp;Res
          # DefaultOrg defines the organization which is used in the sampleconfig
          # of the fabric.git development environment
          Name: ResMSP
  
          # ID to load the MSP definition as
          ID: ResMSP
  
          MSPDir: crypto-config/peerOrganizations/res.mhmd.com/msp
  
          AnchorPeers:
              # AnchorPeers defines the location of peers which can be used
              # for cross org gossip communication.  Note, this value is only
              # encoded in the genesis block in the Application section context
              - Host: peer0.res.example.com
                Port: 7051
  
  ################################################################################
  #
  #   SECTION: Orderer
  #
  #   - This section defines the values to encode into a config transaction or
  #   genesis block for orderer related parameters
  #
  ################################################################################
  Orderer: &amp;OrdererDefaults
  
      # Orderer Type: The orderer implementation to start
      # Available types are "solo" and "kafka"
      OrdererType: solo
  
      Addresses:
          - orderer.mhmd.com:7050
  
      # Batch Timeout: The amount of time to wait before creating a batch
      BatchTimeout: 2s
  
      # Batch Size: Controls the number of messages batched into a block
      BatchSize:
  
          # Max Message Count: The maximum number of messages to permit in a batch
          MaxMessageCount: 10
  
          # Absolute Max Bytes: The absolute maximum number of bytes allowed for
          # the serialized messages in a batch.
          AbsoluteMaxBytes: 99 MB
  
          # Preferred Max Bytes: The preferred maximum number of bytes allowed for
          # the serialized messages in a batch. A message larger than the preferred
          # max bytes will result in a batch larger than preferred max bytes.
          PreferredMaxBytes: 512 KB
  
      Kafka:
          # Brokers: A list of Kafka brokers to which the orderer connects
          # NOTE: Use IP:port notation
          Brokers:
              - 127.0.0.1:9092
  
      # Organizations is the list of orgs which are defined as participants on
      # the orderer side of the network
      Organizations:
  
  ################################################################################
  #
  #   SECTION: Application
  #
  #   - This section defines the values to encode into a config transaction or
  #   genesis block for application related parameters
  #
  ################################################################################
  Application: &amp;ApplicationDefaults
  
      # Organizations is the list of orgs which are defined as participants on
      # the application side of the network
      Organizations:
  
  ################################################################################
  #
  #   SECTION: Capabilities
  #
  #   - This section defines the capabilities of fabric network. This is a new
  #   concept as of v1.1.0 and should not be utilized in mixed networks with
  #   v1.0.x peers and orderers.  Capabilities define features which must be
  #   present in a fabric binary for that binary to safely participate in the
  #   fabric network.  For instance, if a new MSP type is added, newer binaries
  #   might recognize and validate the signatures from this type, while older
  #   binaries without this support would be unable to validate those
  #   transactions.  This could lead to different versions of the fabric binaries
  #   having different world states.  Instead, defining a capability for a channel
  #   informs those binaries without this capability that they must cease
  #   processing transactions until they have been upgraded.  For v1.0.x if any
  #   capabilities are defined (including a map with all capabilities turned off)
  #   then the v1.0.x peer will deliberately crash.
  #
  ################################################################################
  Capabilities:
      # Channel capabilities apply to both the orderers and the peers and must be
      # supported by both.  Set the value of the capability to true to require it.
      Global: &amp;ChannelCapabilities
          # V1.1 for Global is a catchall flag for behavior which has been
          # determined to be desired for all orderers and peers running v1.0.x,
          # but the modification of which would cause incompatibilities.  Users
          # should leave this flag set to true.
          V1_1: true
  
      # Orderer capabilities apply only to the orderers, and may be safely
      # manipulated without concern for upgrading peers.  Set the value of the
      # capability to true to require it.
      Orderer: &amp;OrdererCapabilities
          # V1.1 for Order is a catchall flag for behavior which has been
          # determined to be desired for all orderers running v1.0.x, but the
          # modification of which  would cause incompatibilities.  Users should
          # leave this flag set to true.
          V1_1: true
  
      # Application capabilities apply only to the peer network, and may be safely
      # manipulated without concern for upgrading orderers.  Set the value of the
      # capability to true to require it.
      Application: &amp;ApplicationCapabilities
          # V1.1 for Application is a catchall flag for behavior which has been
          # determined to be desired for all peers running v1.0.x, but the
          # modification of which would cause incompatibilities.  Users should
          # leave this flag set to true.
          V1_1: true
  </code></pre>
  
  <p>How can I solve it?.</p>
  
  <p>Thanks in advance.</p>