Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIConfig ¶
type APIConfig struct { APIIndexerConfig `json:"indexerConfig"` // 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 { // 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"` Bootstrappers []genesis.Bootstrapper `json:"bootstrappers"` }
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:"juneAssetID"` // 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"` RouterHealthConfig router.HealthConfig `json:"routerHealthConfig"` ConsensusShutdownTimeout time.Duration `json:"consensusShutdownTimeout"` // Poll for new frontiers every [FrontierPollFrequency] FrontierPollFrequency time.Duration `json:"consensusGossipFreq"` // ConsensusAppConcurrency defines the maximum number of goroutines to // handle App messages per chain. ConsensusAppConcurrency int `json:"consensusAppConcurrency"` TrackedSupernets set.Set[ids.ID] `json:"trackedSupernets"` SupernetConfigs map[ids.ID]supernets.Config `json:"supernetConfigs"` ChainConfigs map[string]chains.ChainConfig `json:"-"` ChainAliases map[ids.ID][]string `json:"chainAliases"` VMAliases map[ids.ID][]string `json:"vmAliases"` // 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 [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"` // Path to write process context to (including PID, API URI, and // staking address). ProcessContextFilePath string `json:"processContextFilePath"` }
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:"-"` HTTPAllowedOrigins []string `json:"httpAllowedOrigins"` HTTPAllowedHosts []string `json:"httpAllowedHosts"` ShutdownTimeout time.Duration `json:"shutdownTimeout"` ShutdownWait time.Duration `json:"shutdownWait"` }
type IPConfig ¶
type IPConfig struct { PublicIP string `json:"publicIP"` PublicIPResolutionService string `json:"publicIPResolutionService"` PublicIPResolutionFreq time.Duration `json:"publicIPResolutionFreq"` // The host portion of the address to listen on. The port to // listen on will be sourced from IPPort. // // - If empty, listen on all interfaces (both ipv4 and ipv6). // - If populated, listen only on the specified address. ListenHost string `json:"listenHost"` ListenPort uint16 `json:"listenPort"` }
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 StakingTLSSigner crypto.Signer StakingTLSCert *staking.Certificate // Storage for this node DB database.Database // dispatcher for events as they happen in consensus BlockAcceptorGroup snow.AcceptorGroup TxAcceptorGroup snow.AcceptorGroup VertexAcceptorGroup snow.AcceptorGroup 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 VMAliaser ids.Aliaser VMManager vms.Manager // VM endpoint registry VMRegistry registry.VMRegistry // contains filtered or unexported fields }
Node is an instance of an Avalanche node.
type NodeProcessContext ¶
type NodeProcessContext struct { // The process id of the node PID int `json:"pid"` // URI to access the node API // Format: [https|http]://[host]:[port] URI string `json:"uri"` // Address other nodes can use to communicate with this node // Format: [host]:[port] StakingAddress string `json:"stakingAddress"` }
type StakingConfig ¶
type StakingConfig struct { genesis.StakingConfig SybilProtectionEnabled bool `json:"sybilProtectionEnabled"` PartialSyncPrimaryNetwork bool `json:"partialSyncPrimaryNetwork"` StakingTLSCert tls.Certificate `json:"-"` StakingSigningKey *bls.SecretKey `json:"-"` SybilProtectionDisabledWeight uint64 `json:"sybilProtectionDisabledWeight"` StakingKeyPath string `json:"stakingKeyPath"` StakingCertPath string `json:"stakingCertPath"` StakingSignerPath string `json:"stakingSignerPath"` }
Click to show internal directories.
Click to hide internal directories.