Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIAuthConfig ¶ added in v1.5.0
type APIConfig ¶ added in v1.5.0
type APIConfig struct {
APIAuthConfig `json:"authConfig"`
APIIndexerConfig `json:"indexerConfig"`
IPCConfig `json:"ipcConfig"`
// Enable/Disable APIs
AdminAPIEnabled bool `json:"adminAPIEnabled"`
InfoAPIEnabled bool `json:"infoAPIEnabled"`
KeystoreAPIEnabled bool `json:"keystoreAPIEnabled"`
MetricsAPIEnabled bool `json:"metricsAPIEnabled"`
HealthAPIEnabled bool `json:"healthAPIEnabled"`
}
type APIIndexerConfig ¶ added in v1.5.0
type BootstrapConfig ¶ added in v1.5.0
type BootstrapConfig struct {
// Should Bootstrap be retried
RetryBootstrap bool `json:"retryBootstrap"`
// Max number of times to retry bootstrap before warning the node operator
RetryBootstrapWarnFrequency int `json:"retryBootstrapWarnFrequency"`
// Timeout when connecting to bootstrapping beacons
BootstrapBeaconConnectionTimeout time.Duration `json:"bootstrapBeaconConnectionTimeout"`
// Max number of containers in an ancestors message sent by this node.
BootstrapAncestorsMaxContainersSent int `json:"bootstrapAncestorsMaxContainersSent"`
// This node will only consider the first [AncestorsMaxContainersReceived]
// containers in an ancestors message it receives.
BootstrapAncestorsMaxContainersReceived int `json:"bootstrapAncestorsMaxContainersReceived"`
// Max time to spend fetching a container and its
// ancestors while responding to a GetAncestors message
BootstrapMaxTimeGetAncestors time.Duration `json:"bootstrapMaxTimeGetAncestors"`
BootstrapIDs []ids.NodeID `json:"bootstrapIDs"`
BootstrapIPs []utils.IPDesc `json:"bootstrapIPs"`
}
type Config ¶
type Config struct {
HTTPConfig `json:"httpConfig"`
IPConfig `json:"ipConfig"`
StakingConfig `json:"stakingConfig"`
genesis.TxFeeConfig `json:"txFeeConfig"`
StateSyncConfig `json:"stateSyncConfig"`
BootstrapConfig `json:"bootstrapConfig"`
DatabaseConfig `json:"databaseConfig"`
// Genesis information
GenesisBytes []byte `json:"-"`
AvaxAssetID ids.ID `json:"avaxAssetID"`
// ID of the network this node should connect to
NetworkID uint32 `json:"networkID"`
// Assertions configuration
EnableAssertions bool `json:"enableAssertions"`
// Crypto configuration
EnableCrypto bool `json:"enableCrypto"`
// Health
HealthCheckFreq time.Duration `json:"healthCheckFreq"`
// Network configuration
NetworkConfig network.Config `json:"networkConfig"`
GossipConfig sender.GossipConfig `json:"gossipConfig"`
AdaptiveTimeoutConfig timer.AdaptiveTimeoutConfig `json:"adaptiveTimeoutConfig"`
// Benchlist Configuration
BenchlistConfig benchlist.Config `json:"benchlistConfig"`
// Profiling configurations
ProfilerConfig profiler.Config `json:"profilerConfig"`
// Logging configuration
LoggingConfig logging.Config `json:"loggingConfig"`
// Plugin directory
PluginDir string `json:"pluginDir"`
// File Descriptor Limit
FdLimit uint64 `json:"fdLimit"`
// Consensus configuration
ConsensusParams avalanche.Parameters `json:"consensusParams"`
// Metrics
MeterVMEnabled bool `json:"meterVMEnabled"`
// Router that is used to handle incoming consensus messages
ConsensusRouter router.Router `json:"-"`
RouterHealthConfig router.HealthConfig `json:"routerHealthConfig"`
ConsensusShutdownTimeout time.Duration `json:"consensusShutdownTimeout"`
// Gossip a container in the accepted frontier every [ConsensusGossipFrequency]
ConsensusGossipFrequency time.Duration `json:"consensusGossipFreq"`
// Subnet Whitelist
WhitelistedSubnets ids.Set `json:"whitelistedSubnets"`
// SubnetConfigs
SubnetConfigs map[ids.ID]chains.SubnetConfig `json:"subnetConfigs"`
// ChainConfigs
ChainConfigs map[string]chains.ChainConfig `json:"-"`
// VM management
VMManager vms.Manager `json:"-"`
// Halflife to use for the CPU tracker.
// Larger halflife --> CPU usage metrics change more slowly.
CPUTrackerHalflife time.Duration `json:"cpuTrackerHalflife"`
CPUTargeterConfig tracker.CPUTargeterConfig `json:"cpuTargeterConfig"`
}
Config contains all of the configurations of an Avalanche node.
type DatabaseConfig ¶ added in v1.5.0
type HTTPConfig ¶ added in v1.5.0
type HTTPConfig struct {
APIConfig `json:"apiConfig"`
HTTPHost string `json:"httpHost"`
HTTPPort uint16 `json:"httpPort"`
HTTPSEnabled bool `json:"httpsEnabled"`
HTTPSKey []byte `json:"-"`
HTTPSCert []byte `json:"-"`
APIAllowedOrigins []string `json:"apiAllowedOrigins"`
ShutdownTimeout time.Duration `json:"shutdownTimeout"`
ShutdownWait time.Duration `json:"shutdownWait"`
}
type IPConfig ¶ added in v1.5.0
type IPConfig struct {
IP utils.DynamicIPDesc `json:"ip"`
// True if we attempted NAT Traversal
AttemptedNATTraversal bool `json:"attemptedNATTraversal"`
// Tries to perform network address translation
Nat nat.Router `json:"-"`
// Dynamic Update duration for IP or NAT traversal
DynamicUpdateDuration time.Duration `json:"dynamicUpdateDuration"`
// Tries to resolve our IP from an external source
DynamicPublicIPResolver dynamicip.Resolver `json:"-"`
}
type Node ¶
type Node struct {
Log logging.Logger
LogFactory logging.Factory
// This node's unique ID used when communicating with other nodes
// (in consensus, for example)
ID ids.NodeID
// Storage for this node
DBManager manager.Manager
DB database.Database
// dispatcher for events as they happen in consensus
DecisionDispatcher *triggers.EventDispatcher
ConsensusDispatcher *triggers.EventDispatcher
IPCs *ipcs.ChainIPCs
Net network.Network
// Handles HTTP API calls
APIServer server.Server
// This node's configuration
Config *Config
// Incremented only once on initialization.
// Decremented when node is done shutting down.
DoneShuttingDown sync.WaitGroup
// Metrics Registerer
MetricsRegisterer *prometheus.Registry
MetricsGatherer metrics.MultiGatherer
// VM endpoint registry
VMRegistry registry.VMRegistry
// contains filtered or unexported fields
}
Node is an instance of an Avalanche node.
type StakingConfig ¶ added in v1.5.0
type StakingConfig struct {
genesis.StakingConfig
EnableStaking bool `json:"enableStaking"`
StakingTLSCert tls.Certificate `json:"-"`
DisabledStakingWeight uint64 `json:"disabledStakingWeight"`
StakingKeyPath string `json:"stakingKeyPath"`
StakingCertPath string `json:"stakingCertPath"`
}
Click to show internal directories.
Click to hide internal directories.