Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Allower ¶
type Allower interface { // IsAllowed filters out nodes that are not allowed to connect to this subnet IsAllowed(nodeID ids.NodeID, isValidator bool) bool }
var NoOpAllower Allower = noOpAllower{}
NoOpAllower is an Allower that always returns true
type Config ¶
type Config struct { GossipConfig // ValidatorOnly indicates that this Subnet's Chains are available to only subnet validators. // No chain related messages will go out to non-validators. // Validators will drop messages received from non-validators. // Also see [AllowedNodes] to allow non-validators to connect to this Subnet. ValidatorOnly bool `json:"validatorOnly" yaml:"validatorOnly"` // AllowedNodes is the set of node IDs that are explicitly allowed to connect to this Subnet when // ValidatorOnly is enabled. AllowedNodes set.Set[ids.NodeID] `json:"allowedNodes" yaml:"allowedNodes"` ConsensusParameters snowball.Parameters `json:"consensusParameters" yaml:"consensusParameters"` // ProposerMinBlockDelay is the minimum delay this node will enforce when // building a snowman++ block. // // TODO: Remove this flag once all VMs throttle their own block production. ProposerMinBlockDelay time.Duration `json:"proposerMinBlockDelay" yaml:"proposerMinBlockDelay"` // ProposerNumHistoricalBlocks is the number of historical snowman++ blocks // this node will index per chain. If set to 0, the node will index all // snowman++ blocks. // // Note: The last accepted block is not considered a historical block. This // prevents the user from only storing the last accepted block, which can // never be safe due to the non-atomic commits between the proposervm // database and the innerVM's database. // // Invariant: This value must be set such that the proposervm never needs to // rollback more blocks than have been deleted. On startup, the proposervm // rolls back its accepted chain to match the innerVM's accepted chain. If // the innerVM is not persisting its last accepted block quickly enough, the // database can become corrupted. // // TODO: Move this flag once the proposervm is configurable on a per-chain // basis. ProposerNumHistoricalBlocks uint64 `json:"proposerNumHistoricalBlocks" yaml:"proposerNumHistoricalBlocks"` }
type GossipConfig ¶
type GossipConfig struct { AcceptedFrontierValidatorSize uint `json:"gossipAcceptedFrontierValidatorSize" yaml:"gossipAcceptedFrontierValidatorSize"` AcceptedFrontierNonValidatorSize uint `json:"gossipAcceptedFrontierNonValidatorSize" yaml:"gossipAcceptedFrontierNonValidatorSize"` AcceptedFrontierPeerSize uint `json:"gossipAcceptedFrontierPeerSize" yaml:"gossipAcceptedFrontierPeerSize"` OnAcceptValidatorSize uint `json:"gossipOnAcceptValidatorSize" yaml:"gossipOnAcceptValidatorSize"` OnAcceptNonValidatorSize uint `json:"gossipOnAcceptNonValidatorSize" yaml:"gossipOnAcceptNonValidatorSize"` OnAcceptPeerSize uint `json:"gossipOnAcceptPeerSize" yaml:"gossipOnAcceptPeerSize"` }
type Subnet ¶
type Subnet interface { common.BootstrapTracker // AddChain adds a chain to this Subnet AddChain(chainID ids.ID) bool // Config returns config of this Subnet Config() Config Allower }
Subnet keeps track of the currently bootstrapping chains in a subnet. If no chains in the subnet are currently bootstrapping, the subnet is considered bootstrapped.
Click to show internal directories.
Click to hide internal directories.