config

package
v1.18.11 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2025 License: BSD-3-Clause Imports: 47 Imported by: 6

Documentation

Index

Constants

View Source
const (
	DefaultHTTPPort    = 9630
	DefaultStakingPort = 9631

	LuxNodeDataDirVar = "LUXD_DATA_DIR"

	DefaultProcessContextFilename = "process.json"
)
View Source
const (
	DevModeKey                       = "dev"
	DataDirKey                       = "data-dir"
	ConfigFileKey                    = "config-file"
	ConfigContentKey                 = "config-file-content"
	ConfigContentTypeKey             = "config-file-content-type"
	VersionKey                       = "version"
	VersionJSONKey                   = "version-json"
	GenesisFileKey                   = "genesis-file"
	GenesisFileContentKey            = "genesis-file-content"
	UpgradeFileContentKey            = "upgrade-file-content"
	GenesisDBKey                     = "genesis-db"
	GenesisDBTypeKey                 = "genesis-db-type"
	GenesisBlockLimitKey             = "genesis-block-limit"
	NetworkNameKey                   = "network-id"
	MainnetKey                       = "mainnet"
	TestnetKey                       = "testnet"
	LocalnetKey                      = "localnet"
	LPSupportKey                     = "lp-support"
	LPObjectKey                      = "lp-object"
	TxFeeKey                         = "tx-fee"
	CreateAssetTxFeeKey              = "create-asset-tx-fee"
	CreateNetTxFeeKey                = "create-subnet-tx-fee"
	TransformNetTxFeeKey             = "transform-subnet-tx-fee"
	CreateBlockchainTxFeeKey         = "create-blockchain-tx-fee"
	AddPrimaryNetworkValidatorFeeKey = "add-primary-network-validator-fee"
	AddPrimaryNetworkDelegatorFeeKey = "add-primary-network-delegator-fee"
	AddNetValidatorFeeKey            = "add-subnet-validator-fee"
	AddNetDelegatorFeeKey            = "add-subnet-delegator-fee"
	UptimeRequirementKey             = "uptime-requirement"
	MinValidatorStakeKey             = "min-validator-stake"
	MaxValidatorStakeKey             = "max-validator-stake"
	MinDelegatorStakeKey             = "min-delegator-stake"
	MinDelegatorFeeKey               = "min-delegation-fee"
	MinStakeDurationKey              = "min-stake-duration"
	MaxStakeDurationKey              = "max-stake-duration"
	StakeMaxConsumptionRateKey       = "stake-max-consumption-rate"
	StakeMinConsumptionRateKey       = "stake-min-consumption-rate"
	StakeMintingPeriodKey            = "stake-minting-period"
	StakeSupplyCapKey                = "stake-supply-cap"
	DBTypeKey                        = "db-type"
	DBReadOnlyKey                    = "db-read-only"
	DBPathKey                        = "db-dir"
	DBConfigFileKey                  = "db-config-file"
	DBConfigContentKey               = "db-config-file-content"
	// Per-chain database configuration
	PChainDBTypeKey              = "p-chain-db-type"
	XChainDBTypeKey              = "x-chain-db-type"
	CChainDBTypeKey              = "c-chain-db-type"
	PublicIPKey                  = "public-ip"
	PublicIPResolutionFreqKey    = "public-ip-resolution-frequency"
	PublicIPResolutionServiceKey = "public-ip-resolution-service"
	HTTPHostKey                  = "http-host"
	HTTPPortKey                  = "http-port"
	HTTPSEnabledKey              = "http-tls-enabled"
	HTTPSKeyFileKey              = "http-tls-key-file"
	HTTPSKeyContentKey           = "http-tls-key-file-content"
	HTTPSCertFileKey             = "http-tls-cert-file"
	HTTPSCertContentKey          = "http-tls-cert-file-content"

	HTTPAllowedOrigins       = "http-allowed-origins"
	HTTPAllowedHostsKey      = "http-allowed-hosts"
	HTTPShutdownTimeoutKey   = "http-shutdown-timeout"
	HTTPShutdownWaitKey      = "http-shutdown-wait"
	HTTPReadTimeoutKey       = "http-read-timeout"
	HTTPReadHeaderTimeoutKey = "http-read-header-timeout"

	HTTPIdleTimeoutKey                                 = "http-idle-timeout"
	StateSyncIPsKey                                    = "state-sync-ips"
	StateSyncIDsKey                                    = "state-sync-ids"
	BootstrapIPsKey                                    = "bootstrap-ips"
	BootstrapIDsKey                                    = "bootstrap-ids"
	SkipBootstrapKey                                   = "skip-bootstrap"
	EnableAutominingKey                                = "enable-automining"
	StakingHostKey                                     = "staking-host"
	StakingPortKey                                     = "staking-port"
	StakingEphemeralCertEnabledKey                     = "staking-ephemeral-cert-enabled"
	StakingTLSKeyPathKey                               = "staking-tls-key-file"
	StakingTLSKeyContentKey                            = "staking-tls-key-file-content"
	StakingCertPathKey                                 = "staking-tls-cert-file"
	StakingCertContentKey                              = "staking-tls-cert-file-content"
	StakingEphemeralSignerEnabledKey                   = "staking-ephemeral-signer-enabled"
	StakingSignerKeyPathKey                            = "staking-signer-key-file"
	StakingSignerKeyContentKey                         = "staking-signer-key-file-content"
	SybilProtectionEnabledKey                          = "sybil-protection-enabled"
	SybilProtectionDisabledWeightKey                   = "sybil-protection-disabled-weight"
	NetworkInitialTimeoutKey                           = "network-initial-timeout"
	NetworkMinimumTimeoutKey                           = "network-minimum-timeout"
	NetworkMaximumTimeoutKey                           = "network-maximum-timeout"
	NetworkMaximumInboundTimeoutKey                    = "network-maximum-inbound-timeout"
	NetworkTimeoutHalflifeKey                          = "network-timeout-halflife"
	NetworkTimeoutCoefficientKey                       = "network-timeout-coefficient"
	NetworkHealthMinPeersKey                           = "network-health-min-conn-peers"
	NetworkHealthMaxTimeSinceMsgReceivedKey            = "network-health-max-time-since-msg-received"
	NetworkHealthMaxTimeSinceMsgSentKey                = "network-health-max-time-since-msg-sent"
	NetworkHealthMaxPortionSendQueueFillKey            = "network-health-max-portion-send-queue-full"
	NetworkHealthMaxSendFailRateKey                    = "network-health-max-send-fail-rate"
	NetworkHealthMaxOutstandingDurationKey             = "network-health-max-outstanding-request-duration"
	NetworkPeerListNumValidatorIPsKey                  = "network-peer-list-num-validator-ips"
	NetworkPeerListPullGossipFreqKey                   = "network-peer-list-pull-gossip-frequency"
	NetworkPeerListBloomResetFreqKey                   = "network-peer-list-bloom-reset-frequency"
	NetworkInitialReconnectDelayKey                    = "network-initial-reconnect-delay"
	NetworkReadHandshakeTimeoutKey                     = "network-read-handshake-timeout"
	NetworkPingTimeoutKey                              = "network-ping-timeout"
	NetworkPingFrequencyKey                            = "network-ping-frequency"
	NetworkMaxReconnectDelayKey                        = "network-max-reconnect-delay"
	NetworkCompressionTypeKey                          = "network-compression-type"
	NetworkMaxClockDifferenceKey                       = "network-max-clock-difference"
	NetworkAllowPrivateIPsKey                          = "network-allow-private-ips"
	NetworkRequireValidatorToConnectKey                = "network-require-validator-to-connect"
	NetworkPeerReadBufferSizeKey                       = "network-peer-read-buffer-size"
	NetworkPeerWriteBufferSizeKey                      = "network-peer-write-buffer-size"
	NetworkTCPProxyEnabledKey                          = "network-tcp-proxy-enabled"
	NetworkTCPProxyReadTimeoutKey                      = "network-tcp-proxy-read-timeout"
	NetworkTLSKeyLogFileKey                            = "network-tls-key-log-file-unsafe"
	NetworkInboundConnUpgradeThrottlerCooldownKey      = "network-inbound-connection-throttling-cooldown"
	NetworkInboundThrottlerMaxConnsPerSecKey           = "network-inbound-connection-throttling-max-conns-per-sec"
	NetworkOutboundConnectionThrottlingRpsKey          = "network-outbound-connection-throttling-rps"
	NetworkOutboundConnectionTimeoutKey                = "network-outbound-connection-timeout"
	BenchlistFailThresholdKey                          = "benchlist-fail-threshold"
	BenchlistDurationKey                               = "benchlist-duration"
	BenchlistMinFailingDurationKey                     = "benchlist-min-failing-duration"
	LogsDirKey                                         = "log-dir"
	LogLevelKey                                        = "log-level"
	LogDisplayLevelKey                                 = "log-display-level"
	LogFormatKey                                       = "log-format"
	LogRotaterMaxSizeKey                               = "log-rotater-max-size"
	LogRotaterMaxFilesKey                              = "log-rotater-max-files"
	LogRotaterMaxAgeKey                                = "log-rotater-max-age"
	LogRotaterCompressEnabledKey                       = "log-rotater-compress-enabled"
	LogDisableDisplayPluginLogsKey                     = "log-disable-display-plugin-logs"
	ConsensusSampleSizeKey                             = "consensus-sample-size"
	ConsensusQuorumSizeKey                             = "consensus-quorum-size"
	ConsensusVirtuousCommitThresholdKey                = "consensus-virtuous-commit-threshold"
	ConsensusRogueCommitThresholdKey                   = "consensus-rogue-commit-threshold"
	ConsensusPreferenceQuorumSizeKey                   = "consensus-preference-quorum-size"
	ConsensusConfidenceQuorumSizeKey                   = "consensus-confidence-quorum-size"
	ConsensusCommitThresholdKey                        = "consensus-commit-threshold"
	ConsensusConcurrentRepollsKey                      = "consensus-concurrent-repolls"
	ConsensusOptimalProcessingKey                      = "consensus-optimal-processing"
	ConsensusMaxProcessingKey                          = "consensus-max-processing"
	ConsensusMaxTimeProcessingKey                      = "consensus-max-time-processing"
	PartialSyncPrimaryNetworkKey                       = "partial-sync-primary-network"
	TrackSubnetsKey                                    = "track-subnets"
	AdminAPIEnabledKey                                 = "api-admin-enabled"
	InfoAPIEnabledKey                                  = "api-info-enabled"
	KeystoreAPIEnabledKey                              = "api-keystore-enabled"
	MetricsAPIEnabledKey                               = "api-metrics-enabled"
	HealthAPIEnabledKey                                = "api-health-enabled"
	MeterVMsEnabledKey                                 = "meter-vms-enabled"
	ConsensusAppConcurrencyKey                         = "consensus-app-concurrency"
	ConsensusShutdownTimeoutKey                        = "consensus-shutdown-timeout"
	ConsensusFrontierPollFrequencyKey                  = "consensus-frontier-poll-frequency"
	ProposerVMUseCurrentHeightKey                      = "proposervm-use-current-height"
	FdLimitKey                                         = "fd-limit"
	IndexEnabledKey                                    = "index-enabled"
	IndexAllowIncompleteKey                            = "index-allow-incomplete"
	RouterHealthMaxDropRateKey                         = "router-health-max-drop-rate"
	RouterHealthMaxOutstandingRequestsKey              = "router-health-max-outstanding-requests"
	HealthCheckFreqKey                                 = "health-check-frequency"
	HealthCheckAveragerHalflifeKey                     = "health-check-averager-halflife"
	PluginDirKey                                       = "plugin-dir"
	BootstrapBeaconConnectionTimeoutKey                = "bootstrap-beacon-connection-timeout"
	BootstrapMaxTimeGetAncestorsKey                    = "bootstrap-max-time-get-ancestors"
	BootstrapAncestorsMaxContainersSentKey             = "bootstrap-ancestors-max-containers-sent"
	BootstrapAncestorsMaxContainersReceivedKey         = "bootstrap-ancestors-max-containers-received"
	ChainDataDirKey                                    = "chain-data-dir"
	ChainConfigDirKey                                  = "chain-config-dir"
	ChainConfigContentKey                              = "chain-config-content"
	ImportChainDataKey                                 = "import-chain-data"
	SubnetConfigDirKey                                 = "subnet-config-dir"
	SubnetConfigContentKey                             = "subnet-config-content"
	ProfileDirKey                                      = "profile-dir"
	ProfileContinuousEnabledKey                        = "profile-continuous-enabled"
	ProfileContinuousFreqKey                           = "profile-continuous-freq"
	ProfileContinuousMaxFilesKey                       = "profile-continuous-max-files"
	InboundThrottlerAtLargeAllocSizeKey                = "throttler-inbound-at-large-alloc-size"
	InboundThrottlerVdrAllocSizeKey                    = "throttler-inbound-validator-alloc-size"
	InboundThrottlerNodeMaxAtLargeBytesKey             = "throttler-inbound-node-max-at-large-bytes"
	InboundThrottlerMaxProcessingMsgsPerNodeKey        = "throttler-inbound-node-max-processing-msgs"
	InboundThrottlerBandwidthRefillRateKey             = "throttler-inbound-bandwidth-refill-rate"
	InboundThrottlerBandwidthMaxBurstSizeKey           = "throttler-inbound-bandwidth-max-burst-size"
	InboundThrottlerCPUMaxRecheckDelayKey              = "throttler-inbound-cpu-max-recheck-delay"
	InboundThrottlerDiskMaxRecheckDelayKey             = "throttler-inbound-disk-max-recheck-delay"
	CPUVdrAllocKey                                     = "throttler-inbound-cpu-validator-alloc"
	CPUMaxNonVdrUsageKey                               = "throttler-inbound-cpu-max-non-validator-usage"
	CPUMaxNonVdrNodeUsageKey                           = "throttler-inbound-cpu-max-non-validator-node-usage"
	SystemTrackerFrequencyKey                          = "system-tracker-frequency"
	SystemTrackerProcessingHalflifeKey                 = "system-tracker-processing-halflife"
	SystemTrackerCPUHalflifeKey                        = "system-tracker-cpu-halflife"
	SystemTrackerDiskHalflifeKey                       = "system-tracker-disk-halflife"
	SystemTrackerRequiredAvailableDiskSpaceKey         = "system-tracker-disk-required-available-space"
	SystemTrackerWarningThresholdAvailableDiskSpaceKey = "system-tracker-disk-warning-threshold-available-space"
	DiskVdrAllocKey                                    = "throttler-inbound-disk-validator-alloc"
	DiskMaxNonVdrUsageKey                              = "throttler-inbound-disk-max-non-validator-usage"
	DiskMaxNonVdrNodeUsageKey                          = "throttler-inbound-disk-max-non-validator-node-usage"
	OutboundThrottlerAtLargeAllocSizeKey               = "throttler-outbound-at-large-alloc-size"
	OutboundThrottlerVdrAllocSizeKey                   = "throttler-outbound-validator-alloc-size"
	OutboundThrottlerNodeMaxAtLargeBytesKey            = "throttler-outbound-node-max-at-large-bytes"
	UptimeMetricFreqKey                                = "uptime-metric-freq"
	VMAliasesFileKey                                   = "vm-aliases-file"
	VMAliasesContentKey                                = "vm-aliases-file-content"
	ChainAliasesFileKey                                = "chain-aliases-file"
	ChainAliasesContentKey                             = "chain-aliases-file-content"
	TracingEnabledKey                                  = "tracing-enabled"
	TracingEndpointKey                                 = "tracing-endpoint"
	TracingInsecureKey                                 = "tracing-insecure"
	TracingSampleRateKey                               = "tracing-sample-rate"
	TracingExporterTypeKey                             = "tracing-exporter-type"
	TracingHeadersKey                                  = "tracing-headers"
	ProcessContextFileKey                              = "process-context-file"

	// POA Mode Keys
	POAModeEnabledKey     = "poa-mode-enabled"
	POASingleNodeModeKey  = "poa-single-node-mode"
	POAMinBlockTimeKey    = "poa-min-block-time"
	POAAuthorizedNodesKey = "poa-authorized-nodes"

	// Force flags
	ForceIgnoreChecksumKey = "force-ignore-checksum"
)
View Source
const EnvPrefix = "luxd"
View Source
const HTTPWriteTimeoutKey = "http-write-timeout" // #nosec G101

the HTTPWriteTimeoutKey was moved here so that it would not generate the false-positive linter error "G101: Potential hardcoded credentials" when running golangci-lint.

Variables

View Source
var DashesToUnderscores = strings.NewReplacer("-", "_")
View Source
var MainnetParameters = struct {
	K                     int
	AlphaPreference       int
	AlphaConfidence       int
	Beta                  int
	ConcurrentPolls       int
	OptimalProcessing     int
	MaxOutstandingItems   int
	MaxItemProcessingTime time.Duration
}{
	K:                     20,
	AlphaPreference:       15,
	AlphaConfidence:       15,
	Beta:                  20,
	ConcurrentPolls:       4,
	OptimalProcessing:     10,
	MaxOutstandingItems:   1024,
	MaxItemProcessingTime: 2 * time.Minute,
}

MainnetParameters contains mainnet consensus parameters

Functions

func BuildFlagSet

func BuildFlagSet() *pflag.FlagSet

BuildFlagSet returns a complete set of flags for node

func BuildViper

func BuildViper(fs *pflag.FlagSet, args []string) (*viper.Viper, error)

BuildViper returns the viper environment from parsing config file from default search paths and any parsed command line flags

func GetExpandedArg added in v1.1.11

func GetExpandedArg(v *viper.Viper, key string) string

GetExpandedArg gets the string in viper corresponding to [key] and expands any variables using the OS env. If the [Lux NodeDataDirVar] var is used, we expand the value of the variable with the string in viper corresponding to DataDirKey.

func GetExpandedString added in v1.1.11

func GetExpandedString(v *viper.Viper, s string) string

GetExpandedString expands [s] with any variables using the OS env. If the LuxNodeDataDirVar var is used, we expand the value of the variable with the string in viper corresponding to DataDirKey.

func GetNodeConfig

func GetNodeConfig(v *viper.Viper) (node.Config, error)

Types

type BadgerDBConfig added in v1.1.11

type BadgerDBConfig struct {
	Enable          bool
	DataDir         string
	EnableAncient   bool
	AncientDir      string
	ReadOnly        bool
	SharedAncient   bool
	FreezeThreshold uint64
}

BadgerDB flags for C-Chain

func AddBadgerDBFlags added in v1.1.11

func AddBadgerDBFlags(fs *flag.FlagSet) *BadgerDBConfig

AddBadgerDBFlags adds BadgerDB-related flags to the flag set

func (*BadgerDBConfig) Validate added in v1.1.11

func (c *BadgerDBConfig) Validate(dataDir string) error

Validate validates the BadgerDB configuration

type BenchlistConfig added in v1.16.56

type BenchlistConfig struct {
	Deprecated         bool
	Duration           time.Duration
	MinFailingDuration time.Duration
	Threshold          int
	MaxPortion         float64
	FailThreshold      int
}

BenchlistConfig contains configuration for benchlisting

type ChainDatabaseConfig added in v1.1.11

type ChainDatabaseConfig struct {
	// Default database type for all chains
	DefaultType string

	// Per-chain overrides
	PChainDBType string
	XChainDBType string
	CChainDBType string
}

ChainDatabaseConfig holds per-chain database configuration

func (*ChainDatabaseConfig) GetDatabaseType added in v1.1.11

func (c *ChainDatabaseConfig) GetDatabaseType(chainAlias string) string

GetDatabaseType returns the database type for a specific chain

func (*ChainDatabaseConfig) Validate added in v1.1.11

func (c *ChainDatabaseConfig) Validate() error

Validate ensures all database types are valid

type PrismParameters added in v1.16.56

type PrismParameters struct {
	NumParents          int
	NumNodes            int
	AlphaPreference     int
	AlphaConfidence     int
	K                   int
	MaxOutstandingItems int
}

PrismParameters contains prism protocol parameters

type RouterHealthConfig added in v1.16.56

type RouterHealthConfig struct {
	MaxTimeSinceMsgReceived time.Duration
	MaxTimeSinceMsgSent     time.Duration
	MaxPortionSendQueueFull float64
	MinConnectedPeers       uint
	ReadTimeout             time.Duration
	WriteTimeout            time.Duration
	MaxSendFailRate         float64
	MaxDropRate             float64
	MaxOutstandingRequests  int
	MaxOutstandingDuration  time.Duration
	MaxRunTimeRequests      time.Duration
	MaxDropRateHalflife     time.Duration
}

RouterHealthConfig contains configuration for router health checks

type TrackerTargeterConfig added in v1.16.56

type TrackerTargeterConfig struct {
	VdrAlloc           float64 `json:"vdrAlloc"`
	MaxNonVdrUsage     float64 `json:"maxNonVdrUsage"`
	MaxNonVdrNodeUsage float64 `json:"maxNonVdrNodeUsage"`
}

TrackerTargeterConfig contains resource allocation configurations

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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