github.com/kchristidis/fabric@v1.0.4-0.20171028114726-837acd08cde1/sampleconfig/orderer.yaml (about)

     1  # Copyright IBM Corp. All Rights Reserved.
     2  #
     3  # SPDX-License-Identifier: Apache-2.0
     4  #
     5  
     6  ---
     7  ################################################################################
     8  #
     9  #   Orderer Configuration
    10  #
    11  #   - This controls the type and configuration of the orderer.
    12  #
    13  ################################################################################
    14  General:
    15  
    16      # Ledger Type: The ledger type to provide to the orderer.
    17      # Two non-production ledger types are provided for test purposes only:
    18      #  - ram: An in-memory ledger whose contents are lost on restart.
    19      #  - json: A simple file ledger that writes blocks to disk in JSON format.
    20      # Only one production ledger type is provided:
    21      #  - file: A production file-based ledger.
    22      LedgerType: file
    23  
    24      # Listen address: The IP on which to bind to listen.
    25      ListenAddress: 127.0.0.1
    26  
    27      # Listen port: The port on which to bind to listen.
    28      ListenPort: 7050
    29  
    30      # TLS: TLS settings for the GRPC server.
    31      TLS:
    32          Enabled: false
    33          PrivateKey: tls/server.key
    34          Certificate: tls/server.crt
    35          RootCAs:
    36            - tls/ca.crt
    37          ClientAuthEnabled: false
    38          ClientRootCAs:
    39  
    40      # Log Level: The level at which to log. This accepts logging specifications
    41      # per: fabric/docs/Setup/logging-control.md
    42      LogLevel: info
    43  
    44      # Log Format:  The format string to use when logging.  Especially useful to disable color logging
    45      LogFormat: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'
    46  
    47      # Genesis method: The method by which the genesis block for the orderer
    48      # system channel is specified. Available options are "provisional", "file":
    49      #  - provisional: Utilizes a genesis profile, specified by GenesisProfile,
    50      #                 to dynamically generate a new genesis block.
    51      #  - file: Uses the file provided by GenesisFile as the genesis block.
    52      GenesisMethod: provisional
    53  
    54      # Genesis profile: The profile to use to dynamically generate the genesis
    55      # block to use when initializing the orderer system channel and
    56      # GenesisMethod is set to "provisional". See the configtx.yaml file for the
    57      # descriptions of the available profiles. Ignored if GenesisMethod is set to
    58      # "file".
    59      GenesisProfile: SampleInsecureSolo
    60  
    61      # Genesis file: The file containing the genesis block to use when
    62      # initializing the orderer system channel and GenesisMethod is set to
    63      # "file". Ignored if GenesisMethod is set to "provisional".
    64      GenesisFile: genesisblock
    65  
    66      # LocalMSPDir is where to find the private crypto material needed by the
    67      # orderer. It is set relative here as a default for dev environments but
    68      # should be changed to the real location in production.
    69      LocalMSPDir: msp
    70  
    71      # LocalMSPID is the identity to register the local MSP material with the MSP
    72      # manager. IMPORTANT: The local MSP ID of an orderer needs to match the MSP
    73      # ID of one of the organizations defined in the orderer system channel's
    74      # /Channel/Orderer configuration. The sample organization defined in the
    75      # sample configuration provided has an MSP ID of "DEFAULT".
    76      LocalMSPID: DEFAULT
    77  
    78      # Enable an HTTP service for Go "pprof" profiling as documented at:
    79      # https://golang.org/pkg/net/http/pprof
    80      Profile:
    81          Enabled: false
    82          Address: 0.0.0.0:6060
    83  
    84      # BCCSP configures the blockchain crypto service providers.
    85      BCCSP:
    86          # Default specifies the preferred blockchain crypto service provider
    87          # to use. If the preferred provider is not available, the software
    88          # based provider ("SW") will be used.
    89          # Valid providers are:
    90          #  - SW: a software based crypto provider
    91          #  - PKCS11: a CA hardware security module crypto provider.
    92          Default: SW
    93  
    94          # SW configures the software based blockchain crypto provider.
    95          SW:
    96              # TODO: The default Hash and Security level needs refactoring to be
    97              # fully configurable. Changing these defaults requires coordination
    98              # SHA2 is hardcoded in several places, not only BCCSP
    99              Hash: SHA2
   100              Security: 256
   101              # Location of key store. If this is unset, a location will be
   102              # chosen using: 'LocalMSPDir'/keystore
   103              FileKeyStore:
   104                  KeyStore:
   105  
   106  ################################################################################
   107  #
   108  #   SECTION: File Ledger
   109  #
   110  #   - This section applies to the configuration of the file or json ledgers.
   111  #
   112  ################################################################################
   113  FileLedger:
   114  
   115      # Location: The directory to store the blocks in.
   116      # NOTE: If this is unset, a new temporary location will be chosen every time
   117      # the orderer is restarted, using the prefix specified by Prefix.
   118      Location: /var/hyperledger/production/orderer
   119  
   120      # The prefix to use when generating a ledger directory in temporary space.
   121      # Otherwise, this value is ignored.
   122      Prefix: hyperledger-fabric-ordererledger
   123  
   124  ################################################################################
   125  #
   126  #   SECTION: RAM Ledger
   127  #
   128  #   - This section applies to the configuration of the RAM ledger.
   129  #
   130  ################################################################################
   131  RAMLedger:
   132  
   133      # History Size: The number of blocks that the RAM ledger is set to retain.
   134      # WARNING: Appending a block to the ledger might cause the oldest block in
   135      # the ledger to be dropped in order to limit the number total number blocks
   136      # to HistorySize. For example, if history size is 10, when appending block
   137      # 10, block 0 (the genesis block!) will be dropped to make room for block 10.
   138      HistorySize: 1000
   139  
   140  ################################################################################
   141  #
   142  #   SECTION: Kafka
   143  #
   144  #   - This section applies to the configuration of the Kafka-based orderer, and
   145  #     its interaction with the Kafka cluster.
   146  #
   147  ################################################################################
   148  Kafka:
   149  
   150      # Retry: What do if a connection to the Kafka cluster cannot be established,
   151      # or if a metadata request to the Kafka cluster needs to be repeated.
   152      Retry:
   153          # When a new channel is created, or when an existing channel is reloaded
   154          # (in case of a just-restarted orderer), the orderer interacts with the
   155          # Kafka cluster in the following ways:
   156          # 1. It creates a Kafka producer (writer) for the Kafka partition that
   157          # corresponds to the channel.
   158          # 2. It uses that producer to post a no-op CONNECT message to that
   159          # partition
   160          # 3. It creates a Kafka consumer (reader) for that partition.
   161          # If any of these steps fail, they will be re-attempted every
   162          # <ShortInterval> for a total of <ShortTotal>, and then every
   163          # <LongInterval> for a total of <LongTotal> until they succeed.
   164          # Note that the orderer will be unable to write to or read from a
   165          # channel until all of the steps above have been completed successfully.
   166          ShortInterval: 5s
   167          ShortTotal: 10m
   168          LongInterval: 5m
   169          LongTotal: 12h
   170          # Affects the socket timeouts when waiting for an initial connection, a
   171          # response, or a transmission. See Config.Net for more info:
   172          # https://godoc.org/github.com/Shopify/sarama#Config
   173          NetworkTimeouts:
   174              DialTimeout: 10s
   175              ReadTimeout: 10s
   176              WriteTimeout: 10s
   177          # Affects the metadata requests when the Kafka cluster is in the middle
   178          # of a leader election.See Config.Metadata for more info:
   179          # https://godoc.org/github.com/Shopify/sarama#Config
   180          Metadata:
   181              RetryBackoff: 250ms
   182              RetryMax: 3
   183          # What to do if posting a message to the Kafka cluster fails. See
   184          # Config.Producer for more info:
   185          # https://godoc.org/github.com/Shopify/sarama#Config
   186          Producer:
   187              RetryBackoff: 100ms
   188              RetryMax: 3
   189          # What to do if reading from the Kafka cluster fails. See
   190          # Config.Consumer for more info:
   191          # https://godoc.org/github.com/Shopify/sarama#Config
   192          Consumer:
   193              RetryBackoff: 2s
   194  
   195      # Verbose: Enable logging for interactions with the Kafka cluster.
   196      Verbose: false
   197  
   198      # TLS: TLS settings for the orderer's connection to the Kafka cluster.
   199      TLS:
   200  
   201        # Enabled: Use TLS when connecting to the Kafka cluster.
   202        Enabled: false
   203  
   204        # PrivateKey: PEM-encoded private key the orderer will use for
   205        # authentication.
   206        PrivateKey:
   207          # As an alternative to specifying the PrivateKey here, uncomment the
   208          # following "File" key and specify the file name from which to load the
   209          # value of PrivateKey.
   210          #File: path/to/PrivateKey
   211  
   212        # Certificate: PEM-encoded signed public key certificate the orderer will
   213        # use for authentication.
   214        Certificate:
   215          # As an alternative to specifying the Certificate here, uncomment the
   216          # following "File" key and specify the file name from which to load the
   217          # value of Certificate.
   218          #File: path/to/Certificate
   219  
   220        # RootCAs: PEM-encoded trusted root certificates used to validate
   221        # certificates from the Kafka cluster.
   222        RootCAs:
   223          # As an alternative to specifying the RootCAs here, uncomment the
   224          # following "File" key and specify the file name from which to load the
   225          # value of RootCAs.
   226          #File: path/to/RootCAs
   227  
   228      # Kafka version of the Kafka cluster brokers (defaults to 0.9.0.1)
   229      Version: