config

package
v1.11.14 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2025 License: BSD-3-Clause Imports: 50 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"
	LPSupportKey                     = "lp-support"
	LPObjectKey                      = "lp-object"
	TxFeeKey                         = "tx-fee"
	CreateAssetTxFeeKey              = "create-asset-tx-fee"
	CreateSubnetTxFeeKey             = "create-subnet-tx-fee"
	TransformSubnetTxFeeKey          = "transform-subnet-tx-fee"
	CreateBlockchainTxFeeKey         = "create-blockchain-tx-fee"
	AddPrimaryNetworkValidatorFeeKey = "add-primary-network-validator-fee"
	AddPrimaryNetworkDelegatorFeeKey = "add-primary-network-delegator-fee"
	AddSubnetValidatorFeeKey         = "add-subnet-validator-fee"
	AddSubnetDelegatorFeeKey         = "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("-", "_")

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 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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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