Documentation ¶
Overview ¶
Package configuration holds configuration for all components in Insolar host binary It allows also helps to manage config resources using Holder
Usage:
package main import ( "github.com/insolar/insolar/configuration" "fmt" ) func main() { holder := configuration.NewHolder() fmt.Printf("Default configuration:\n %+v\n", holder.Configuration) holder.SaveAs("insolar.yml") }
Index ¶
- func ToString(in interface{}) string
- type APIRunner
- type Backoff
- type BuiltIn
- type Configuration
- type ConnectionType
- type Exporter
- type GoPlugin
- type Holder
- type HostNetwork
- type JaegerConfig
- type Ledger
- type Log
- type LogicRunner
- type Metrics
- type Pulsar
- type PulsarNodeAddress
- type PulseDistributor
- type PulseManager
- type RecentStorage
- type ServiceNetwork
- type Storage
- type Tracer
- type Transport
- type VersionManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type APIRunner ¶ added in v0.2.0
APIRunner holds configuration for api
func NewAPIRunner ¶ added in v0.2.0
func NewAPIRunner() APIRunner
NewAPIRunner creates new api config
type Backoff ¶ added in v0.7.5
type Backoff struct { Factor float64 // Jitter eases contention by randomizing backoff steps Jitter bool // Min and Max are the minimum and maximum values of the counter Min, Max time.Duration }
Backoff configures retry backoff algorithm
type Configuration ¶
type Configuration struct { Host HostNetwork Service ServiceNetwork Ledger Ledger Log Log Metrics Metrics LogicRunner LogicRunner APIRunner APIRunner Pulsar Pulsar VersionManager VersionManager KeysPath string CertificatePath string Tracer Tracer }
Configuration contains configuration params for all Insolar components
func NewConfiguration ¶
func NewConfiguration() Configuration
NewConfiguration creates new default configuration
type ConnectionType ¶ added in v0.3.0
type ConnectionType string
const (
TCP ConnectionType = "tcp"
)
func (ConnectionType) String ¶ added in v0.3.0
func (ct ConnectionType) String() string
type Exporter ¶ added in v0.7.5
type Exporter struct { // ExportLag is lag in second before we start to export pulse ExportLag uint32 }
Exporter holds configuration of Exporter
type GoPlugin ¶ added in v0.0.6
type GoPlugin struct { // RunnerListen - address Go plugins executor listens to RunnerListen string // RunnerProtocol - protocol (network) of above address, // e.g. "tcp", "unix"... see `net.Dial` RunnerProtocol string }
GoPlugin configuration
type Holder ¶
type Holder struct { Configuration Configuration // contains filtered or unexported fields }
Holder provides methods to manage configuration
func (*Holder) Init ¶ added in v0.3.0
Init init all configuration data from config file and environment.
Does not fail on not found config file if the 'required' flag set to false.
func (*Holder) LoadFromFile ¶
LoadFromFile method reads configuration from particular file path
func (*Holder) MustInit ¶ added in v0.3.0
MustInit wrapper around Init function which panics on error.
type HostNetwork ¶
type HostNetwork struct { Transport Transport IsRelay bool // set if node must be relay explicit InfinityBootstrap bool // set true for infinity tries to bootstrap MinTimeout int // bootstrap timeout min MaxTimeout int // bootstrap timeout max TimeoutMult int // bootstrap timout multiplier SignMessages bool // signing a messages if true HandshakeSessionTTL int32 // ms }
HostNetwork holds configuration for HostNetwork
func NewHostNetwork ¶
func NewHostNetwork() HostNetwork
NewHostNetwork creates new default HostNetwork configuration
type JaegerConfig ¶ added in v0.6.2
JaegerConfig holds Jaeger settings.
type Ledger ¶
type Ledger struct { // Storage defines storage configuration. Storage Storage // PulseManager holds configuration for PulseManager. PulseManager PulseManager // RecentStorage holds configuration for RecentStorage RecentStorage RecentStorage // LightChainLimit is maximum pulse difference (NOT number of pulses) // between current and the latest replicated on heavy. // // IMPORTANT: It should be the same on ALL nodes. LightChainLimit int // JetSizesHistoryDepth holds maximum number of drop sizes JetSizesHistoryDepth int // Exporter holds configuration of Exporter Exporter Exporter // PendingRequestsLimit holds a number of pending requests, what can be stored in the system // before they are declined PendingRequestsLimit int }
Ledger holds configuration for ledger.
type LogicRunner ¶
type LogicRunner struct { // RPCListen - address logic runner binds RPC API to RPCListen string // RPCProtoco - protocol (network) of above address, // e.g. "tcp", "unix"... see `net.Dial` RPCProtocol string // BuiltIn - configuration of builtin executor BuiltIn *BuiltIn // GoPlugin - configuration of executor based on Go plugins GoPlugin *GoPlugin }
LogicRunner configuration
func NewLogicRunner ¶
func NewLogicRunner() LogicRunner
NewLogicRunner - returns default config of the logic runner
type Metrics ¶ added in v0.2.0
type Metrics struct { ListenAddress string Namespace string ZpagesEnabled bool // ReportingPeriod defines exporter reporting period // if zero, exporter uses default value (1s) ReportingPeriod time.Duration }
Metrics holds configuration for metrics publishing.
func NewMetrics ¶ added in v0.2.0
func NewMetrics() Metrics
NewMetrics creates new default configuration for metrics publishing.
type Pulsar ¶ added in v0.0.6
type Pulsar struct { ConnectionType ConnectionType MainListenerAddress string Storage Storage PulseTime int32 // ms ReceivingSignTimeout int32 // ms ReceivingNumberTimeout int32 // ms ReceivingVectorTimeout int32 // ms ReceivingSignsForChosenTimeout int32 // ms Neighbours []PulsarNodeAddress NumberDelta uint32 DistributionTransport Transport PulseDistributor PulseDistributor }
Pulsar holds configuration for pulsar node.
type PulsarNodeAddress ¶ added in v0.3.0
type PulsarNodeAddress struct { Address string ConnectionType ConnectionType PublicKey string }
type PulseDistributor ¶ added in v0.7.5
type PulseManager ¶ added in v0.6.3
type PulseManager struct { // HeavySyncEnabled enables replication to heavy (could be disabled for testing purposes) HeavySyncEnabled bool // HeavySyncMessageLimit soft limit of single message for replication to heavy. HeavySyncMessageLimit int // Backoff configures retry backoff algorithm for Heavy Sync HeavyBackoff Backoff // SplitThreshold is a drop size threshold in bytes to perform split. SplitThreshold uint64 }
PulseManager holds configuration for PulseManager.
type RecentStorage ¶ added in v0.7.5
type RecentStorage struct { // Default TTL is a value of default ttl for redirects DefaultTTL int }
RecentStorage holds configuration for RecentStorage
type ServiceNetwork ¶
type ServiceNetwork struct {
Skip int // magic number that indicates what delta after last ignored pulse we should wait
}
ServiceNetwork is configuration for ServiceNetwork.
func NewServiceNetwork ¶
func NewServiceNetwork() ServiceNetwork
NewServiceNetwork creates a new ServiceNetwork configuration.
type Storage ¶ added in v0.2.0
type Storage struct { // DataDirectory is a directory where database's files live. DataDirectory string // TxRetriesOnConflict defines how many retries on transaction conflicts // storage update methods should do. TxRetriesOnConflict int }
Storage configures Ledger's storage.
type Tracer ¶ added in v0.6.2
type Tracer struct { Jaeger JaegerConfig // TODO: add SamplingRules configuration SamplingRules struct{} }
Tracer configures tracer.
type Transport ¶
type Transport struct { // protocol type Protocol string // Address to listen Address string // if true transport will use network traversal technique(like STUN) to get PublicAddress BehindNAT bool // if not empty - this should be public address of instance (to connect from the "other" side to) // conflicts in BehindNAT FixedPublicAddress string }
Transport holds transport protocol configuration for HostNetwork
type VersionManager ¶ added in v0.6.3
type VersionManager struct {
MinAlowedVersion string
}
VersionManager holds configuration for VersionManager publishing.
func NewVersionManager ¶ added in v0.6.3
func NewVersionManager() VersionManager
NewVersionManager creates new default configuration for VersionManager publishing.