node

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Nov 23, 2021 License: BSD-3-Clause Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Flags

type Flags struct {
	// Avash metadata
	ClientLocation string
	Meta           string
	DataDir        string

	// Assertions
	AssertionsEnabled bool

	// Version
	Version bool

	// TX fees
	TxFee uint

	// IP
	PublicIP              string
	DynamicUpdateDuration string
	DynamicPublicIP       string

	// Network ID
	NetworkID string

	// Crypto
	SignatureVerificationEnabled bool

	// APIs
	APIAdminEnabled    bool
	APIIPCsEnabled     bool
	APIKeystoreEnabled bool
	APIMetricsEnabled  bool
	APIHealthEnabled   bool
	APIInfoEnabled     bool

	// HTTP
	HTTPHost        string
	HTTPPort        uint
	HTTPTLSEnabled  bool
	HTTPTLSCertFile string
	HTTPTLSKeyFile  string

	// Bootstrapping
	BootstrapIPs                     string
	BootstrapIDs                     string
	BootstrapBeaconConnectionTimeout string

	// Database
	DBType string
	DBDir  string

	// Build
	BuildDir string

	// Plugins
	PluginDir string

	// Logging
	LogLevel            string
	LogDir              string
	LogDisplayLevel     string
	LogDisplayHighlight string

	// Consensus
	SnowAvalancheBatchSize      int
	SnowAvalancheNumParents     int
	SnowSampleSize              int
	SnowQuorumSize              int
	SnowVirtuousCommitThreshold int
	SnowRogueCommitThreshold    int
	SnowConcurrentRepolls       int
	MinDelegatorStake           int
	ConsensusShutdownTimeout    string
	ConsensusGossipFrequency    string
	MinDelegationFee            int
	MinValidatorStake           int
	MaxStakeDuration            string
	MaxValidatorStake           int

	// Staking
	StakingEnabled        bool
	StakeMintingPeriod    string
	StakingPort           uint
	StakingDisabledWeight int
	StakingTLSKeyFile     string
	StakingTLSCertFile    string

	// Auth
	APIAuthRequired        bool
	APIAuthPasswordFileKey string
	MinStakeDuration       string

	// Whitelisted Subnets
	WhitelistedSubnets string

	// Config
	ConfigFile string

	// IPCS
	IPCSChainIDs string
	IPCSPath     string

	// File Descriptor Limit
	FDLimit int

	// Benchlist
	BenchlistFailThreshold      int
	BenchlistMinFailingDuration string
	BenchlistPeerSummaryEnabled bool
	BenchlistDuration           string

	// Network
	NetworkInitialTimeout                   string
	NetworkMinimumTimeout                   string
	NetworkMaximumTimeout                   string
	NetworkHealthMaxSendFailRateKey         float64
	NetworkHealthMaxPortionSendQueueFillKey float64
	NetworkHealthMaxTimeSinceMsgSentKey     string
	NetworkHealthMaxTimeSinceMsgReceivedKey string
	NetworkHealthMinConnPeers               int
	NetworkTimeoutCoefficient               int
	NetworkTimeoutHalflife                  string
	NetworkCompressionEnabled               bool

	// Peer List Gossiping
	NetworkPeerListGossipFrequency string
	NetworkPeerListGossipSize      int
	NetworkPeerListSize            int

	// Uptime Requirement
	UptimeRequirement float64

	// Retry
	RetryBootstrapWarnFrequency int
	RetryBootstrap              bool

	// Health
	HealthCheckAveragerHalflifeKey string
	HealthCheckFreqKey             string

	// Router
	RouterHealthMaxOutstandingRequestsKey int
	RouterHealthMaxDropRateKey            float64

	IndexEnabled bool

	PluginModeEnabled bool

	MeterVMsEnabled bool
}

Flags represents available CLI flags when starting a node

func ConvertYAML

func ConvertYAML(flags FlagsYAML) Flags

ConvertYAML converts a FlagsYAML struct into a Flags struct

func DefaultFlags

func DefaultFlags() Flags

DefaultFlags returns Avash-specific default node flags

func (*Flags) SetDefaults

func (flags *Flags) SetDefaults()

SetDefaults sets any zero-value field to its default value

type FlagsYAML

type FlagsYAML struct {
	ClientLocation                          *string  `yaml:"-"`
	Meta                                    *string  `yaml:"-"`
	DataDir                                 *string  `yaml:"-"`
	AssertionsEnabled                       *bool    `yaml:"assertions-enabled,omitempty"`
	Version                                 *bool    `yaml:"version,omitempty"`
	TxFee                                   *uint    `yaml:"tx-fee,omitempty"`
	PublicIP                                *string  `yaml:"public-ip,omitempty"`
	DynamicPublicIP                         *string  `yaml:"dynamic-public-ip,omitempty"`
	NetworkID                               *string  `yaml:"network-id,omitempty"`
	SignatureVerificationEnabled            *bool    `yaml:"signature-verification-enabled,omitempty"`
	APIAdminEnabled                         *bool    `yaml:"api-admin-enabled,omitempty"`
	APIIPCsEnabled                          *bool    `yaml:"api-ipcs-enabled,omitempty"`
	APIKeystoreEnabled                      *bool    `yaml:"api-keystore-enabled,omitempty"`
	APIMetricsEnabled                       *bool    `yaml:"api-metrics-enabled,omitempty"`
	HTTPHost                                *string  `yaml:"http-host,omitempty"`
	HTTPPort                                *uint    `yaml:"http-port,omitempty"`
	HTTPTLSEnabled                          *bool    `yaml:"http-tls-enabled,omitempty"`
	HTTPTLSCertFile                         *string  `yaml:"http-tls-cert-file,omitempty"`
	HTTPTLSKeyFile                          *string  `yaml:"http-tls-key-file,omitempty"`
	BootstrapIPs                            *string  `yaml:"bootstrap-ips,omitempty"`
	BootstrapIDs                            *string  `yaml:"bootstrap-ids,omitempty"`
	BootstrapBeaconConnectionTimeout        *string  `yaml:"bootstrap-beacon-connection-timeout,omitempty"`
	DBType                                  *string  `yaml:"db-type,omitempty"`
	DBDir                                   *string  `yaml:"db-dir,omitempty"`
	BuildDir                                *string  `yaml:"build-dir,omitempty"`
	PluginDir                               *string  `yaml:"plugin-dir,omitempty"`
	LogLevel                                *string  `yaml:"log-level,omitempty"`
	LogDir                                  *string  `yaml:"log-dir,omitempty"`
	LogDisplayLevel                         *string  `yaml:"log-display-level,omitempty"`
	LogDisplayHighlight                     *string  `yaml:"log-display-highlight,omitempty"`
	SnowAvalancheBatchSize                  *int     `yaml:"snow-avalanche-batch-size,omitempty"`
	SnowAvalancheNumParents                 *int     `yaml:"snow-avalanche-num-parents,omitempty"`
	SnowSampleSize                          *int     `yaml:"snow-sample-size,omitempty"`
	SnowQuorumSize                          *int     `yaml:"snow-quorum-size,omitempty"`
	SnowVirtuousCommitThreshold             *int     `yaml:"snow-virtuous-commit-threshold,omitempty"`
	SnowRogueCommitThreshold                *int     `yaml:"snow-rogue-commit-threshold,omitempty"`
	SnowConcurrentRepolls                   *int     `yaml:"snow-concurrent-repolls,omitempty"`
	MinDelegatorStake                       *int     `yaml:"min-delegator-stake,omitempty"`
	ConsensusShutdownTimeout                *string  `yaml:"consensus-shutdown-timeout,omitempty"`
	ConsensusGossipFrequency                *string  `yaml:"consensus-gossip-frequency,omitempty"`
	MinDelegationFee                        *int     `yaml:"min-delegation-fee,omitempty"`
	MinValidatorStake                       *int     `yaml:"min-validator-stake,omitempty"`
	MaxStakeDuration                        *string  `yaml:"max-stake-duration,omitempty"`
	MaxValidatorStake                       *int     `yaml:"max-validator-stake,omitempty"`
	StakeMintingPeriod                      *string  `yaml:"stake-minting-period,omitempty"`
	NetworkInitialTimeout                   *string  `yaml:"network-initial-timeout,omitempty"`
	NetworkMinimumTimeout                   *string  `yaml:"network-minimum-timeout,omitempty"`
	NetworkMaximumTimeout                   *string  `yaml:"network-maximum-timeout,omitempty"`
	NetworkHealthMaxSendFailRateKey         *float64 `yaml:"network-health-max-send-fail-rate,omitempty"`
	NetworkHealthMaxPortionSendQueueFillKey *float64 `yaml:"network-health-max-portion-send-queue-full"`
	NetworkHealthMaxTimeSinceMsgSentKey     *string  `yaml:"network-health-max-time-since-msg-sent,omitempty"`
	NetworkHealthMaxTimeSinceMsgReceivedKey *string  `yaml:"network-health-max-time-since-msg-received,omitempty"`
	NetworkHealthMinConnPeers               *int     `yaml:"network-health-min-conn-peers,omitempty"`
	NetworkTimeoutCoefficient               *int     `yaml:"network-timeout-coefficient,omitempty"`
	NetworkTimeoutHalflife                  *string  `yaml:"network-timeout-halflife,omitempty"`
	NetworkPeerListGossipFrequency          *string  `yaml:"network-peer-list-gossip-frequency,omitempty"`
	NetworkPeerListGossipSize               *int     `yaml:"network-peer-list-gossip-size,omitempty"`
	NetworkPeerListSize                     *int     `yaml:"network-peer-list-size,omitempty"`
	StakingEnabled                          *bool    `yaml:"staking-enabled,omitempty"`
	StakingPort                             *uint    `yaml:"staking-port,omitempty"`
	StakingDisabledWeight                   *int     `yaml:"staking-disabled-weight,omitempty"`
	StakingTLSKeyFile                       *string  `yaml:"staking-tls-key-file,omitempty"`
	StakingTLSCertFile                      *string  `yaml:"staking-tls-cert-file,omitempty"`
	APIAuthRequired                         *bool    `yaml:"api-auth-required,omitempty"`
	APIAuthPasswordFileKey                  *string  `yaml:"api-auth-password-file,omitempty"`
	MinStakeDuration                        *string  `yaml:"min-stake-duration,omitempty"`
	WhitelistedSubnets                      *string  `yaml:"whitelisted-subnets,omitempty"`
	APIHealthEnabled                        *bool    `yaml:"api-health-enabled,omitempty"`
	ConfigFile                              *string  `yaml:"config-file,omitempty"`
	APIInfoEnabled                          *bool    `yaml:"api-info-enabled,omitempty"`
	NetworkCompressionEnabled               *bool    `yaml:"network-compression-enabled,omitempty"`
	IPCSChainIDs                            *string  `yaml:"ipcs-chain-ids,omitempty"`
	IPCSPath                                *string  `yaml:"ipcs-path,omitempty"`
	FDLimit                                 *int     `yaml:"fd-limit,omitempty"`
	BenchlistDuration                       *string  `yaml:"benchlist-duration,omitempty"`
	BenchlistFailThreshold                  *int     `yaml:"benchlist-fail-threshold,omitempty"`
	BenchlistMinFailingDuration             *string  `yaml:"benchlist-min-failing-duration,omitempty"`
	BenchlistPeerSummaryEnabled             *bool    `yaml:"benchlist-peer-summary-enabled,omitempty"`
	UptimeRequirement                       *float64 `yaml:"uptime-requirement,omitempty"`
	RetryBootstrapWarnFrequency             *uint    `yaml:"bootstrap-retry-warn-frequency,omitempty"`
	RetryBootstrap                          *bool    `yaml:"bootstrap-retry-enabled,omitempty"`
	HealthCheckAveragerHalflifeKey          *string  `yaml:"health-check-averager-halflife,omitempty"`
	HealthCheckFreqKey                      *string  `yaml:"health-check-frequency,omitempty"`
	RouterHealthMaxOutstandingRequestsKey   *int     `yaml:"router-health-max-outstanding-requests,omitempty"`
	RouterHealthMaxDropRateKey              *float64 `yaml:"router-health-max-drop-rate,omitempty"`
	IndexEnabled                            *bool    `yaml:"index-enabled,omitempty"`
	PluginModeEnabled                       *bool    `yaml:"plugin-mode-enabled,omitempty"`
}

FlagsYAML mimics Flags but uses pointers for proper YAML interpretation Note: FlagsYAML and Flags must always be identical in fields, otherwise parsing will break

type Metadata

type Metadata struct {
	Serverhost     string `json:"public-ip"`
	Stakingport    string `json:"staking-port"`
	HTTPport       string `json:"http-port"`
	HTTPTLS        bool   `json:"http-tls-enabled"`
	Dbdir          string `json:"db-dir"`
	Datadir        string `json:"data-dir"`
	Logsdir        string `json:"log-dir"`
	Loglevel       string `json:"log-level"`
	StakingEnabled bool   `json:"staking-enabled"`
	StakerCertPath string `json:"staking-tls-cert-file"`
	StakerKeyPath  string `json:"staking-tls-key-file"`
}

Metadata struct for storing metadata, available to commands

func FlagsToArgs

func FlagsToArgs(flags Flags, basedir string, sepBase bool) ([]string, Metadata)

FlagsToArgs converts a `Flags` struct into a CLI command flag string

Jump to

Keyboard shortcuts

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