github.com/IBM-Blockchain/fabric-operator@v1.0.4/defaultconfig/peer/core.yaml (about)

     1  #
     2  # Copyright contributors to the Hyperledger Fabric Operator project
     3  #
     4  # SPDX-License-Identifier: Apache-2.0
     5  #
     6  # Licensed under the Apache License, Version 2.0 (the "License");
     7  # you may not use this file except in compliance with the License.
     8  # You may obtain a copy of the License at:
     9  #
    10  # 	  http://www.apache.org/licenses/LICENSE-2.0
    11  #
    12  # Unless required by applicable law or agreed to in writing, software
    13  # distributed under the License is distributed on an "AS IS" BASIS,
    14  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15  # See the License for the specific language governing permissions and
    16  # limitations under the License.
    17  #
    18  
    19  ###############################################################################
    20  #
    21  #    Peer section
    22  #
    23  ###############################################################################
    24  peer:
    25  
    26      # The Peer id is used for identifying this Peer instance.
    27      id: jdoe
    28  
    29      # The networkId allows for logical seperation of networks
    30      networkId: dev
    31  
    32      # The Address at local network interface this Peer will listen on.
    33      # By default, it will listen on all network interfaces
    34      listenAddress: 0.0.0.0:7051
    35  
    36      # The endpoint this peer uses to listen for inbound chaincode connections.
    37      # If this is commented-out, the listen address is selected to be
    38      # the peer's address (see below) with port 7052
    39      # chaincodeListenAddress: 0.0.0.0:7052
    40  
    41      # The endpoint the chaincode for this peer uses to connect to the peer.
    42      # If this is not specified, the chaincodeListenAddress address is selected.
    43      # And if chaincodeListenAddress is not specified, address is selected from
    44      # peer listenAddress.
    45      # chaincodeAddress: 0.0.0.0:7052
    46  
    47      # When used as peer config, this represents the endpoint to other peers
    48      # in the same organization. For peers in other organization, see
    49      # gossip.externalEndpoint for more info.
    50      # When used as CLI config, this means the peer's endpoint to interact with
    51      address: 0.0.0.0:7051
    52  
    53      # Whether the Peer should programmatically determine its address
    54      # This case is useful for docker containers.
    55      addressAutoDetect: false
    56  
    57      # Setting for runtime.GOMAXPROCS(n). If n < 1, it does not change the
    58      # current setting
    59      gomaxprocs: -1
    60  
    61      # Keepalive settings for peer server and clients
    62      keepalive:
    63          # MinInterval is the minimum permitted time between client pings.
    64          # If clients send pings more frequently, the peer server will
    65          # disconnect them
    66          minInterval: 60s
    67          # Client keepalive settings for communicating with other peer nodes
    68          client:
    69              # Interval is the time between pings to peer nodes.  This must
    70              # greater than or equal to the minInterval specified by peer
    71              # nodes
    72              interval: 60s
    73              # Timeout is the duration the client waits for a response from
    74              # peer nodes before closing the connection
    75              timeout: 20s
    76          # DeliveryClient keepalive settings for communication with ordering
    77          # nodes.
    78          deliveryClient:
    79              # Interval is the time between pings to ordering nodes.  This must
    80              # greater than or equal to the minInterval specified by ordering
    81              # nodes.
    82              interval: 60s
    83              # Timeout is the duration the client waits for a response from
    84              # ordering nodes before closing the connection
    85              timeout: 20s
    86  
    87  
    88      # Gossip related configuration
    89      gossip:
    90          # Bootstrap set to initialize gossip with.
    91          # This is a list of other peers that this peer reaches out to at startup.
    92          # Important: The endpoints here have to be endpoints of peers in the same
    93          # organization, because the peer would refuse connecting to these endpoints
    94          # unless they are in the same organization as the peer.
    95          bootstrap:
    96            - 127.0.0.1:7051
    97  
    98          # NOTE: orgLeader and useLeaderElection parameters are mutual exclusive.
    99          # Setting both to true would result in the termination of the peer
   100          # since this is undefined state. If the peers are configured with
   101          # useLeaderElection=false, make sure there is at least 1 peer in the
   102          # organization that its orgLeader is set to true.
   103  
   104          # Defines whenever peer will initialize dynamic algorithm for
   105          # "leader" selection, where leader is the peer to establish
   106          # connection with ordering service and use delivery protocol
   107          # to pull ledger blocks from ordering service. It is recommended to
   108          # use leader election for large networks of peers.
   109          # ibp changes this from true to false
   110          useLeaderElection: false
   111          # Statically defines peer to be an organization "leader",
   112          # where this means that current peer will maintain connection
   113          # with ordering service and disseminate block across peers in
   114          # its own organization
   115          # ibp changes this from false to true
   116          orgLeader: true
   117  
   118          # Interval for membershipTracker polling
   119          membershipTrackerInterval: 5s
   120  
   121          # Overrides the endpoint that the peer publishes to peers
   122          # in its organization. For peers in foreign organizations
   123          # see 'externalEndpoint'
   124          endpoint:
   125          # Maximum count of blocks stored in memory
   126          # ibp updates it from 100 to 10
   127          maxBlockCountToStore: 10
   128          # Max time between consecutive message pushes(unit: millisecond)
   129          maxPropagationBurstLatency: 10ms
   130          # Max number of messages stored until a push is triggered to remote peers
   131          maxPropagationBurstSize: 10
   132          # Number of times a message is pushed to remote peers
   133          propagateIterations: 1
   134          # Number of peers selected to push messages to
   135          propagatePeerNum: 3
   136          # Determines frequency of pull phases(unit: second)
   137          # Must be greater than digestWaitTime + responseWaitTime
   138          pullInterval: 4s
   139          # Number of peers to pull from
   140          pullPeerNum: 3
   141          # Determines frequency of pulling state info messages from peers(unit: second)
   142          requestStateInfoInterval: 4s
   143          # Determines frequency of pushing state info messages to peers(unit: second)
   144          publishStateInfoInterval: 4s
   145          # Maximum time a stateInfo message is kept until expired
   146          stateInfoRetentionInterval:
   147          # Time from startup certificates are included in Alive messages(unit: second)
   148          publishCertPeriod: 10s
   149          # Should we skip verifying block messages or not (currently not in use)
   150          skipBlockVerification: false
   151          # Dial timeout(unit: second)
   152          dialTimeout: 3s
   153          # Connection timeout(unit: second)
   154          connTimeout: 2s
   155          # Buffer size of received messages
   156          recvBuffSize: 20
   157          # Buffer size of sending messages
   158          sendBuffSize: 200
   159          # Time to wait before pull engine processes incoming digests (unit: second)
   160          # Should be slightly smaller than requestWaitTime
   161          digestWaitTime: 1s
   162          # Time to wait before pull engine removes incoming nonce (unit: milliseconds)
   163          # Should be slightly bigger than digestWaitTime
   164          requestWaitTime: 1500ms
   165          # Time to wait before pull engine ends pull (unit: second)
   166          responseWaitTime: 2s
   167          # Alive check interval(unit: second)
   168          aliveTimeInterval: 5s
   169          # Alive expiration timeout(unit: second)
   170          aliveExpirationTimeout: 25s
   171          # Reconnect interval(unit: second)
   172          reconnectInterval: 25s
   173          # Max number of attempts to connect to a peer
   174          maxConnectionAttempts: 120
   175          # Message expiration factor for alive messages
   176          msgExpirationFactor: 20
   177          # This is an endpoint that is published to peers outside of the organization.
   178          # If this isn't set, the peer will not be known to other organizations.
   179          externalEndpoint:
   180          # Leader election service configuration
   181          election:
   182              # Longest time peer waits for stable membership during leader election startup (unit: second)
   183              startupGracePeriod: 15s
   184              # Interval gossip membership samples to check its stability (unit: second)
   185              membershipSampleInterval: 1s
   186              # Time passes since last declaration message before peer decides to perform leader election (unit: second)
   187              leaderAliveThreshold: 10s
   188              # Time between peer sends propose message and declares itself as a leader (sends declaration message) (unit: second)
   189              leaderElectionDuration: 5s
   190  
   191          pvtData:
   192              # pullRetryThreshold determines the maximum duration of time private data corresponding for a given block
   193              # would be attempted to be pulled from peers until the block would be committed without the private data
   194              # ibp updates this from 60s to 5s
   195              pullRetryThreshold: 5s
   196              # As private data enters the transient store, it is associated with the peer's ledger's height at that time.
   197              # transientstoreMaxBlockRetention defines the maximum difference between the current ledger's height upon commit,
   198              # and the private data residing inside the transient store that is guaranteed not to be purged.
   199              # Private data is purged from the transient store when blocks with sequences that are multiples
   200              # of transientstoreMaxBlockRetention are committed.
   201              transientstoreMaxBlockRetention: 1000
   202              # pushAckTimeout is the maximum time to wait for an acknowledgement from each peer
   203              # at private data push at endorsement time.
   204              pushAckTimeout: 3s
   205              # Block to live pulling margin, used as a buffer
   206              # to prevent peer from trying to pull private data
   207              # from peers that is soon to be purged in next N blocks.
   208              # This helps a newly joined peer catch up to current
   209              # blockchain height quicker.
   210              btlPullMargin: 10
   211              # the process of reconciliation is done in an endless loop, while in each iteration reconciler tries to
   212              # pull from the other peers the most recent missing blocks with a maximum batch size limitation.
   213              # reconcileBatchSize determines the maximum batch size of missing private data that will be reconciled in a
   214              # single iteration.
   215              reconcileBatchSize: 10
   216              # reconcileSleepInterval determines the time reconciler sleeps from end of an iteration until the beginning
   217              # of the next reconciliation iteration.
   218              reconcileSleepInterval: 1m
   219              # reconciliationEnabled is a flag that indicates whether private data reconciliation is enable or not.
   220              reconciliationEnabled: true
   221              # skipPullingInvalidTransactionsDuringCommit is a flag that indicates whether pulling of invalid
   222              # transaction's private data from other peers need to be skipped during the commit time and pulled
   223              # only through reconciler.
   224              skipPullingInvalidTransactionsDuringCommit: false
   225  
   226          # Gossip state transfer related configuration
   227          state:
   228              # indicates whenever state transfer is enabled or not
   229              # default value is true, i.e. state transfer is active
   230              # and takes care to sync up missing blocks allowing
   231              # lagging peer to catch up to speed with rest network
   232              # ibp updates this from true to false
   233              enabled: false
   234              # checkInterval interval to check whether peer is lagging behind enough to
   235              # request blocks via state transfer from another peer.
   236              checkInterval: 10s
   237              # responseTimeout amount of time to wait for state transfer response from
   238              # other peers
   239              responseTimeout: 3s
   240              # batchSize the number of blocks to request via state transfer from another peer
   241              batchSize: 10
   242              # blockBufferSize reflect the maximum distance between lowest and
   243              # highest block sequence number state buffer to avoid holes.
   244              # In order to ensure absence of the holes actual buffer size
   245              # is twice of this distance
   246              # ibp updates this from 100 to 20
   247              blockBufferSize: 20
   248              # maxRetries maximum number of re-tries to ask
   249              # for single state transfer request
   250              maxRetries: 3
   251  
   252      # TLS Settings
   253      # Note that peer-chaincode connections through chaincodeListenAddress is
   254      # not mutual TLS auth. See comments on chaincodeListenAddress for more info
   255      tls:
   256          # Require server-side TLS
   257          enabled:  false
   258          # Require client certificates / mutual TLS.
   259          # Note that clients that are not configured to use a certificate will
   260          # fail to connect to the peer.
   261          clientAuthRequired: false
   262          # X.509 certificate used for TLS server
   263          cert:
   264              file: tls/server.crt
   265          # Private key used for TLS server (and client if clientAuthEnabled
   266          # is set to true
   267          key:
   268              file: tls/server.key
   269          # Trusted root certificate chain for tls.cert
   270          rootcert:
   271              file: tls/ca.crt
   272          # Set of root certificate authorities used to verify client certificates
   273          clientRootCAs:
   274              files:
   275                - tls/ca.crt
   276          # Private key used for TLS when making client connections.  If
   277          # not set, peer.tls.key.file will be used instead
   278          clientKey:
   279              file:
   280          # X.509 certificate used for TLS when making client connections.
   281          # If not set, peer.tls.cert.file will be used instead
   282          clientCert:
   283              file:
   284  
   285      # Authentication contains configuration parameters related to authenticating
   286      # client messages
   287      authentication:
   288          # the acceptable difference between the current server time and the
   289          # client's time as specified in a client request message
   290          timewindow: 15m
   291  
   292      # Path on the file system where peer will store data (eg ledger). This
   293      # location must be access control protected to prevent unintended
   294      # modification that might corrupt the peer operations.
   295      fileSystemPath: /var/hyperledger/production
   296  
   297      # BCCSP (Blockchain crypto provider): Select which crypto implementation or
   298      # library to use
   299      BCCSP:
   300          Default: SW
   301          # Settings for the SW crypto provider (i.e. when DEFAULT: SW)
   302          SW:
   303              # TODO: The default Hash and Security level needs refactoring to be
   304              # fully configurable. Changing these defaults requires coordination
   305              # SHA2 is hardcoded in several places, not only BCCSP
   306              Hash: SHA2
   307              Security: 256
   308              # Location of Key Store
   309              FileKeyStore:
   310                  # If "", defaults to 'mspConfigPath'/keystore
   311                  KeyStore:
   312          # Settings for the PKCS#11 crypto provider (i.e. when DEFAULT: PKCS11)
   313          # PKCS11:
   314          #     # Location of the PKCS11 module library
   315          #     Library:
   316          #     # Token Label
   317          #     Label:
   318          #     # User PIN
   319          #     Pin:
   320          #     Hash:
   321          #     Security:
   322          #     FileKeyStore:
   323          #         KeyStore:
   324  
   325      # Path on the file system where peer will find MSP local configurations
   326      mspConfigPath: msp
   327  
   328      # Identifier of the local MSP
   329      # ----!!!!IMPORTANT!!!-!!!IMPORTANT!!!-!!!IMPORTANT!!!!----
   330      # Deployers need to change the value of the localMspId string.
   331      # In particular, the name of the local MSP ID of a peer needs
   332      # to match the name of one of the MSPs in each of the channel
   333      # that this peer is a member of. Otherwise this peer's messages
   334      # will not be identified as valid by other nodes.
   335      localMspId: SampleOrg
   336  
   337      # CLI common client config options
   338      client:
   339          # connection timeout
   340          connTimeout: 3s
   341  
   342      # Delivery service related config
   343      deliveryclient:
   344          # The total time to spend retrying connections to ordering nodes
   345          # before giving up and returning an error.
   346          reconnectTotalTimeThreshold: 3600s
   347  
   348          # The connection timeout when connecting to ordering service nodes.
   349          connTimeout: 3s
   350  
   351          # The maximum delay between consecutive connection retry attempts to
   352          # ordering nodes.
   353          reConnectBackoffThreshold: 3600s
   354  
   355          # A list of orderer endpoint addresses which should be overridden
   356          # when found in channel configurations.
   357          addressOverrides:
   358          #  - from:
   359          #    to:
   360          #    caCertsFile:
   361          #  - from:
   362          #    to:
   363          #    caCertsFile:
   364  
   365      # Type for the local MSP - by default it's of type bccsp
   366      localMspType: bccsp
   367  
   368      # Used with Go profiling tools only in none production environment. In
   369      # production, it should be disabled (eg enabled: false)
   370      profile:
   371          enabled:     false
   372          listenAddress: 0.0.0.0:6060
   373  
   374      # The admin service is used for administrative operations such as
   375      # control over logger levels, etc.
   376      # Only peer administrators can use the service.
   377      adminService:
   378          # The interface and port on which the admin server will listen on.
   379          # If this is commented out, or the port number is equal to the port
   380          # of the peer listen address - the admin service is attached to the
   381          # peer's service (defaults to 7051).
   382          #listenAddress: 0.0.0.0:7055
   383  
   384      # Handlers defines custom handlers that can filter and mutate
   385      # objects passing within the peer, such as:
   386      #   Auth filter - reject or forward proposals from clients
   387      #   Decorators  - append or mutate the chaincode input passed to the chaincode
   388      #   Endorsers   - Custom signing over proposal response payload and its mutation
   389      # Valid handler definition contains:
   390      #   - A name which is a factory method name defined in
   391      #     core/handlers/library/library.go for statically compiled handlers
   392      #   - library path to shared object binary for pluggable filters
   393      # Auth filters and decorators are chained and executed in the order that
   394      # they are defined. For example:
   395      # authFilters:
   396      #   -
   397      #     name: FilterOne
   398      #     library: /opt/lib/filter.so
   399      #   -
   400      #     name: FilterTwo
   401      # decorators:
   402      #   -
   403      #     name: DecoratorOne
   404      #   -
   405      #     name: DecoratorTwo
   406      #     library: /opt/lib/decorator.so
   407      # Endorsers are configured as a map that its keys are the endorsement system chaincodes that are being overridden.
   408      # Below is an example that overrides the default ESCC and uses an endorsement plugin that has the same functionality
   409      # as the default ESCC.
   410      # If the 'library' property is missing, the name is used as the constructor method in the builtin library similar
   411      # to auth filters and decorators.
   412      # endorsers:
   413      #   escc:
   414      #     name: DefaultESCC
   415      #     library: /etc/hyperledger/fabric/plugin/escc.so
   416      handlers:
   417          authFilters:
   418            -
   419              name: DefaultAuth
   420            -
   421              name: ExpirationCheck    # This filter checks identity x509 certificate expiration
   422          decorators:
   423            -
   424              name: DefaultDecorator
   425          endorsers:
   426            escc:
   427              name: DefaultEndorsement
   428              library:
   429          validators:
   430            vscc:
   431              name: DefaultValidation
   432              library:
   433  
   434      #    library: /etc/hyperledger/fabric/plugin/escc.so
   435      # Number of goroutines that will execute transaction validation in parallel.
   436      # By default, the peer chooses the number of CPUs on the machine. Set this
   437      # variable to override that choice.
   438      # NOTE: overriding this value might negatively influence the performance of
   439      # the peer so please change this value only if you know what you're doing
   440      validatorPoolSize:
   441  
   442      # The discovery service is used by clients to query information about peers,
   443      # such as - which peers have joined a certain channel, what is the latest
   444      # channel config, and most importantly - given a chaincode and a channel,
   445      # what possible sets of peers satisfy the endorsement policy.
   446      discovery:
   447          enabled: true
   448          # Whether the authentication cache is enabled or not.
   449          authCacheEnabled: true
   450          # The maximum size of the cache, after which a purge takes place
   451          authCacheMaxSize: 1000
   452          # The proportion (0 to 1) of entries that remain in the cache after the cache is purged due to overpopulation
   453          authCachePurgeRetentionRatio: 0.75
   454          # Whether to allow non-admins to perform non channel scoped queries.
   455          # When this is false, it means that only peer admins can perform non channel scoped queries.
   456          orgMembersAllowedAccess: false
   457  ###############################################################################
   458  #
   459  #    VM section
   460  #
   461  ###############################################################################
   462  vm:
   463  
   464      # Endpoint of the vm management system.  For docker can be one of the following in general
   465      # unix:///var/run/docker.sock
   466      # http://localhost:2375
   467      # https://localhost:2376
   468      endpoint: unix:///var/run/docker.sock
   469  
   470      # settings for docker vms
   471      docker:
   472          tls:
   473              enabled: false
   474              ca:
   475                  file: docker/ca.crt
   476              cert:
   477                  file: docker/tls.crt
   478              key:
   479                  file: docker/tls.key
   480  
   481          # Enables/disables the standard out/err from chaincode containers for
   482          # debugging purposes
   483          attachStdout: false
   484  
   485          # Parameters on creating docker container.
   486          # Container may be efficiently created using ipam & dns-server for cluster
   487          # NetworkMode - sets the networking mode for the container. Supported
   488          # standard values are: `host`(default),`bridge`,`ipvlan`,`none`.
   489          # Dns - a list of DNS servers for the container to use.
   490          # Note:  `Privileged` `Binds` `Links` and `PortBindings` properties of
   491          # Docker Host Config are not supported and will not be used if set.
   492          # LogConfig - sets the logging driver (Type) and related options
   493          # (Config) for Docker. For more info,
   494          # https://docs.docker.com/engine/admin/logging/overview/
   495          # Note: Set LogConfig using Environment Variables is not supported.
   496          hostConfig:
   497              NetworkMode: host
   498              Dns:
   499                 # - 192.168.0.1
   500              # NEVER UNCOMMENT THIS
   501              # LogConfig:
   502              #     Type: json-file
   503              #     Config:
   504              #         max-size: "50m"
   505              #         max-file: "5"
   506              Memory: 2147483648
   507  
   508  ###############################################################################
   509  #
   510  #    Chaincode section
   511  #
   512  ###############################################################################
   513  chaincode:
   514  
   515      # The id is used by the Chaincode stub to register the executing Chaincode
   516      # ID with the Peer and is generally supplied through ENV variables
   517      # the `path` form of ID is provided when installing the chaincode.
   518      # The `name` is used for all other requests and can be any string.
   519      id:
   520          path:
   521          name:
   522  
   523      # Generic builder environment, suitable for most chaincode types
   524      builder: $(DOCKER_NS)/fabric-ccenv:$(TWO_DIGIT_VERSION)
   525  
   526      # Enables/disables force pulling of the base docker images (listed below)
   527      # during user chaincode instantiation.
   528      # Useful when using moving image tags (such as :latest)
   529      pull: false
   530  
   531      golang:
   532          # golang will never need more than baseos
   533          runtime: $(BASE_DOCKER_NS)/fabric-baseos:$(ARCH)-$(BASE_VERSION)
   534  
   535          # whether or not golang chaincode should be linked dynamically
   536          dynamicLink: false
   537  
   538      car:
   539          # car may need more facilities (JVM, etc) in the future as the catalog
   540          # of platforms are expanded.  For now, we can just use baseos
   541          runtime: $(BASE_DOCKER_NS)/fabric-baseos:$(ARCH)-$(BASE_VERSION)
   542  
   543      java:
   544          # This is an image based on java:openjdk-8 with addition compiler
   545          # tools added for java shim layer packaging.
   546          # This image is packed with shim layer libraries that are necessary
   547          # for Java chaincode runtime.
   548          runtime: $(DOCKER_NS)/fabric-javaenv:$(TWO_DIGIT_VERSION)
   549  
   550      node:
   551          # need node.js engine at runtime, currently available in baseimage
   552          # but not in baseos
   553          runtime: $(BASE_DOCKER_NS)/fabric-baseimage:$(ARCH)-$(BASE_VERSION)
   554  
   555      # Timeout duration for starting up a container and waiting for Register
   556      # to come through. 1sec should be plenty for chaincode unit tests
   557      startuptimeout: 300s
   558  
   559      # Timeout duration for Invoke and Init calls to prevent runaway.
   560      # This timeout is used by all chaincodes in all the channels, including
   561      # system chaincodes.
   562      # Note that during Invoke, if the image is not available (e.g. being
   563      # cleaned up when in development environment), the peer will automatically
   564      # build the image, which might take more time. In production environment,
   565      # the chaincode image is unlikely to be deleted, so the timeout could be
   566      # reduced accordingly.
   567      # ibp defaults changed from 30s to 60s
   568      executetimeout: 60s
   569  
   570      # There are 2 modes: "dev" and "net".
   571      # In dev mode, user runs the chaincode after starting peer from
   572      # command line on local machine.
   573      # In net mode, peer will run chaincode in a docker container.
   574      mode: net
   575  
   576      # keepalive in seconds. In situations where the communiction goes through a
   577      # proxy that does not support keep-alive, this parameter will maintain connection
   578      # between peer and chaincode.
   579      # A value <= 0 turns keepalive off
   580      keepalive: 0
   581  
   582      # system chaincodes whitelist. To add system chaincode "myscc" to the
   583      # whitelist, add "myscc: enable" to the list below, and register in
   584      # chaincode/importsysccs.go
   585      system:
   586          cscc: enable
   587          lscc: enable
   588          qscc: enable
   589  
   590      # System chaincode plugins:
   591      # System chaincodes can be loaded as shared objects compiled as Go plugins.
   592      # See examples/plugins/scc for an example.
   593      # Plugins must be white listed in the chaincode.system section above.
   594      systemPlugins:
   595        # example configuration:
   596        # - enabled: true
   597        #   name: myscc
   598        #   path: /opt/lib/myscc.so
   599        #   invokableExternal: true
   600        #   invokableCC2CC: true
   601  
   602      # Logging section for the chaincode container
   603      logging:
   604        # Default level for all loggers within the chaincode container
   605        level:  info
   606        # Override default level for the 'shim' logger
   607        shim:   warning
   608        # Format for the chaincode container logs
   609        format: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'
   610  
   611  ###############################################################################
   612  #
   613  #    Ledger section - ledger configuration encompases both the blockchain
   614  #    and the state
   615  #
   616  ###############################################################################
   617  ledger:
   618  
   619    blockchain:
   620  
   621    state:
   622      # stateDatabase - options are "goleveldb", "CouchDB"
   623      # goleveldb - default state database stored in goleveldb.
   624      # CouchDB - store state database in CouchDB
   625      stateDatabase: goleveldb
   626      # Limit on the number of records to return per query
   627      totalQueryLimit: 100000
   628      couchDBConfig:
   629         # It is recommended to run CouchDB on the same server as the peer, and
   630         # not map the CouchDB container port to a server port in docker-compose.
   631         # Otherwise proper security must be provided on the connection between
   632         # CouchDB client (on the peer) and server.
   633         couchDBAddress: 127.0.0.1:5984
   634         # This username must have read and write authority on CouchDB
   635         username:
   636         # The password is recommended to pass as an environment variable
   637         # during start up (eg CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD).
   638         # If it is stored here, the file must be access control protected
   639         # to prevent unintended users from discovering the password.
   640         password:
   641         # Number of retries for CouchDB errors
   642         maxRetries: 3
   643         # Number of retries for CouchDB errors during peer startup
   644         maxRetriesOnStartup: 12
   645         # CouchDB request timeout (unit: duration, e.g. 20s)
   646         requestTimeout: 35s
   647         # Limit on the number of records per each CouchDB query
   648         # Note that chaincode queries are only bound by totalQueryLimit.
   649         # Internally the chaincode may execute multiple CouchDB queries,
   650         # each of size internalQueryLimit.
   651         internalQueryLimit: 1000
   652         # Limit on the number of records per CouchDB bulk update batch
   653         maxBatchUpdateSize: 1000
   654         # Warm indexes after every N blocks.
   655         # This option warms any indexes that have been
   656         # deployed to CouchDB after every N blocks.
   657         # A value of 1 will warm indexes after every block commit,
   658         # to ensure fast selector queries.
   659         # Increasing the value may improve write efficiency of peer and CouchDB,
   660         # but may degrade query response time.
   661         warmIndexesAfterNBlocks: 1
   662         # Create the _global_changes system database
   663         # This is optional.  Creating the global changes database will require
   664         # additional system resources to track changes and maintain the database
   665         createGlobalChangesDB: false
   666  
   667    history:
   668      # enableHistoryDatabase - options are true or false
   669      # Indicates if the history of key updates should be stored.
   670      # All history 'index' will be stored in goleveldb, regardless if using
   671      # CouchDB or alternate database for the state.
   672      enableHistoryDatabase: true
   673  
   674  ###############################################################################
   675  #
   676  #    Operations section
   677  #
   678  ###############################################################################
   679  operations:
   680      # host and port for the operations server
   681      listenAddress: 127.0.0.1:9443
   682  
   683      # TLS configuration for the operations endpoint
   684      tls:
   685          # TLS enabled
   686          enabled: false
   687  
   688          # path to PEM encoded server certificate for the operations server
   689          cert:
   690              file:
   691  
   692          # path to PEM encoded server key for the operations server
   693          key:
   694              file:
   695  
   696          # most operations service endpoints require client authentication when TLS
   697          # is enabled. clientAuthRequired requires client certificate authentication
   698          # at the TLS layer to access all resources.
   699          clientAuthRequired: false
   700  
   701          # paths to PEM encoded ca certificates to trust for client authentication
   702          clientRootCAs:
   703              files: []
   704  
   705  ###############################################################################
   706  #
   707  #    Metrics section
   708  #
   709  ###############################################################################
   710  metrics:
   711      # metrics provider is one of statsd, prometheus, or disabled
   712      # ibp updates this from default to prometheus
   713      provider: prometheus
   714  
   715      # statsd configuration
   716      statsd:
   717          # network type: tcp or udp
   718          network: udp
   719  
   720          # statsd server address
   721          address: 127.0.0.1:8125
   722  
   723          # the interval at which locally cached counters and gauges are pushed
   724          # to statsd; timings are pushed immediately
   725          writeInterval: 10s
   726  
   727          # prefix is prepended to all emitted statsd metrics
   728          prefix: