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 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:"-"` AxcAssetID ids.ID `json:"axcAssetID"` // 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 axia.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"` // Allychain Whitelist WhitelistedAllychains ids.Set `json:"whitelistedAllychains"` // AllychainConfigs AllychainConfigs map[ids.ID]chains.AllychainConfig `json:"allychainConfigs"` // ChainConfigs ChainConfigs map[string]chains.ChainConfig `json:"-"` // VM management VMManager vms.Manager `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"` }
Config contains all of the configurations of an Axia node.
type DatabaseConfig ¶
type HTTPConfig ¶
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 ¶
type IPConfig struct { IPPort ips.DynamicIPPort `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 DecisionAcceptorGroup snow.AcceptorGroup ConsensusAcceptorGroup 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 // VM endpoint registry VMRegistry registry.VMRegistry // contains filtered or unexported fields }
Node is an instance of an Axia node.
type StakingConfig ¶
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.