localconfig

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const Prefix = "ORDERER"

Prefix for environment variables.

Variables

View Source
var Defaults = TopLevel{
	General: General{
		ListenAddress:   "127.0.0.1",
		ListenPort:      7050,
		BootstrapMethod: "file",
		BootstrapFile:   "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),
		},
		MaxRecvMsgSize: comm.DefaultMaxRecvMsgSize,
		MaxSendMsgSize: comm.DefaultMaxSendMsgSize,
	},
	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",
	},
	ChannelParticipation: ChannelParticipation{
		Enabled:       false,
		RemoveStorage: false,
	},
}

Defaults carries the default orderer configuration values.

Functions

func Flatten

func Flatten(i interface{}) []string

Flatten performs a depth-first serialization of a struct to a slice of strings. Each string will be formatted at 'path.to.leaf = value'.

Types

type Authentication

type Authentication struct {
	TimeWindow         time.Duration
	NoExpirationChecks bool
}

Authentication contains configuration parameters related to authenticating client messages.

type ChannelParticipation

type ChannelParticipation struct {
	Enabled       bool
	RemoveStorage bool // Whether to permanently remove storage on channel removal.
}

ChannelParticipation provides the channel participation API configuration for the orderer. Channel participation uses the same ListenAddress and TLS settings of the Operations service.

type Cluster

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
}

type Consumer

type Consumer struct {
	RetryBackoff time.Duration
}

Consumer contains configuration for the consumer's retries when failing to read from a Kafa partition.

type Debug

type Debug struct {
	BroadcastTraceDir string
	DeliverTraceDir   string
}

Debug contains configuration for the orderer's debug parameters.

type FileLedger

type FileLedger struct {
	Location string
	Prefix   string
}

FileLedger contains configuration for the file-based ledger.

type General

type General struct {
	ListenAddress     string
	ListenPort        uint16
	TLS               TLS
	Cluster           Cluster
	Keepalive         Keepalive
	ConnectionTimeout time.Duration
	GenesisMethod     string // For compatibility only, will be replaced by BootstrapMethod
	GenesisFile       string // For compatibility only, will be replaced by BootstrapFile
	BootstrapMethod   string
	BootstrapFile     string
	Profile           Profile
	LocalMSPDir       string
	LocalMSPID        string
	BCCSP             *bccsp.FactoryOpts
	Authentication    Authentication
	MaxRecvMsgSize    int32
	MaxSendMsgSize    int32
}

General contains config which should be common among all orderer types.

type Kafka

type Kafka struct {
	Retry     Retry
	Verbose   bool
	Version   sarama.KafkaVersion // TODO Move this to global config
	TLS       TLS
	SASLPlain SASLPlain
	Topic     Topic
}

Kafka contains configuration for the Kafka-based orderer.

type Keepalive

type Keepalive struct {
	ServerMinInterval time.Duration
	ServerInterval    time.Duration
	ServerTimeout     time.Duration
}

Keepalive contains configuration for gRPC servers.

type Metadata

type Metadata struct {
	RetryMax     int
	RetryBackoff time.Duration
}

Metadata contains configuration for the metadata requests to the Kafka cluster.

type Metrics

type Metrics struct {
	Provider string
	Statsd   Statsd
}

Metrics configures the metrics provider for the orderer.

type NetworkTimeouts

type NetworkTimeouts struct {
	DialTimeout  time.Duration
	ReadTimeout  time.Duration
	WriteTimeout time.Duration
}

NetworkTimeouts contains the socket timeouts for network requests to the Kafka cluster.

type Operations

type Operations struct {
	ListenAddress string
	TLS           TLS
}

Operations configures the operations endpoint for the orderer.

type Producer

type Producer struct {
	RetryMax     int
	RetryBackoff time.Duration
}

Producer contains configuration for the producer's retries when failing to post a message to a Kafka partition.

type Profile

type Profile struct {
	Enabled bool
	Address string
}

Profile contains configuration for Go pprof profiling.

type Retry

type Retry struct {
	ShortInterval   time.Duration
	ShortTotal      time.Duration
	LongInterval    time.Duration
	LongTotal       time.Duration
	NetworkTimeouts NetworkTimeouts
	Metadata        Metadata
	Producer        Producer
	Consumer        Consumer
}

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 SASLPlain

type SASLPlain struct {
	Enabled  bool
	User     string
	Password string
}

SASLPlain contains configuration for SASL/PLAIN authentication

type Statsd

type Statsd struct {
	Network       string
	Address       string
	WriteInterval time.Duration
	Prefix        string
}

Statsd provides the configuration required to emit statsd metrics from the orderer.

type TLS

type TLS struct {
	Enabled               bool
	PrivateKey            string
	Certificate           string
	RootCAs               []string
	ClientAuthRequired    bool
	ClientRootCAs         []string
	TLSHandshakeTimeShift time.Duration
}

TLS contains configuration for TLS connections.

type TopLevel

type TopLevel struct {
	General              General
	FileLedger           FileLedger
	Kafka                Kafka
	Debug                Debug
	Consensus            interface{}
	Operations           Operations
	Metrics              Metrics
	ChannelParticipation ChannelParticipation
}

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.

func Load

func Load() (*TopLevel, error)

Load parses the orderer YAML file and environment, producing a struct suitable for config use, returning error on failure.

type Topic

type Topic struct {
	ReplicationFactor int16
}

Topic contains the settings to use when creating Kafka topics

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL