github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/sampleconfig/configtx.yaml (about) 1 # Copyright hechain. All Rights Reserved. 2 # 3 # SPDX-License-Identifier: Apache-2.0 4 # 5 6 --- 7 ################################################################################ 8 # 9 # ORGANIZATIONS 10 # 11 # This section defines the organizational identities that can be referenced 12 # in the configuration profiles. 13 # 14 ################################################################################ 15 Organizations: 16 17 # SampleOrg defines an MSP using the sampleconfig. It should never be used 18 # in production but may be used as a template for other definitions. 19 - &SampleOrg 20 # Name is the key by which this org will be referenced in channel 21 # configuration transactions. 22 # Name can include alphanumeric characters as well as dots and dashes. 23 Name: SampleOrg 24 25 # SkipAsForeign can be set to true for org definitions which are to be 26 # inherited from the orderer system channel during channel creation. This 27 # is especially useful when an admin of a single org without access to the 28 # MSP directories of the other orgs wishes to create a channel. Note 29 # this property must always be set to false for orgs included in block 30 # creation. 31 SkipAsForeign: false 32 33 # ID is the key by which this org's MSP definition will be referenced. 34 # ID can include alphanumeric characters as well as dots and dashes. 35 ID: SampleOrg 36 37 # MSPDir is the filesystem path which contains the MSP configuration. 38 MSPDir: msp 39 40 # Policies defines the set of policies at this level of the config tree 41 # For organization policies, their canonical path is usually 42 # /Channel/<Application|Orderer>/<OrgName>/<PolicyName> 43 Policies: &SampleOrgPolicies 44 Readers: 45 Type: Signature 46 Rule: "OR('SampleOrg.member')" 47 # If your MSP is configured with the new NodeOUs, you might 48 # want to use a more specific rule like the following: 49 # Rule: "OR('SampleOrg.admin', 'SampleOrg.peer', 'SampleOrg.client')" 50 Writers: 51 Type: Signature 52 Rule: "OR('SampleOrg.member')" 53 # If your MSP is configured with the new NodeOUs, you might 54 # want to use a more specific rule like the following: 55 # Rule: "OR('SampleOrg.admin', 'SampleOrg.client')" 56 Admins: 57 Type: Signature 58 Rule: "OR('SampleOrg.admin')" 59 Endorsement: 60 Type: Signature 61 Rule: "OR('SampleOrg.member')" 62 63 # OrdererEndpoints is a list of all orderers this org runs which clients 64 # and peers may to connect to to push transactions and receive blocks respectively. 65 OrdererEndpoints: 66 - "127.0.0.1:7050" 67 68 # AnchorPeers defines the location of peers which can be used for 69 # cross-org gossip communication. 70 # 71 # NOTE: this value should only be set when using the deprecated 72 # `configtxgen --outputAnchorPeersUpdate` command. It is recommended 73 # to instead use the channel configuration update process to set the 74 # anchor peers for each organization. 75 AnchorPeers: 76 - Host: 127.0.0.1 77 Port: 7051 78 79 ################################################################################ 80 # 81 # CAPABILITIES 82 # 83 # This section defines the capabilities of fabric network. This is a new 84 # concept as of v1.1.0 and should not be utilized in mixed networks with 85 # v1.0.x peers and orderers. Capabilities define features which must be 86 # present in a fabric binary for that binary to safely participate in the 87 # fabric network. For instance, if a new MSP type is added, newer binaries 88 # might recognize and validate the signatures from this type, while older 89 # binaries without this support would be unable to validate those 90 # transactions. This could lead to different versions of the fabric binaries 91 # having different world states. Instead, defining a capability for a channel 92 # informs those binaries without this capability that they must cease 93 # processing transactions until they have been upgraded. For v1.0.x if any 94 # capabilities are defined (including a map with all capabilities turned off) 95 # then the v1.0.x peer will deliberately crash. 96 # 97 ################################################################################ 98 Capabilities: 99 # Channel capabilities apply to both the orderers and the peers and must be 100 # supported by both. 101 # Set the value of the capability to true to require it. 102 Channel: &ChannelCapabilities 103 # V2.0 for Channel is a catchall flag for behavior which has been 104 # determined to be desired for all orderers and peers running at the v2.0.0 105 # level, but which would be incompatible with orderers and peers from 106 # prior releases. 107 # Prior to enabling V2.0 channel capabilities, ensure that all 108 # orderers and peers on a channel are at v2.0.0 or later. 109 V2_0: true 110 111 # Orderer capabilities apply only to the orderers, and may be safely 112 # used with prior release peers. 113 # Set the value of the capability to true to require it. 114 Orderer: &OrdererCapabilities 115 # V1.1 for Orderer is a catchall flag for behavior which has been 116 # determined to be desired for all orderers running at the v1.1.x 117 # level, but which would be incompatible with orderers from prior releases. 118 # Prior to enabling V2.0 orderer capabilities, ensure that all 119 # orderers on a channel are at v2.0.0 or later. 120 V2_0: true 121 122 # Application capabilities apply only to the peer network, and may be safely 123 # used with prior release orderers. 124 # Set the value of the capability to true to require it. 125 Application: &ApplicationCapabilities 126 # V2.0 for Application enables the new non-backwards compatible 127 # features and fixes of fabric v2.0. 128 # Prior to enabling V2.0 orderer capabilities, ensure that all 129 # orderers on a channel are at v2.0.0 or later. 130 V2_0: true 131 132 ################################################################################ 133 # 134 # APPLICATION 135 # 136 # This section defines the values to encode into a config transaction or 137 # genesis block for application-related parameters. 138 # 139 ################################################################################ 140 Application: &ApplicationDefaults 141 ACLs: &ACLsDefault 142 # This section provides defaults for policies for various resources 143 # in the system. These "resources" could be functions on system chaincodes 144 # (e.g., "GetBlockByNumber" on the "qscc" system chaincode) or other resources 145 # (e.g.,who can receive Block events). This section does NOT specify the resource's 146 # definition or API, but just the ACL policy for it. 147 # 148 # Users can override these defaults with their own policy mapping by defining the 149 # mapping under ACLs in their channel definition 150 151 #---New Lifecycle System Chaincode (_lifecycle) function to policy mapping for access control--# 152 153 # ACL policy for _lifecycle's "CheckCommitReadiness" function 154 _lifecycle/CheckCommitReadiness: /Channel/Application/Writers 155 156 # ACL policy for _lifecycle's "CommitChaincodeDefinition" function 157 _lifecycle/CommitChaincodeDefinition: /Channel/Application/Writers 158 159 # ACL policy for _lifecycle's "QueryChaincodeDefinition" function 160 _lifecycle/QueryChaincodeDefinition: /Channel/Application/Writers 161 162 # ACL policy for _lifecycle's "QueryChaincodeDefinitions" function 163 _lifecycle/QueryChaincodeDefinitions: /Channel/Application/Writers 164 165 #---Lifecycle System Chaincode (lscc) function to policy mapping for access control---# 166 167 # ACL policy for lscc's "getid" function 168 lscc/ChaincodeExists: /Channel/Application/Readers 169 170 # ACL policy for lscc's "getdepspec" function 171 lscc/GetDeploymentSpec: /Channel/Application/Readers 172 173 # ACL policy for lscc's "getccdata" function 174 lscc/GetChaincodeData: /Channel/Application/Readers 175 176 # ACL Policy for lscc's "getchaincodes" function 177 lscc/GetInstantiatedChaincodes: /Channel/Application/Readers 178 179 #---Query System Chaincode (qscc) function to policy mapping for access control---# 180 181 # ACL policy for qscc's "GetChainInfo" function 182 qscc/GetChainInfo: /Channel/Application/Readers 183 184 # ACL policy for qscc's "GetBlockByNumber" function 185 qscc/GetBlockByNumber: /Channel/Application/Readers 186 187 # ACL policy for qscc's "GetBlockByHash" function 188 qscc/GetBlockByHash: /Channel/Application/Readers 189 190 # ACL policy for qscc's "GetTransactionByID" function 191 qscc/GetTransactionByID: /Channel/Application/Readers 192 193 # ACL policy for qscc's "GetBlockByTxID" function 194 qscc/GetBlockByTxID: /Channel/Application/Readers 195 196 #---Configuration System Chaincode (cscc) function to policy mapping for access control---# 197 198 # ACL policy for cscc's "GetConfigBlock" function 199 cscc/GetConfigBlock: /Channel/Application/Readers 200 201 # ACL policy for cscc's "GetChannelConfig" function 202 cscc/GetChannelConfig: /Channel/Application/Readers 203 204 #---Miscellaneous peer function to policy mapping for access control---# 205 206 # ACL policy for invoking chaincodes on peer 207 peer/Propose: /Channel/Application/Writers 208 209 # ACL policy for chaincode to chaincode invocation 210 peer/ChaincodeToChaincode: /Channel/Application/Writers 211 212 #---Events resource to policy mapping for access control###---# 213 214 # ACL policy for sending block events 215 event/Block: /Channel/Application/Readers 216 217 # ACL policy for sending filtered block events 218 event/FilteredBlock: /Channel/Application/Readers 219 220 # Organizations lists the orgs participating on the application side of the 221 # network. 222 Organizations: 223 224 # Policies defines the set of policies at this level of the config tree 225 # For Application policies, their canonical path is 226 # /Channel/Application/<PolicyName> 227 Policies: &ApplicationDefaultPolicies 228 LifecycleEndorsement: 229 Type: ImplicitMeta 230 Rule: "MAJORITY Endorsement" 231 Endorsement: 232 Type: ImplicitMeta 233 Rule: "MAJORITY Endorsement" 234 Readers: 235 Type: ImplicitMeta 236 Rule: "ANY Readers" 237 Writers: 238 Type: ImplicitMeta 239 Rule: "ANY Writers" 240 Admins: 241 Type: ImplicitMeta 242 Rule: "MAJORITY Admins" 243 244 # Capabilities describes the application level capabilities, see the 245 # dedicated Capabilities section elsewhere in this file for a full 246 # description 247 Capabilities: 248 <<: *ApplicationCapabilities 249 250 ################################################################################ 251 # 252 # ORDERER 253 # 254 # This section defines the values to encode into a config transaction or 255 # genesis block for orderer related parameters. 256 # 257 ################################################################################ 258 Orderer: &OrdererDefaults 259 260 # Orderer Type: The orderer implementation to start. 261 # Available types are "solo", "kafka" and "etcdraft". 262 OrdererType: solo 263 264 # Addresses used to be the list of orderer addresses that clients and peers 265 # could connect to. However, this does not allow clients to associate orderer 266 # addresses and orderer organizations which can be useful for things such 267 # as TLS validation. The preferred way to specify orderer addresses is now 268 # to include the OrdererEndpoints item in your org definition 269 Addresses: 270 # - 127.0.0.1:7050 271 272 # Batch Timeout: The amount of time to wait before creating a batch. 273 BatchTimeout: 2s 274 275 # Batch Size: Controls the number of messages batched into a block. 276 # The orderer views messages opaquely, but typically, messages may 277 # be considered to be Fabric transactions. The 'batch' is the group 278 # of messages in the 'data' field of the block. Blocks will be a few kb 279 # larger than the batch size, when signatures, hashes, and other metadata 280 # is applied. 281 BatchSize: 282 283 # Max Message Count: The maximum number of messages to permit in a 284 # batch. No block will contain more than this number of messages. 285 MaxMessageCount: 500 286 287 # Absolute Max Bytes: The absolute maximum number of bytes allowed for 288 # the serialized messages in a batch. The maximum block size is this value 289 # plus the size of the associated metadata (usually a few KB depending 290 # upon the size of the signing identities). Any transaction larger than 291 # this value will be rejected by ordering. 292 # It is recommended not to exceed 49 MB, given the default grpc max message size of 100 MB 293 # configured on orderer and peer nodes (and allowing for message expansion during communication). 294 AbsoluteMaxBytes: 10 MB 295 296 # Preferred Max Bytes: The preferred maximum number of bytes allowed 297 # for the serialized messages in a batch. Roughly, this field may be considered 298 # the best effort maximum size of a batch. A batch will fill with messages 299 # until this size is reached (or the max message count, or batch timeout is 300 # exceeded). If adding a new message to the batch would cause the batch to 301 # exceed the preferred max bytes, then the current batch is closed and written 302 # to a block, and a new batch containing the new message is created. If a 303 # message larger than the preferred max bytes is received, then its batch 304 # will contain only that message. Because messages may be larger than 305 # preferred max bytes (up to AbsoluteMaxBytes), some batches may exceed 306 # the preferred max bytes, but will always contain exactly one transaction. 307 PreferredMaxBytes: 2 MB 308 309 # Max Channels is the maximum number of channels to allow on the ordering 310 # network. When set to 0, this implies no maximum number of channels. 311 MaxChannels: 0 312 313 Kafka: 314 # Brokers: A list of Kafka brokers to which the orderer connects. Edit 315 # this list to identify the brokers of the ordering service. 316 # NOTE: Use IP:port notation. 317 Brokers: 318 - kafka0:9092 319 - kafka1:9092 320 - kafka2:9092 321 322 # EtcdRaft defines configuration which must be set when the "etcdraft" 323 # orderertype is chosen. 324 EtcdRaft: 325 # The set of Raft replicas for this network. For the etcd/raft-based 326 # implementation, we expect every replica to also be an OSN. Therefore, 327 # a subset of the host:port items enumerated in this list should be 328 # replicated under the Orderer.Addresses key above. 329 Consenters: 330 - Host: raft0.example.com 331 Port: 7050 332 ClientTLSCert: path/to/ClientTLSCert0 333 ServerTLSCert: path/to/ServerTLSCert0 334 - Host: raft1.example.com 335 Port: 7050 336 ClientTLSCert: path/to/ClientTLSCert1 337 ServerTLSCert: path/to/ServerTLSCert1 338 - Host: raft2.example.com 339 Port: 7050 340 ClientTLSCert: path/to/ClientTLSCert2 341 ServerTLSCert: path/to/ServerTLSCert2 342 343 # Options to be specified for all the etcd/raft nodes. The values here 344 # are the defaults for all new channels and can be modified on a 345 # per-channel basis via configuration updates. 346 Options: 347 # TickInterval is the time interval between two Node.Tick invocations. 348 TickInterval: 500ms 349 350 # ElectionTick is the number of Node.Tick invocations that must pass 351 # between elections. That is, if a follower does not receive any 352 # message from the leader of current term before ElectionTick has 353 # elapsed, it will become candidate and start an election. 354 # ElectionTick must be greater than HeartbeatTick. 355 ElectionTick: 10 356 357 # HeartbeatTick is the number of Node.Tick invocations that must 358 # pass between heartbeats. That is, a leader sends heartbeat 359 # messages to maintain its leadership every HeartbeatTick ticks. 360 HeartbeatTick: 1 361 362 # MaxInflightBlocks limits the max number of in-flight append messages 363 # during optimistic replication phase. 364 MaxInflightBlocks: 5 365 366 # SnapshotIntervalSize defines number of bytes per which a snapshot is taken 367 SnapshotIntervalSize: 16 MB 368 369 # Organizations lists the orgs participating on the orderer side of the 370 # network. 371 Organizations: 372 373 # Policies defines the set of policies at this level of the config tree 374 # For Orderer policies, their canonical path is 375 # /Channel/Orderer/<PolicyName> 376 Policies: 377 Readers: 378 Type: ImplicitMeta 379 Rule: "ANY Readers" 380 Writers: 381 Type: ImplicitMeta 382 Rule: "ANY Writers" 383 Admins: 384 Type: ImplicitMeta 385 Rule: "MAJORITY Admins" 386 # BlockValidation specifies what signatures must be included in the block 387 # from the orderer for the peer to validate it. 388 BlockValidation: 389 Type: ImplicitMeta 390 Rule: "ANY Writers" 391 392 # Capabilities describes the orderer level capabilities, see the 393 # dedicated Capabilities section elsewhere in this file for a full 394 # description 395 Capabilities: 396 <<: *OrdererCapabilities 397 398 ################################################################################ 399 # 400 # CHANNEL 401 # 402 # This section defines the values to encode into a config transaction or 403 # genesis block for channel related parameters. 404 # 405 ################################################################################ 406 Channel: &ChannelDefaults 407 # Policies defines the set of policies at this level of the config tree 408 # For Channel policies, their canonical path is 409 # /Channel/<PolicyName> 410 Policies: 411 # Who may invoke the 'Deliver' API 412 Readers: 413 Type: ImplicitMeta 414 Rule: "ANY Readers" 415 # Who may invoke the 'Broadcast' API 416 Writers: 417 Type: ImplicitMeta 418 Rule: "ANY Writers" 419 # By default, who may modify elements at this config level 420 Admins: 421 Type: ImplicitMeta 422 Rule: "MAJORITY Admins" 423 424 425 # Capabilities describes the channel level capabilities, see the 426 # dedicated Capabilities section elsewhere in this file for a full 427 # description 428 Capabilities: 429 <<: *ChannelCapabilities 430 431 ################################################################################ 432 # 433 # PROFILES 434 # 435 # Different configuration profiles may be encoded here to be specified as 436 # parameters to the configtxgen tool. The profiles which specify consortiums 437 # are to be used for generating the orderer genesis block. With the correct 438 # consortium members defined in the orderer genesis block, channel creation 439 # requests may be generated with only the org member names and a consortium 440 # name. 441 # 442 ################################################################################ 443 Profiles: 444 445 # SampleSingleMSPSolo defines a configuration which uses the Solo orderer, 446 # and contains a single MSP definition (the MSP sampleconfig). 447 # The Consortium SampleConsortium has only a single member, SampleOrg. 448 SampleSingleMSPSolo: 449 <<: *ChannelDefaults 450 Orderer: 451 <<: *OrdererDefaults 452 Organizations: 453 - *SampleOrg 454 Consortiums: 455 SampleConsortium: 456 Organizations: 457 - *SampleOrg 458 459 # SampleSingleMSPKafka defines a configuration that differs from the 460 # SampleSingleMSPSolo one only in that it uses the Kafka-based orderer. 461 SampleSingleMSPKafka: 462 <<: *ChannelDefaults 463 Orderer: 464 <<: *OrdererDefaults 465 OrdererType: kafka 466 Organizations: 467 - *SampleOrg 468 Consortiums: 469 SampleConsortium: 470 Organizations: 471 - *SampleOrg 472 473 # SampleInsecureSolo defines a configuration which uses the Solo orderer, 474 # contains no MSP definitions, and allows all transactions and channel 475 # creation requests for the consortium SampleConsortium. 476 SampleInsecureSolo: 477 <<: *ChannelDefaults 478 Orderer: 479 <<: *OrdererDefaults 480 Consortiums: 481 SampleConsortium: 482 Organizations: 483 484 # SampleInsecureKafka defines a configuration that differs from the 485 # SampleInsecureSolo one only in that it uses the Kafka-based orderer. 486 SampleInsecureKafka: 487 <<: *ChannelDefaults 488 Orderer: 489 <<: *OrdererDefaults 490 OrdererType: kafka 491 Consortiums: 492 SampleConsortium: 493 Organizations: 494 495 # SampleDevModeSolo defines a configuration which uses the Solo orderer, 496 # contains the sample MSP as both orderer and consortium member, and 497 # requires only basic membership for admin privileges. It also defines 498 # an Application on the ordering system channel, which should usually 499 # be avoided. 500 SampleDevModeSolo: 501 <<: *ChannelDefaults 502 Orderer: 503 <<: *OrdererDefaults 504 Organizations: 505 - <<: *SampleOrg 506 Policies: 507 <<: *SampleOrgPolicies 508 Admins: 509 Type: Signature 510 Rule: "OR('SampleOrg.member')" 511 Application: 512 <<: *ApplicationDefaults 513 Organizations: 514 - <<: *SampleOrg 515 Policies: 516 <<: *SampleOrgPolicies 517 Admins: 518 Type: Signature 519 Rule: "OR('SampleOrg.member')" 520 Consortiums: 521 SampleConsortium: 522 Organizations: 523 - <<: *SampleOrg 524 Policies: 525 <<: *SampleOrgPolicies 526 Admins: 527 Type: Signature 528 Rule: "OR('SampleOrg.member')" 529 530 # SampleDevModeKafka defines a configuration that differs from the 531 # SampleDevModeSolo one only in that it uses the Kafka-based orderer. 532 SampleDevModeKafka: 533 <<: *ChannelDefaults 534 Orderer: 535 <<: *OrdererDefaults 536 OrdererType: kafka 537 Organizations: 538 - <<: *SampleOrg 539 Policies: 540 <<: *SampleOrgPolicies 541 Admins: 542 Type: Signature 543 Rule: "OR('SampleOrg.member')" 544 Application: 545 <<: *ApplicationDefaults 546 Organizations: 547 - <<: *SampleOrg 548 Policies: 549 <<: *SampleOrgPolicies 550 Admins: 551 Type: Signature 552 Rule: "OR('SampleOrg.member')" 553 Consortiums: 554 SampleConsortium: 555 Organizations: 556 - <<: *SampleOrg 557 Policies: 558 <<: *SampleOrgPolicies 559 Admins: 560 Type: Signature 561 Rule: "OR('SampleOrg.member')" 562 563 # SampleSingleMSPChannel defines a channel with only the sample org as a 564 # member. It is designed to be used in conjunction with SampleSingleMSPSolo 565 # and SampleSingleMSPKafka orderer profiles. Note, for channel creation 566 # profiles, only the 'Application' section and consortium # name are 567 # considered. 568 SampleSingleMSPChannel: 569 <<: *ChannelDefaults 570 Consortium: SampleConsortium 571 Application: 572 <<: *ApplicationDefaults 573 Organizations: 574 - <<: *SampleOrg 575 576 # SampleDevModeEtcdRaft defines a configuration that differs from the 577 # SampleDevModeSolo one only in that it uses the etcd/raft-based orderer. 578 SampleDevModeEtcdRaft: 579 <<: *ChannelDefaults 580 Orderer: 581 <<: *OrdererDefaults 582 OrdererType: etcdraft 583 Organizations: 584 - <<: *SampleOrg 585 Policies: 586 <<: *SampleOrgPolicies 587 Admins: 588 Type: Signature 589 Rule: "OR('SampleOrg.member')" 590 Application: 591 <<: *ApplicationDefaults 592 Organizations: 593 - <<: *SampleOrg 594 Policies: 595 <<: *SampleOrgPolicies 596 Admins: 597 Type: Signature 598 Rule: "OR('SampleOrg.member')" 599 Consortiums: 600 SampleConsortium: 601 Organizations: 602 - <<: *SampleOrg 603 Policies: 604 <<: *SampleOrgPolicies 605 Admins: 606 Type: Signature 607 Rule: "OR('SampleOrg.member')" 608 609 # SampleAppChannelInsecureSolo defines an application channel configuration 610 # which uses the Solo orderer and contains no MSP definitions. 611 SampleAppChannelInsecureSolo: 612 <<: *ChannelDefaults 613 Orderer: 614 <<: *OrdererDefaults 615 Application: 616 <<: *ApplicationDefaults 617 618 # SampleAppChannelEtcdRaft defines an application channel configuration 619 # that uses the etcd/raft-based orderer. 620 SampleAppChannelEtcdRaft: 621 <<: *ChannelDefaults 622 Orderer: 623 <<: *OrdererDefaults 624 OrdererType: etcdraft 625 Organizations: 626 - <<: *SampleOrg 627 Policies: 628 <<: *SampleOrgPolicies 629 Admins: 630 Type: Signature 631 Rule: "OR('SampleOrg.member')" 632 Application: 633 <<: *ApplicationDefaults 634 Organizations: 635 - <<: *SampleOrg 636 Policies: 637 <<: *SampleOrgPolicies 638 Admins: 639 Type: Signature 640 Rule: "OR('SampleOrg.member')"