Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager interface {
// PutValidatorSet puts associaties the given subnet ID with the given validator set
PutValidatorSet(ids.ID, Set)
// RemoveValidatorSet removes the specified validator set
RemoveValidatorSet(ids.ID)
// GetGroup returns:
// 1) the validator set of the subnet with the specified ID
// 2) false if there is no subnet with the specified ID
GetValidatorSet(ids.ID) (Set, bool)
}
Manager holds the validator set of each subnet
type Set ¶
type Set interface {
fmt.Stringer
// Set removes all the current validators and adds all the provided
// validators to the set.
Set([]Validator) error
// Add the provided validator to the set.
Add(Validator) error
// Get the validator from the set.
Get(ids.ShortID) (Validator, bool)
// Remove the validator with the specified ID.
Remove(ids.ShortID) error
// Contains returns true if there is a validator with the specified ID
// currently in the set.
Contains(ids.ShortID) bool
// Len returns the number of validators currently in the set.
Len() int
// List all the validators in this group
List() []Validator
// Weight returns the cumulative weight of all validators in the set.
Weight() uint64
// Sample returns a collection of validators, potentially with duplicates.
// If sampling the requested size isn't possible, an error will be returned.
Sample(size int) ([]Validator, error)
}
Set of validators that can be sampled
type Validator ¶
type Validator interface {
// ID returns the unique id of this validator
ID() ids.ShortID
// Weight that can be used for weighted sampling.
// If this validator is validating the default subnet, returns the amount of
// AVAX staked
Weight() uint64
}
Validator is the minimal description of someone that can be sampled.
func GenerateRandomValidator ¶
GenerateRandomValidator creates a random validator with the provided weight
Click to show internal directories.
Click to hide internal directories.