github.com/myafeier/fabric@v1.0.1-0.20170722181825-3a4b1f2bce86/examples/cluster/config/core.yaml (about)

     1  # Copyright IBM Corp. All Rights Reserved.
     2  #
     3  # Licensed under the Apache License, Version 2.0 (the "License");
     4  # you may not use this file except in compliance with the License.
     5  # You may obtain a copy of the License at
     6  #
     7  #      http://www.apache.org/licenses/LICENSE-2.0
     8  #
     9  # Unless required by applicable law or agreed to in writing, software
    10  # distributed under the License is distributed on an "AS IS" BASIS,
    11  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  # See the License for the specific language governing permissions and
    13  # limitations under the License.
    14  #
    15  
    16  ###############################################################################
    17  #
    18  #    LOGGING section
    19  #
    20  ###############################################################################
    21  logging:
    22  
    23      # Default logging levels are specified here for each of the three peer
    24      # commands 'node', 'network' and 'chaincode'. For commands that have
    25      # subcommands, the defaults also apply to all subcommands of the command.
    26      # Valid logging levels are case-insensitive strings chosen from
    27  
    28      #     CRITICAL | ERROR | WARNING | NOTICE | INFO | DEBUG
    29  
    30      # The logging levels specified here can be overridden in various ways,
    31      # listed below from strongest to weakest:
    32      #
    33      # 1. The --logging-level=<level> command line option overrides all other
    34      #    specifications.
    35      #
    36      # 2. The environment variable CORE_LOGGING_LEVEL otherwise applies to
    37      #    all peer commands if defined as a non-empty string.
    38      #
    39      # 3. The environment variables CORE_LOGGING_[NODE|NETWORK|CHAINCODE]
    40      #    otherwise apply to the respective peer commands if defined as non-empty
    41      #    strings.
    42      #
    43      # 4. Otherwise, the specifications below apply.
    44      #
    45      # Developers: Please see fabric/docs/Setup/logging-control.md for more
    46      # options.
    47      peer:       warning
    48      node:       warning
    49      network:    warning
    50      version:    warning
    51      protoutils: warning
    52      error:      warning
    53      msp:        warning
    54      gossip:     warning
    55      grpc:       warning
    56      ledger:     warning
    57      policies:   warning
    58      cauthdsl:   warning
    59  
    60      format: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'
    61  
    62  ###############################################################################
    63  #
    64  #    Peer section
    65  #
    66  ###############################################################################
    67  peer:
    68  
    69      # The Peer id is used for identifying this Peer instance.
    70      id: jdoe
    71  
    72      # The networkId allows for logical seperation of networks
    73      # networkId: dev
    74      # networkId: test
    75      networkId: dev
    76  
    77      # The Address this Peer will listen on
    78      listenAddress: 0.0.0.0:7051
    79      # Represents the peer's endpoint to peers in its organization
    80      # for other peers, see externalEndpoint
    81      address: 0.0.0.0:7051
    82      # Whether the Peer should programmatically determine its address
    83      # This case is useful for docker containers.
    84      addressAutoDetect: false
    85  
    86      # Setting for runtime.GOMAXPROCS(n). If n < 1, it does not change the current setting
    87      gomaxprocs: -1
    88  
    89      # Gossip related configuration
    90      gossip:
    91          # Bootstrap set to initialize gossip with
    92          bootstrap: 127.0.0.1:7051
    93  
    94          # NOTE: orgLeader and useLeaderElection parameters are mutual exclusive
    95          # setting both to true would result in the termination of the peer, since this is undefined
    96          # state.
    97  
    98          # Defines whenever peer will initialize dynamic algorithm for
    99          # "leader" selection, where leader is the peer to establish
   100          # connection with ordering service and use delivery protocol
   101          # to pull ledger blocks from ordering service
   102          useLeaderElection: true
   103          # Statically defines peer to be an organization "leader",
   104          # where this means that current peer will maintain connection
   105          # with ordering service and disseminate block across peers in
   106          # its own organization
   107          orgLeader: false
   108  
   109          # ID of this instance
   110          endpoint:
   111          # Maximum count of blocks we store in memory
   112          maxBlockCountToStore: 100
   113          # Max time between consecutive message pushes(unit: millisecond)
   114          maxPropagationBurstLatency: 10ms
   115          # Max number of messages stored until it triggers a push to remote peers
   116          maxPropagationBurstSize: 10
   117          # Number of times a message is pushed to remote peers
   118          propagateIterations: 1
   119          # Number of peers selected to push messages to
   120          propagatePeerNum: 3
   121          # Determines frequency of pull phases(unit: second)
   122          pullInterval: 4s
   123          # Number of peers to pull from
   124          pullPeerNum: 3
   125          # Determines frequency of pulling state info messages from peers(unit: second)
   126          requestStateInfoInterval: 4s
   127          # Determines frequency of pushing state info messages to peers(unit: second)
   128          publishStateInfoInterval: 4s
   129          # Maximum time a stateInfo message is kept until expired
   130          stateInfoRetentionInterval:
   131          # Time from startup certificates are included in Alive messages(unit: second)
   132          publishCertPeriod: 10s
   133          # Should we skip verifying block messages or not
   134          skipBlockVerification: false
   135          # Dial timeout(unit: second)
   136          dialTimeout: 3s
   137          # Connection timeout(unit: second)
   138          connTimeout: 2s
   139          # Buffer size of received messages
   140          recvBuffSize: 20
   141          # Buffer size of sending messages
   142          sendBuffSize: 20
   143          # Time to wait before pull engine processes incoming digests (unit: second)
   144          digestWaitTime: 1s
   145          # Time to wait before pull engine removes incoming nonce (unit: second)
   146          requestWaitTime: 1s
   147          # Time to wait before pull engine ends pull (unit: second)
   148          responseWaitTime: 2s
   149          # Alive check interval(unit: second)
   150          aliveTimeInterval: 5s
   151          # Alive expiration timeout(unit: second)
   152          aliveExpirationTimeout: 25s
   153          # Reconnect interval(unit: second)
   154          reconnectInterval: 25s
   155          # This is an endpoint that is published to peers outside of the organization.
   156          # If this isn't set, the peer will not be known to other organizations.
   157          externalEndpoint:
   158  
   159          # Leader election service configuration
   160          election:
   161              # Longest time peer wait for stable membership during leader election startup (unit: second)
   162              startupGracePeriod: 15s
   163              # Interval gossip membership sampled to check its stability (unit: second)
   164              membershipSampleInterval: 1s
   165              # Time pass since last declaration message before peer decide to go to election (unit: second)
   166              leaderAliveThreshold: 10s
   167              # Time between peer sends propose message and declare itself as a leader (sends declaration message) (unit: second)
   168              leaderElectionDuration: 5s
   169  
   170      # Sync related configuration
   171      sync:
   172          blocks:
   173              # Channel size for readonly SyncBlocks messages channel for receiving
   174              # blocks from oppositie Peer Endpoints.
   175              # NOTE: currently messages are not stored and forwarded, but rather
   176              # lost if the channel write blocks.
   177              channelSize: 10
   178          state:
   179              snapshot:
   180                  # Channel size for readonly syncStateSnapshot messages channel
   181                  # for receiving state deltas for snapshot from oppositie Peer Endpoints.
   182                  # NOTE: when the channel is exhausted, the writes block for up to the
   183                  # writeTimeout specified below
   184                  channelSize: 50
   185                  # Write timeout for the syncStateSnapshot messages
   186                  # When the channel above is exhausted, messages block before being
   187                  # discarded for this amount of time
   188                  writeTimeout: 60s
   189              deltas:
   190                  # Channel size for readonly syncStateDeltas messages channel for
   191                  # receiving state deltas for a syncBlockRange from oppositie
   192                  # Peer Endpoints.
   193                  # NOTE: currently messages are not stored and forwarded,
   194                  # but rather lost if the channel write blocks.
   195                  channelSize: 20
   196  
   197      # Validator defines whether this peer is a validating peer or not, and if
   198      # it is enabled, what consensus plugin to load
   199      events:
   200          # The address that the Event service will be enabled on the validator
   201          address: 0.0.0.0:7053
   202  
   203          # total number of events that could be buffered without blocking the
   204          # validator sends
   205          buffersize: 100
   206  
   207          # milliseconds timeout for producer to send an event.
   208          # if < 0, if buffer full, unblocks immediately and not send
   209          # if 0, if buffer full, will block and guarantee the event will be sent out
   210          # if > 0, if buffer full, blocks till timeout
   211          timeout: 10
   212  
   213      # TLS Settings for p2p communications
   214      tls:
   215          enabled: true
   216          cert:
   217              file: tls/server.crt
   218          key:
   219              file: tls/server.key
   220          rootcert:
   221              file: tls/ca.crt
   222  
   223          # The server name use to verify the hostname returned by TLS handshake
   224          serverhostoverride:
   225  
   226      # Path on the file system where peer will store data (eg ledger)
   227      fileSystemPath: /var/hyperledger/fabric/peer
   228  
   229      # BCCSP (Blockchain crypto provider): Select which crypto implementation or
   230      # library to use
   231      BCCSP:
   232          Default: SW
   233          SW:
   234              # TODO: The default Hash and Security level needs refactoring to be
   235              # fully configurable. Changing these defaults requires coordination
   236              # SHA2 is hardcoded in several places, not only BCCSP
   237              Hash: SHA2
   238              Security: 256
   239              # Location of Key Store
   240              FileKeyStore:
   241                  # If "", defaults to 'mspConfigPath'/keystore
   242                  # TODO: Ensure this is read with fabric/core/config.GetPath() once ready
   243                  KeyStore:
   244  
   245      # Path on the file system where peer will find MSP local configurations
   246      mspConfigPath: msp
   247  
   248      # Identifier of the local MSP
   249      # ----!!!!IMPORTANT!!!-!!!IMPORTANT!!!-!!!IMPORTANT!!!!----
   250      # Deployers need to change the value of the localMspId string.
   251      # In particular, the name of the local MSP ID of a peer needs
   252      # to match the name of one of the MSPs in each of the channel
   253      # that this peer is a member of. Otherwise this peer's messages
   254      # will not be identified as valid by other nodes.
   255      localMspId: Org1MSP
   256  
   257      # Used with Go profiling tools only in none production environment. In
   258      # production, it should be disabled (eg enabled: false)
   259      profile:
   260          enabled:     false
   261          listenAddress: 0.0.0.0:6060
   262  
   263  ###############################################################################
   264  #
   265  #    VM section
   266  #
   267  ###############################################################################
   268  vm:
   269  
   270      # Endpoint of the vm management system.  For docker can be one of the following in general
   271      # unix:///var/run/docker.sock
   272      # http://localhost:2375
   273      # https://localhost:2376
   274      endpoint: unix:///var/run/docker.sock
   275  
   276      # settings for docker vms
   277      docker:
   278          tls:
   279              enabled: false
   280              ca:
   281                  file: docker/ca.crt
   282              cert:
   283                  file: docker/tls.crt
   284              key:
   285                  file: docker/tls.key
   286  
   287          # Enables/disables the standard out/err from chaincode containers for debugging purposes
   288          attachStdout: false
   289  
   290          # Parameters of docker container creating. For docker can created by custom parameters
   291          # If you have your own ipam & dns-server for cluster you can use them to create container efficient.
   292          # NetworkMode Sets the networking mode for the container. Supported standard values are: `host`(default),`bridge`,`ipvlan`,`none`
   293          # dns A list of DNS servers for the container to use.
   294          # note: not support customize for `Privileged` `Binds` `Links` `PortBindings`
   295          # not support set LogConfig using Environment Variables
   296          # LogConfig sets the logging driver (Type) and related options (Config) for Docker
   297          # you can refer https://docs.docker.com/engine/admin/logging/overview/ for more detail configruation.
   298          hostConfig:
   299              NetworkMode: host
   300              Dns:
   301                 # - 192.168.0.1
   302              LogConfig:
   303                  Type: json-file
   304                  Config:
   305                      max-size: "50m"
   306                      max-file: "5"
   307              Memory: 2147483648
   308  
   309  ###############################################################################
   310  #
   311  #    Chaincode section
   312  #
   313  ###############################################################################
   314  chaincode:
   315  
   316      # The id is used by the Chaincode stub to register the executing Chaincode
   317      # ID with the Peerand is generally supplied through ENV variables
   318      # the Path form of ID is provided when deploying the chaincode. The name is
   319      # used for all other requests. The name is really a hashcode
   320      # returned by the system in response to the deploy transaction. In
   321      # development mode where user runs the chaincode, the name can be any string
   322      id:
   323          path:
   324          name:
   325  
   326      # Generic builder environment, suitable for most chaincode types
   327      builder: $(DOCKER_NS)/fabric-ccenv:$(ARCH)-$(PROJECT_VERSION)
   328  
   329      golang:
   330          # golang will never need more than baseos
   331          runtime: $(BASE_DOCKER_NS)/fabric-baseos:$(ARCH)-$(BASE_VERSION)
   332  
   333      car:
   334          # car may need more facilities (JVM, etc) in the future as the catalog
   335          # of platforms are expanded.  For now, we can just use baseos
   336          runtime: $(BASE_DOCKER_NS)/fabric-baseos:$(ARCH)-$(BASE_VERSION)
   337  
   338      java:
   339          # This is an image based on java:openjdk-8 with addition compiler
   340          # tools added for java shim layer packaging.
   341          # This image is packed with shim layer libraries that are necessary
   342          # for Java chaincode runtime.
   343          Dockerfile:  |
   344              from $(DOCKER_NS)/fabric-javaenv:$(ARCH)-$(PROJECT_VERSION)
   345  
   346      # timeout in millisecs for starting up a container and waiting for Register
   347      # to come through. 1sec should be plenty for chaincode unit tests
   348      startuptimeout: 300000
   349  
   350      # timeout in millisecs for invokes and initialize commands
   351      # this timeout is used by all chaincodes in all the channels including
   352      # system chaincodes. Default is 30000ms (30 seconds)
   353      executetimeout: 30000
   354  
   355      #timeout in millisecs for deploying chaincode from a remote repository.
   356      deploytimeout: 30000
   357  
   358      #mode - options are "dev", "net"
   359      #dev - in dev mode, user runs the chaincode after starting validator from
   360      # command line on local machine
   361      #net - in net mode validator will run chaincode in a docker container
   362  
   363      mode: net
   364  
   365      # keepalive in seconds. In situations where the communiction goes through a
   366      # proxy that does not support keep-alive, this parameter will maintain connection
   367      # between peer and chaincode.
   368      # A value <= 0 turns keepalive off
   369      keepalive: 0
   370  
   371      # system chaincodes whitelist. To add system chaincode "myscc" to the
   372      # whitelist, add "myscc: enable" to the list below, and register in
   373      # chaincode/importsysccs.go
   374      system:
   375          cscc: enable
   376          lscc: enable
   377          escc: enable
   378          vscc: enable
   379          qscc: enable
   380  
   381      # logging section for the chaincode container
   382      logLevel: warning
   383      logFormat: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'
   384  
   385  ###############################################################################
   386  #
   387  #    Ledger section - ledger configuration encompases both the blockchain
   388  #    and the state
   389  #
   390  ###############################################################################
   391  ledger:
   392  
   393    blockchain:
   394  
   395    state:
   396      # stateDatabase - options are "goleveldb", "CouchDB"
   397      # goleveldb - default state database stored in goleveldb.
   398      # CouchDB - store state database in CouchDB
   399      stateDatabase: goleveldb
   400      couchDBConfig:
   401         couchDBAddress: 127.0.0.1:5984
   402         username:
   403         password:
   404  
   405      # historyDatabase - options are true or false
   406      # Indicates if the history of key updates should be stored in goleveldb
   407      historyDatabase: true
   408  
   409      # Limit on the number of records to return per query
   410      queryLimit: 10000