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
}