Documentation ¶
Index ¶
Constants ¶
const ( // SampleInsecureSoloProfile references the sample profile which does not // include any MSPs and uses solo for ordering. SampleInsecureSoloProfile = "SampleInsecureSolo" // SampleDevModeSoloProfile references the sample profile which requires // only basic membership for admin privileges and uses solo for ordering. SampleDevModeSoloProfile = "SampleDevModeSolo" // SampleSingleMSPSoloProfile references the sample profile which includes // only the sample MSP and uses solo for ordering. SampleSingleMSPSoloProfile = "SampleSingleMSPSolo" // SampleInsecureKafkaProfile references the sample profile which does not // include any MSPs and uses Kafka for ordering. SampleInsecureKafkaProfile = "SampleInsecureKafka" // SampleDevModeKafkaProfile references the sample profile which requires only // basic membership for admin privileges and uses Kafka for ordering. SampleDevModeKafkaProfile = "SampleDevModeKafka" // SampleSingleMSPKafkaProfile references the sample profile which includes // only the sample MSP and uses Kafka for ordering. SampleSingleMSPKafkaProfile = "SampleSingleMSPKafka" // SampleDevModeEtcdRaftProfile references the sample profile used for testing // the etcd/raft-based ordering service. SampleDevModeEtcdRaftProfile = "SampleDevModeEtcdRaft" // SampleSingleMSPChannelProfile references the sample profile which // includes only the sample MSP and is used to create a channel SampleSingleMSPChannelProfile = "SampleSingleMSPChannel" // SampleConsortiumName is the sample consortium from the // sample configtx.yaml SampleConsortiumName = "SampleConsortium" // SampleOrgName is the name of the sample org in the sample profiles SampleOrgName = "SampleOrg" // AdminRoleAdminPrincipal is set as AdminRole to cause the MSP role of // type Admin to be used as the admin principal default AdminRoleAdminPrincipal = "Role.ADMIN" )
const (
// The type key for etcd based RAFT consensus.
EtcdRaft = "etcdraft"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnchorPeer ¶
AnchorPeer encodes the necessary fields to identify an anchor peer.
type Application ¶
type Application struct { Organizations []*Organization `yaml:"Organizations"` Capabilities map[string]bool `yaml:"Capabilities"` Resources *Resources `yaml:"Resources"` Policies map[string]*Policy `yaml:"Policies"` ACLs map[string]string `yaml:"ACLs"` }
Application encodes the application-level configuration needed in config transactions.
type BatchSize ¶
type BatchSize struct { MaxMessageCount uint32 `yaml:"MaxMessageCount"` AbsoluteMaxBytes uint32 `yaml:"AbsoluteMaxBytes"` PreferredMaxBytes uint32 `yaml:"PreferredMaxBytes"` }
BatchSize contains configuration affecting the size of batches.
type Consortium ¶
type Consortium struct {
Organizations []*Organization `yaml:"Organizations"`
}
Consortium represents a group of organizations which may create channels with each other
type Kafka ¶
type Kafka struct {
Brokers []string `yaml:"Brokers"`
}
Kafka contains configuration for the Kafka-based orderer.
type Orderer ¶
type Orderer struct { OrdererType string `yaml:"OrdererType"` Addresses []string `yaml:"Addresses"` BatchTimeout time.Duration `yaml:"BatchTimeout"` BatchSize BatchSize `yaml:"BatchSize"` Kafka Kafka `yaml:"Kafka"` EtcdRaft *etcdraft.ConfigMetadata `yaml:"EtcdRaft"` Organizations []*Organization `yaml:"Organizations"` MaxChannels uint64 `yaml:"MaxChannels"` Capabilities map[string]bool `yaml:"Capabilities"` Policies map[string]*Policy `yaml:"Policies"` }
Orderer contains configuration associated to a channel.
type Organization ¶
type Organization struct { Name string `yaml:"Name"` ID string `yaml:"ID"` MSPDir string `yaml:"MSPDir"` MSPType string `yaml:"MSPType"` Policies map[string]*Policy `yaml:"Policies"` // Note: Viper deserialization does not seem to care for // embedding of types, so we use one organization struct // for both orderers and applications. AnchorPeers []*AnchorPeer `yaml:"AnchorPeers"` OrdererEndpoints []string `yaml:"OrdererEndpoints"` // AdminPrincipal is deprecated and may be removed in a future release // it was used for modifying the default policy generation, but policies // may now be specified explicitly so it is redundant and unnecessary AdminPrincipal string `yaml:"AdminPrincipal"` // SkipAsForeign indicates that this org definition is actually unknown to this // instance of the tool, so, parsing of this org's parameters should be ignored. SkipAsForeign bool }
Organization encodes the organization-level configuration needed in config transactions.
type Policy ¶
Policy encodes a channel config policy
type Profile ¶
type Profile struct { Consortium string `yaml:"Consortium"` Application *Application `yaml:"Application"` Orderer *Orderer `yaml:"Orderer"` Consortiums map[string]*Consortium `yaml:"Consortiums"` Capabilities map[string]bool `yaml:"Capabilities"` Policies map[string]*Policy `yaml:"Policies"` }
Profile encodes orderer/application configuration combinations for the configtxgen tool.
type Resources ¶
type Resources struct {
DefaultModPolicy string
}
Resources encodes the application-level resources configuration needed to seed the resource tree
type TopLevel ¶
type TopLevel struct { Profiles map[string]*Profile `yaml:"Profiles"` Organizations []*Organization `yaml:"Organizations"` Channel *Profile `yaml:"Channel"` Application *Application `yaml:"Application"` Orderer *Orderer `yaml:"Orderer"` Capabilities map[string]map[string]bool `yaml:"Capabilities"` Resources *Resources `yaml:"Resources"` }
TopLevel consists of the structs used by the configtxgen tool.
func LoadTopLevel ¶
LoadTopLevel simply loads the configtx.yaml file into the structs above and completes their initialization. Config paths may optionally be provided and will be used in place of the FABRIC_CFG_PATH env variable.
Note, for environment overrides to work properly within a profile, Load should be used instead.