Prefix for environment variables.
const Prefix = "ORDERER"
Defaults carries the default orderer configuration values.
var Defaults = TopLevel{ General: General{ LedgerType: "file", ListenAddress: "127.0.0.1", ListenPort: 7050, GenesisMethod: "provisional", GenesisProfile: "SampleSingleMSPSolo", SystemChannel: "test-system-channel-name", GenesisFile: "genesisblock", Profile: Profile{ Enabled: false, Address: "0.0.0.0:6060", }, Cluster: Cluster{ ReplicationMaxRetries: 12, RPCTimeout: time.Second * 7, DialTimeout: time.Second * 5, ReplicationBufferSize: 20971520, SendBufferSize: 10, ReplicationBackgroundRefreshInterval: time.Minute * 5, ReplicationRetryTimeout: time.Second * 5, ReplicationPullTimeout: time.Second * 5, CertExpirationWarningThreshold: time.Hour * 24 * 7, }, LocalMSPDir: "msp", LocalMSPID: "SampleOrg", BCCSP: bccsp.GetDefaultOpts(), Authentication: Authentication{ TimeWindow: time.Duration(15 * time.Minute), }, }, RAMLedger: RAMLedger{ HistorySize: 10000, }, FileLedger: FileLedger{ Location: "/var/hyperledger/production/orderer", Prefix: "hyperledger-fabric-ordererledger", }, Kafka: Kafka{ Retry: Retry{ ShortInterval: 1 * time.Minute, ShortTotal: 10 * time.Minute, LongInterval: 10 * time.Minute, LongTotal: 12 * time.Hour, NetworkTimeouts: NetworkTimeouts{ DialTimeout: 30 * time.Second, ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, }, Metadata: Metadata{ RetryBackoff: 250 * time.Millisecond, RetryMax: 3, }, Producer: Producer{ RetryBackoff: 100 * time.Millisecond, RetryMax: 3, }, Consumer: Consumer{ RetryBackoff: 2 * time.Second, }, }, Verbose: false, Version: sarama.V0_10_2_0, TLS: TLS{ Enabled: false, }, Topic: Topic{ ReplicationFactor: 3, }, }, Debug: Debug{ BroadcastTraceDir: "", DeliverTraceDir: "", }, Operations: Operations{ ListenAddress: "127.0.0.1:0", }, Metrics: Metrics{ Provider: "disabled", }, }
Authentication contains configuration parameters related to authenticating client messages.
type Authentication struct { TimeWindow time.Duration NoExpirationChecks bool }
type Cluster struct { ListenAddress string ListenPort uint16 ServerCertificate string ServerPrivateKey string ClientCertificate string ClientPrivateKey string RootCAs []string DialTimeout time.Duration RPCTimeout time.Duration ReplicationBufferSize int ReplicationPullTimeout time.Duration ReplicationRetryTimeout time.Duration ReplicationBackgroundRefreshInterval time.Duration ReplicationMaxRetries int SendBufferSize int CertExpirationWarningThreshold time.Duration TLSHandshakeTimeShift time.Duration }
Consumer contains configuration for the consumer's retries when failing to read from a Kafa partition.
type Consumer struct { RetryBackoff time.Duration }
Debug contains configuration for the orderer's debug parameters.
type Debug struct { BroadcastTraceDir string DeliverTraceDir string }
FileLedger contains configuration for the file-based ledger.
type FileLedger struct { Location string Prefix string }
General contains config which should be common among all orderer types.
type General struct { LedgerType string ListenAddress string ListenPort uint16 TLS TLS Cluster Cluster Keepalive Keepalive ConnectionTimeout time.Duration GenesisMethod string GenesisProfile string SystemChannel string GenesisFile string Profile Profile LocalMSPDir string LocalMSPID string BCCSP *bccsp.FactoryOpts Authentication Authentication }
Kafka contains configuration for the Kafka-based orderer.
type Kafka struct { Retry Retry Verbose bool Version sarama.KafkaVersion // TODO Move this to global config TLS TLS SASLPlain SASLPlain Topic Topic }
Keepalive contains configuration for gRPC servers.
type Keepalive struct { ServerMinInterval time.Duration ServerInterval time.Duration ServerTimeout time.Duration }
Metadata contains configuration for the metadata requests to the Kafka cluster.
type Metadata struct { RetryMax int RetryBackoff time.Duration }
Operations confiures the metrics provider for the orderer.
type Metrics struct { Provider string Statsd Statsd }
NetworkTimeouts contains the socket timeouts for network requests to the Kafka cluster.
type NetworkTimeouts struct { DialTimeout time.Duration ReadTimeout time.Duration WriteTimeout time.Duration }
Operations configures the operations endpont for the orderer.
type Operations struct { ListenAddress string TLS TLS }
Producer contains configuration for the producer's retries when failing to post a message to a Kafka partition.
type Producer struct { RetryMax int RetryBackoff time.Duration }
Profile contains configuration for Go pprof profiling.
type Profile struct { Enabled bool Address string }
RAMLedger contains configuration for the RAM ledger.
type RAMLedger struct { HistorySize uint }
Retry contains configuration related to retries and timeouts when the connection to the Kafka cluster cannot be established, or when Metadata requests needs to be repeated (because the cluster is in the middle of a leader election).
type Retry struct { ShortInterval time.Duration ShortTotal time.Duration LongInterval time.Duration LongTotal time.Duration NetworkTimeouts NetworkTimeouts Metadata Metadata Producer Producer Consumer Consumer }
SASLPlain contains configuration for SASL/PLAIN authentication
type SASLPlain struct { Enabled bool User string Password string }
Statsd provides the configuration required to emit statsd metrics from the orderer.
type Statsd struct { Network string Address string WriteInterval time.Duration Prefix string }
TLS contains configuration for TLS connections.
type TLS struct { Enabled bool PrivateKey string Certificate string RootCAs []string ClientAuthRequired bool ClientRootCAs []string }
TopLevel directly corresponds to the orderer config YAML. Note, for non 1-1 mappings, you may append something like `mapstructure:"weirdFoRMat"` to modify the default mapping, see the "Unmarshal" section of https://github.com/spf13/viper for more info.
type TopLevel struct { General General FileLedger FileLedger RAMLedger RAMLedger Kafka Kafka Debug Debug Consensus interface{} Operations Operations Metrics Metrics }
func Load() (*TopLevel, error)
Load parses the orderer YAML file and environment, producing a struct suitable for config use, returning error on failure.
Topic contains the settings to use when creating Kafka topics
type Topic struct { ReplicationFactor int16 }