 Documentation
      ¶
      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.