Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultExecutionConfig = ExecutionConfig{ Network: DefaultNetworkConfig, BlockCacheSize: 64 * units.MiB, TxCacheSize: 128 * units.MiB, TransformedSubnetTxCacheSize: 4 * units.MiB, RewardUTXOsCacheSize: 2048, ChainCacheSize: 2048, ChainDBCacheSize: 2048, BlockIDCacheSize: 8192, FxOwnerCacheSize: 4 * units.MiB, SubnetManagerCacheSize: 4 * units.MiB, ChecksumsEnabled: false, MempoolPruneFrequency: 30 * time.Minute, }
View Source
var DefaultNetworkConfig = NetworkConfig{ MaxValidatorSetStaleness: time.Minute, TargetGossipSize: 20 * units.KiB, PushGossipPercentStake: .9, PushGossipNumValidators: 100, PushGossipNumPeers: 0, PushRegossipNumValidators: 10, PushRegossipNumPeers: 0, PushGossipDiscardedCacheSize: 16384, PushGossipMaxRegossipFrequency: 30 * time.Second, PushGossipFrequency: 500 * time.Millisecond, PullGossipPollSize: 1, PullGossipFrequency: 1500 * time.Millisecond, PullGossipThrottlingPeriod: 10 * time.Second, PullGossipThrottlingLimit: 2, ExpectedBloomFilterElements: 8 * 1024, ExpectedBloomFilterFalsePositiveProbability: .01, MaxBloomFilterFalsePositiveProbability: .05, }
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { // The node's chain manager Chains chains.Manager // Node's validator set maps subnetID -> validators of the subnet // // Invariant: The primary network's validator set should have been added to // the manager before calling VM.Initialize. // Invariant: The primary network's validator set should be empty before // calling VM.Initialize. Validators validators.Manager // Static fees are active before Etna CreateAssetTxFee uint64 // Override for CreateSubnet and CreateChain before AP3 StaticFeeConfig txfee.StaticConfig // Dynamic fees are active after Etna DynamicFeeConfig gas.Config // ACP-77 validator fees are active after Etna ValidatorFeeCapacity gas.Gas ValidatorFeeConfig validatorfee.Config // Provides access to the uptime manager as a thread safe data structure UptimeLockedCalculator uptime.LockedCalculator // True if the node is being run with staking enabled SybilProtectionEnabled bool // If true, only the P-chain will be instantiated on the primary network. PartialSyncPrimaryNetwork bool // Set of subnets that this node is validating TrackedSubnets set.Set[ids.ID] // The minimum amount of tokens one must bond to be a validator MinValidatorStake uint64 // The maximum amount of tokens that can be bonded on a validator MaxValidatorStake uint64 // Minimum stake, in nAVAX, that can be delegated on the primary network MinDelegatorStake uint64 // Minimum fee that can be charged for delegation MinDelegationFee uint32 // UptimePercentage is the minimum uptime required to be rewarded for staking UptimePercentage float64 // Minimum amount of time to allow a staker to stake MinStakeDuration time.Duration // Maximum amount of time to allow a staker to stake MaxStakeDuration time.Duration // Config for the minting function RewardConfig reward.Config // All network upgrade timestamps UpgradeConfig upgrade.Config // UseCurrentHeight forces [GetMinimumHeight] to return the current height // of the P-Chain instead of the oldest block in the [recentlyAccepted] // window. // // This config is particularly useful for triggering proposervm activation // on recently created subnets (without this, users need to wait for // [recentlyAcceptedWindowTTL] to pass for activation to occur). UseCurrentHeight bool }
Struct collecting all foundational parameters of PlatformVM
func (*Config) CreateChain ¶ added in v1.7.14
func (c *Config) CreateChain(chainID ids.ID, tx *txs.CreateChainTx)
Create the blockchain described in [tx], but only if this node is a member of the subnet that validates the chain
type ExecutionConfig ¶ added in v1.10.6
type ExecutionConfig struct { Network NetworkConfig `json:"network"` BlockCacheSize int `json:"block-cache-size"` TxCacheSize int `json:"tx-cache-size"` TransformedSubnetTxCacheSize int `json:"transformed-subnet-tx-cache-size"` RewardUTXOsCacheSize int `json:"reward-utxos-cache-size"` ChainCacheSize int `json:"chain-cache-size"` ChainDBCacheSize int `json:"chain-db-cache-size"` BlockIDCacheSize int `json:"block-id-cache-size"` FxOwnerCacheSize int `json:"fx-owner-cache-size"` SubnetManagerCacheSize int `json:"subnet-manager-cache-size"` ChecksumsEnabled bool `json:"checksums-enabled"` MempoolPruneFrequency time.Duration `json:"mempool-prune-frequency"` }
ExecutionConfig provides execution parameters of PlatformVM
func GetExecutionConfig ¶ added in v1.10.6
func GetExecutionConfig(b []byte) (*ExecutionConfig, error)
GetExecutionConfig returns an ExecutionConfig input is unmarshalled into an ExecutionConfig previously initialized with default values
type NetworkConfig ¶
type NetworkConfig struct { // MaxValidatorSetStaleness limits how old of a validator set the network // will use for peer sampling and rate limiting. MaxValidatorSetStaleness time.Duration `json:"max-validator-set-staleness"` // TargetGossipSize is the number of bytes that will be attempted to be // sent when pushing transactions and when responded to transaction pull // requests. TargetGossipSize int `json:"target-gossip-size"` // PushGossipPercentStake is the percentage of total stake to push // transactions to in the first round of gossip. Nodes with higher stake are // preferred over nodes with less stake to minimize the number of messages // sent over the p2p network. PushGossipPercentStake float64 `json:"push-gossip-percent-stake"` // PushGossipNumValidators is the number of validators to push transactions // to in the first round of gossip. PushGossipNumValidators int `json:"push-gossip-num-validators"` // PushGossipNumPeers is the number of peers to push transactions to in the // first round of gossip. PushGossipNumPeers int `json:"push-gossip-num-peers"` // PushRegossipNumValidators is the number of validators to push // transactions to after the first round of gossip. PushRegossipNumValidators int `json:"push-regossip-num-validators"` // PushRegossipNumPeers is the number of peers to push transactions to after // the first round of gossip. PushRegossipNumPeers int `json:"push-regossip-num-peers"` // PushGossipDiscardedCacheSize is the number of txIDs to cache to avoid // pushing transactions that were recently dropped from the mempool. PushGossipDiscardedCacheSize int `json:"push-gossip-discarded-cache-size"` // PushGossipMaxRegossipFrequency is the limit for how frequently a // transaction will be push gossiped. PushGossipMaxRegossipFrequency time.Duration `json:"push-gossip-max-regossip-frequency"` // PushGossipFrequency is how frequently rounds of push gossip are // performed. PushGossipFrequency time.Duration `json:"push-gossip-frequency"` // PullGossipPollSize is the number of validators to sample when performing // a round of pull gossip. PullGossipPollSize int `json:"pull-gossip-poll-size"` // PullGossipFrequency is how frequently rounds of pull gossip are // performed. PullGossipFrequency time.Duration `json:"pull-gossip-frequency"` // PullGossipThrottlingPeriod is how large of a window the throttler should // use. PullGossipThrottlingPeriod time.Duration `json:"pull-gossip-throttling-period"` // PullGossipThrottlingLimit is the number of pull querys that are allowed // by a validator in every throttling window. PullGossipThrottlingLimit int `json:"pull-gossip-throttling-limit"` // ExpectedBloomFilterElements is the number of elements to expect when // creating a new bloom filter. The larger this number is, the larger the // bloom filter will be. ExpectedBloomFilterElements int `json:"expected-bloom-filter-elements"` // ExpectedBloomFilterFalsePositiveProbability is the expected probability // of a false positive after having inserted ExpectedBloomFilterElements // into a bloom filter. The smaller this number is, the larger the bloom // filter will be. ExpectedBloomFilterFalsePositiveProbability float64 `json:"expected-bloom-filter-false-positive-probability"` // MaxBloomFilterFalsePositiveProbability is used to determine when the // bloom filter should be refreshed. Once the expected probability of a // false positive exceeds this value, the bloom filter will be regenerated. // The smaller this number is, the more frequently that the bloom filter // will be regenerated. MaxBloomFilterFalsePositiveProbability float64 `json:"max-bloom-filter-false-positive-probability"` }
Click to show internal directories.
Click to hide internal directories.