Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIAuthConfig ¶
type APIConfig ¶
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 ¶
type BootstrapConfig ¶
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 before emitting a warn log 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 []ips.IPPort `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"` // Health HealthCheckFreq time.Duration `json:"healthCheckFreq"` // Network configuration NetworkConfig network.Config `json:"networkConfig"` AdaptiveTimeoutConfig timer.AdaptiveTimeoutConfig `json:"adaptiveTimeoutConfig"` BenchlistConfig benchlist.Config `json:"benchlistConfig"` ProfilerConfig profiler.Config `json:"profilerConfig"` LoggingConfig logging.Config `json:"loggingConfig"` PluginDir string `json:"pluginDir"` // File Descriptor Limit FdLimit uint64 `json:"fdLimit"` // 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"` // ConsensusAppConcurrency defines the maximum number of goroutines to // handle App messages per chain. ConsensusAppConcurrency int `json:"consensusAppConcurrency"` TrackedSubnets set.Set[ids.ID] `json:"trackedSubnets"` SubnetConfigs map[ids.ID]subnets.Config `json:"subnetConfigs"` ChainConfigs map[string]chains.ChainConfig `json:"-"` ChainAliases map[ids.ID][]string `json:"chainAliases"` VMAliaser ids.Aliaser `json:"-"` // Halflife to use for the processing requests tracker. // Larger halflife --> usage metrics change more slowly. SystemTrackerProcessingHalflife time.Duration `json:"systemTrackerProcessingHalflife"` // Frequency to check the real resource usage of tracked processes. // More frequent checks --> usage metrics are more accurate, but more // expensive to track SystemTrackerFrequency time.Duration `json:"systemTrackerFrequency"` // Halflife to use for the cpu tracker. // Larger halflife --> cpu usage metrics change more slowly. SystemTrackerCPUHalflife time.Duration `json:"systemTrackerCPUHalflife"` // Halflife to use for the disk tracker. // Larger halflife --> disk usage metrics change more slowly. SystemTrackerDiskHalflife time.Duration `json:"systemTrackerDiskHalflife"` CPUTargeterConfig tracker.TargeterConfig `json:"cpuTargeterConfig"` DiskTargeterConfig tracker.TargeterConfig `json:"diskTargeterConfig"` RequiredAvailableDiskSpace uint64 `json:"requiredAvailableDiskSpace"` WarningThresholdAvailableDiskSpace uint64 `json:"warningThresholdAvailableDiskSpace"` TraceConfig trace.Config `json:"traceConfig"` // See comment on [MinPercentConnectedStakeHealthy] in platformvm.Config // TODO: consider moving to subnet config MinPercentConnectedStakeHealthy map[ids.ID]float64 `json:"minPercentConnectedStakeHealthy"` // See comment on [UseCurrentHeight] in platformvm.Config UseCurrentHeight bool `json:"useCurrentHeight"` // ProvidedFlags contains all the flags set by the user ProvidedFlags map[string]interface{} `json:"-"` // ChainDataDir is the root path for per-chain directories where VMs can // write arbitrary data. ChainDataDir string `json:"chainDataDir"` }
Config contains all of the configurations of an Avalanche node.
type DatabaseConfig ¶
type HTTPConfig ¶
type HTTPConfig struct { server.HTTPConfig 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 ¶
type IPConfig struct { IPPort ips.DynamicIPPort `json:"ip"` IPUpdater dynamicip.Updater `json:"-"` IPResolutionFreq time.Duration `json:"ipResolutionFrequency"` // True if we attempted NAT traversal AttemptedNATTraversal bool `json:"attemptedNATTraversal"` // Tries to perform network address translation Nat nat.Router `json:"-"` }
type Node ¶
type Node struct { Log logging.Logger VMFactoryLog 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 BlockAcceptorGroup snow.AcceptorGroup TxAcceptorGroup snow.AcceptorGroup VertexAcceptorGroup snow.AcceptorGroup 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 VMManager vms.Manager // VM endpoint registry VMRegistry registry.VMRegistry // contains filtered or unexported fields }
Node is an instance of an Avalanche node.
type StakingConfig ¶
type StakingConfig struct { genesis.StakingConfig EnableStaking bool `json:"enableStaking"` StakingTLSCert tls.Certificate `json:"-"` StakingSigningKey *bls.SecretKey `json:"-"` DisabledStakingWeight uint64 `json:"disabledStakingWeight"` StakingKeyPath string `json:"stakingKeyPath"` StakingCertPath string `json:"stakingCertPath"` StakingSignerPath string `json:"stakingSignerPath"` }
Click to show internal directories.
Click to hide internal directories.