validators

package
v1.9.16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2023 License: BSD-3-Clause Imports: 23 Imported by: 121

Documentation

Overview

Package validators is a generated GoMock package.

Package validators is a generated GoMock package.

Package validators is a generated GoMock package.

Package validators is a generated GoMock package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Add added in v1.9.4

func Add(m Manager, subnetID ids.ID, nodeID ids.NodeID, pk *bls.PublicKey, txID ids.ID, weight uint64) error

Add is a helper that fetches the validator set of [subnetID] from [m] and adds [nodeID] to the validator set. Returns an error if: - [subnetID] does not have a registered validator set in [m] - adding [nodeID] to the validator set returns an error

func AddWeight added in v1.9.4

func AddWeight(m Manager, subnetID ids.ID, nodeID ids.NodeID, weight uint64) error

AddWeight is a helper that fetches the validator set of [subnetID] from [m] and adds [weight] to [nodeID] in the validator set. Returns an error if: - [subnetID] does not have a registered validator set in [m] - adding [weight] to [nodeID] in the validator set returns an error

func Contains added in v1.9.4

func Contains(m Manager, subnetID ids.ID, nodeID ids.NodeID) bool

Contains is a helper that fetches the validator set of [subnetID] from [m] and returns if the validator set contains [nodeID]. If [m] does not contain a validator set for [subnetID], false is returned.

func RemoveWeight added in v1.9.4

func RemoveWeight(m Manager, subnetID ids.ID, nodeID ids.NodeID, weight uint64) error

RemoveWeight is a helper that fetches the validator set of [subnetID] from [m] and removes [weight] from [nodeID] in the validator set. Returns an error if: - [subnetID] does not have a registered validator set in [m] - removing [weight] from [nodeID] in the validator set returns an error

Types

type Connector added in v0.8.0

type Connector interface {
	Connected(
		ctx context.Context,
		nodeID ids.NodeID,
		nodeVersion *version.Application,
	) error
	Disconnected(ctx context.Context, nodeID ids.NodeID) error
}

Connector represents a handler that is called when a connection is marked as connected or disconnected

type GetValidatorOutput added in v1.9.4

type GetValidatorOutput struct {
	NodeID    ids.NodeID
	PublicKey *bls.PublicKey
	Weight    uint64
}

GetValidatorOutput is a struct that contains the publicly relevant values of a validator of the Avalanche Network for the output of GetValidator.

type Manager

type Manager interface {
	fmt.Stringer

	// Add a subnet's validator set to the manager.
	//
	// If the subnet had previously registered a validator set, false will be
	// returned and the manager will not be modified.
	Add(subnetID ids.ID, set Set) bool

	// Get returns the validator set for the given subnet
	// Returns false if the subnet doesn't exist
	Get(ids.ID) (Set, bool)
}

Manager holds the validator set of each subnet

func NewManager

func NewManager() Manager

NewManager returns a new, empty manager

type MockManager added in v1.9.4

type MockManager struct {
	// contains filtered or unexported fields
}

MockManager is a mock of Manager interface.

func NewMockManager added in v1.9.4

func NewMockManager(ctrl *gomock.Controller) *MockManager

NewMockManager creates a new mock instance.

func (*MockManager) Add added in v1.9.4

func (m *MockManager) Add(arg0 ids.ID, arg1 Set) bool

Add mocks base method.

func (*MockManager) EXPECT added in v1.9.4

func (m *MockManager) EXPECT() *MockManagerMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockManager) Get added in v1.9.4

func (m *MockManager) Get(arg0 ids.ID) (Set, bool)

Get mocks base method.

func (*MockManager) String added in v1.9.4

func (m *MockManager) String() string

String mocks base method.

type MockManagerMockRecorder added in v1.9.4

type MockManagerMockRecorder struct {
	// contains filtered or unexported fields
}

MockManagerMockRecorder is the mock recorder for MockManager.

func (*MockManagerMockRecorder) Add added in v1.9.4

func (mr *MockManagerMockRecorder) Add(arg0, arg1 interface{}) *gomock.Call

Add indicates an expected call of Add.

func (*MockManagerMockRecorder) Get added in v1.9.4

func (mr *MockManagerMockRecorder) Get(arg0 interface{}) *gomock.Call

Get indicates an expected call of Get.

func (*MockManagerMockRecorder) String added in v1.9.4

func (mr *MockManagerMockRecorder) String() *gomock.Call

String indicates an expected call of String.

type MockSet added in v1.9.4

type MockSet struct {
	// contains filtered or unexported fields
}

MockSet is a mock of Set interface.

func NewMockSet added in v1.9.4

func NewMockSet(ctrl *gomock.Controller) *MockSet

NewMockSet creates a new mock instance.

func (*MockSet) Add added in v1.9.4

func (m *MockSet) Add(arg0 ids.NodeID, arg1 *bls.PublicKey, arg2 ids.ID, arg3 uint64) error

Add mocks base method.

func (*MockSet) AddWeight added in v1.9.4

func (m *MockSet) AddWeight(arg0 ids.NodeID, arg1 uint64) error

AddWeight mocks base method.

func (*MockSet) Contains added in v1.9.4

func (m *MockSet) Contains(arg0 ids.NodeID) bool

Contains mocks base method.

func (*MockSet) EXPECT added in v1.9.4

func (m *MockSet) EXPECT() *MockSetMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockSet) Get added in v1.9.4

func (m *MockSet) Get(arg0 ids.NodeID) (*Validator, bool)

Get mocks base method.

func (*MockSet) GetWeight added in v1.9.4

func (m *MockSet) GetWeight(arg0 ids.NodeID) uint64

GetWeight mocks base method.

func (*MockSet) Len added in v1.9.4

func (m *MockSet) Len() int

Len mocks base method.

func (*MockSet) List added in v1.9.4

func (m *MockSet) List() []*Validator

List mocks base method.

func (*MockSet) PrefixedString added in v1.9.4

func (m *MockSet) PrefixedString(arg0 string) string

PrefixedString mocks base method.

func (*MockSet) RegisterCallbackListener added in v1.9.4

func (m *MockSet) RegisterCallbackListener(arg0 SetCallbackListener)

RegisterCallbackListener mocks base method.

func (*MockSet) RemoveWeight added in v1.9.4

func (m *MockSet) RemoveWeight(arg0 ids.NodeID, arg1 uint64) error

RemoveWeight mocks base method.

func (*MockSet) Sample added in v1.9.4

func (m *MockSet) Sample(arg0 int) ([]ids.NodeID, error)

Sample mocks base method.

func (*MockSet) String added in v1.9.4

func (m *MockSet) String() string

String mocks base method.

func (*MockSet) SubsetWeight added in v1.9.4

func (m *MockSet) SubsetWeight(arg0 set.Set[ids.NodeID]) uint64

SubsetWeight mocks base method.

func (*MockSet) Weight added in v1.9.4

func (m *MockSet) Weight() uint64

Weight mocks base method.

type MockSetMockRecorder added in v1.9.4

type MockSetMockRecorder struct {
	// contains filtered or unexported fields
}

MockSetMockRecorder is the mock recorder for MockSet.

func (*MockSetMockRecorder) Add added in v1.9.4

func (mr *MockSetMockRecorder) Add(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

Add indicates an expected call of Add.

func (*MockSetMockRecorder) AddWeight added in v1.9.4

func (mr *MockSetMockRecorder) AddWeight(arg0, arg1 interface{}) *gomock.Call

AddWeight indicates an expected call of AddWeight.

func (*MockSetMockRecorder) Contains added in v1.9.4

func (mr *MockSetMockRecorder) Contains(arg0 interface{}) *gomock.Call

Contains indicates an expected call of Contains.

func (*MockSetMockRecorder) Get added in v1.9.4

func (mr *MockSetMockRecorder) Get(arg0 interface{}) *gomock.Call

Get indicates an expected call of Get.

func (*MockSetMockRecorder) GetWeight added in v1.9.4

func (mr *MockSetMockRecorder) GetWeight(arg0 interface{}) *gomock.Call

GetWeight indicates an expected call of GetWeight.

func (*MockSetMockRecorder) Len added in v1.9.4

func (mr *MockSetMockRecorder) Len() *gomock.Call

Len indicates an expected call of Len.

func (*MockSetMockRecorder) List added in v1.9.4

func (mr *MockSetMockRecorder) List() *gomock.Call

List indicates an expected call of List.

func (*MockSetMockRecorder) PrefixedString added in v1.9.4

func (mr *MockSetMockRecorder) PrefixedString(arg0 interface{}) *gomock.Call

PrefixedString indicates an expected call of PrefixedString.

func (*MockSetMockRecorder) RegisterCallbackListener added in v1.9.4

func (mr *MockSetMockRecorder) RegisterCallbackListener(arg0 interface{}) *gomock.Call

RegisterCallbackListener indicates an expected call of RegisterCallbackListener.

func (*MockSetMockRecorder) RemoveWeight added in v1.9.4

func (mr *MockSetMockRecorder) RemoveWeight(arg0, arg1 interface{}) *gomock.Call

RemoveWeight indicates an expected call of RemoveWeight.

func (*MockSetMockRecorder) Sample added in v1.9.4

func (mr *MockSetMockRecorder) Sample(arg0 interface{}) *gomock.Call

Sample indicates an expected call of Sample.

func (*MockSetMockRecorder) String added in v1.9.4

func (mr *MockSetMockRecorder) String() *gomock.Call

String indicates an expected call of String.

func (*MockSetMockRecorder) SubsetWeight added in v1.9.4

func (mr *MockSetMockRecorder) SubsetWeight(arg0 interface{}) *gomock.Call

SubsetWeight indicates an expected call of SubsetWeight.

func (*MockSetMockRecorder) Weight added in v1.9.4

func (mr *MockSetMockRecorder) Weight() *gomock.Call

Weight indicates an expected call of Weight.

type MockState added in v1.9.2

type MockState struct {
	// contains filtered or unexported fields
}

MockState is a mock of State interface.

func NewMockState added in v1.9.2

func NewMockState(ctrl *gomock.Controller) *MockState

NewMockState creates a new mock instance.

func (*MockState) EXPECT added in v1.9.2

func (m *MockState) EXPECT() *MockStateMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockState) GetCurrentHeight added in v1.9.2

func (m *MockState) GetCurrentHeight(arg0 context.Context) (uint64, error)

GetCurrentHeight mocks base method.

func (*MockState) GetMinimumHeight added in v1.9.2

func (m *MockState) GetMinimumHeight(arg0 context.Context) (uint64, error)

GetMinimumHeight mocks base method.

func (*MockState) GetSubnetID added in v1.9.5

func (m *MockState) GetSubnetID(arg0 context.Context, arg1 ids.ID) (ids.ID, error)

GetSubnetID mocks base method.

func (*MockState) GetValidatorSet added in v1.9.2

func (m *MockState) GetValidatorSet(arg0 context.Context, arg1 uint64, arg2 ids.ID) (map[ids.NodeID]*GetValidatorOutput, error)

GetValidatorSet mocks base method.

type MockStateMockRecorder added in v1.9.2

type MockStateMockRecorder struct {
	// contains filtered or unexported fields
}

MockStateMockRecorder is the mock recorder for MockState.

func (*MockStateMockRecorder) GetCurrentHeight added in v1.9.2

func (mr *MockStateMockRecorder) GetCurrentHeight(arg0 interface{}) *gomock.Call

GetCurrentHeight indicates an expected call of GetCurrentHeight.

func (*MockStateMockRecorder) GetMinimumHeight added in v1.9.2

func (mr *MockStateMockRecorder) GetMinimumHeight(arg0 interface{}) *gomock.Call

GetMinimumHeight indicates an expected call of GetMinimumHeight.

func (*MockStateMockRecorder) GetSubnetID added in v1.9.5

func (mr *MockStateMockRecorder) GetSubnetID(arg0, arg1 interface{}) *gomock.Call

GetSubnetID indicates an expected call of GetSubnetID.

func (*MockStateMockRecorder) GetValidatorSet added in v1.9.2

func (mr *MockStateMockRecorder) GetValidatorSet(arg0, arg1, arg2 interface{}) *gomock.Call

GetValidatorSet indicates an expected call of GetValidatorSet.

type MockSubnetConnector added in v1.9.4

type MockSubnetConnector struct {
	// contains filtered or unexported fields
}

MockSubnetConnector is a mock of SubnetConnector interface.

func NewMockSubnetConnector added in v1.9.4

func NewMockSubnetConnector(ctrl *gomock.Controller) *MockSubnetConnector

NewMockSubnetConnector creates a new mock instance.

func (*MockSubnetConnector) ConnectedSubnet added in v1.9.4

func (m *MockSubnetConnector) ConnectedSubnet(arg0 context.Context, arg1 ids.NodeID, arg2 ids.ID) error

ConnectedSubnet mocks base method.

func (*MockSubnetConnector) EXPECT added in v1.9.4

EXPECT returns an object that allows the caller to indicate expected use.

type MockSubnetConnectorMockRecorder added in v1.9.4

type MockSubnetConnectorMockRecorder struct {
	// contains filtered or unexported fields
}

MockSubnetConnectorMockRecorder is the mock recorder for MockSubnetConnector.

func (*MockSubnetConnectorMockRecorder) ConnectedSubnet added in v1.9.4

func (mr *MockSubnetConnectorMockRecorder) ConnectedSubnet(arg0, arg1, arg2 interface{}) *gomock.Call

ConnectedSubnet indicates an expected call of ConnectedSubnet.

type Set

type Set interface {
	formatting.PrefixedStringer

	// Add a new staker to the set.
	// Returns an error if:
	// - [weight] is 0
	// - [nodeID] is already in the validator set
	// - the total weight of the validator set would overflow uint64
	// If an error is returned, the set will be unmodified.
	Add(nodeID ids.NodeID, pk *bls.PublicKey, txID ids.ID, weight uint64) error

	// AddWeight to an existing staker.
	// Returns an error if:
	// - [weight] is 0
	// - [nodeID] is not already in the validator set
	// - the total weight of the validator set would overflow uint64
	// If an error is returned, the set will be unmodified.
	AddWeight(nodeID ids.NodeID, weight uint64) error

	// GetWeight retrieves the validator weight from the set.
	GetWeight(ids.NodeID) uint64

	// Get returns the validator tied to the specified ID.
	Get(ids.NodeID) (*Validator, bool)

	// SubsetWeight returns the sum of the weights of the validators.
	SubsetWeight(set.Set[ids.NodeID]) uint64

	// RemoveWeight from a staker. If the staker's weight becomes 0, the staker
	// will be removed from the validator set.
	// Returns an error if:
	// - [weight] is 0
	// - [nodeID] is not already in the validator set
	// - the weight of the validator would become negative
	// If an error is returned, the set will be unmodified.
	RemoveWeight(nodeID ids.NodeID, weight uint64) error

	// Contains returns true if there is a validator with the specified ID
	// currently in the set.
	Contains(ids.NodeID) 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 validatorIDs, potentially with duplicates.
	// If sampling the requested size isn't possible, an error will be returned.
	Sample(size int) ([]ids.NodeID, error)

	// When a validator's weight changes, or a validator is added/removed,
	// this listener is called.
	RegisterCallbackListener(SetCallbackListener)
}

Set of validators that can be sampled

func NewBestSet added in v0.8.0

func NewBestSet(expectedSampleSize int) Set

NewBestSet returns a new, empty set of validators.

func NewSet

func NewSet() Set

NewSet returns a new, empty set of validators.

type SetCallbackListener added in v1.7.11

type SetCallbackListener interface {
	OnValidatorAdded(validatorID ids.NodeID, pk *bls.PublicKey, txID ids.ID, weight uint64)
	OnValidatorRemoved(validatorID ids.NodeID, weight uint64)
	OnValidatorWeightChanged(validatorID ids.NodeID, oldWeight, newWeight uint64)
}

func NewLogger added in v1.9.12

func NewLogger(
	log logging.Logger,
	enabled *utils.Atomic[bool],
	subnetID ids.ID,
	nodeIDs ...ids.NodeID,
) SetCallbackListener

NewLogger returns a callback listener that will log validator set changes for the specified validators

type State added in v1.6.0

type State interface {
	// GetMinimumHeight returns the minimum height of the block still in the
	// proposal window.
	GetMinimumHeight(context.Context) (uint64, error)
	// GetCurrentHeight returns the current height of the P-chain.
	GetCurrentHeight(context.Context) (uint64, error)

	// GetSubnetID returns the subnetID of the provided chain.
	GetSubnetID(ctx context.Context, chainID ids.ID) (ids.ID, error)

	// GetValidatorSet returns the validators of the provided subnet at the
	// requested P-chain height.
	// The returned map should not be modified.
	GetValidatorSet(
		ctx context.Context,
		height uint64,
		subnetID ids.ID,
	) (map[ids.NodeID]*GetValidatorOutput, error)
}

State allows the lookup of validator sets on specified subnets at the requested P-chain height.

func NewLockedState added in v1.6.0

func NewLockedState(lock sync.Locker, s State) State

func NewNoValidatorsState added in v1.7.14

func NewNoValidatorsState(state State) State

func Trace added in v1.9.3

func Trace(s State, name string, tracer trace.Tracer) State

type SubnetConnector added in v1.9.4

type SubnetConnector interface {
	ConnectedSubnet(ctx context.Context, nodeID ids.NodeID, subnetID ids.ID) error
}

SubnetConnector represents a handler that is called when a connection is marked as connected to a subnet

var UnhandledSubnetConnector SubnetConnector = &unhandledSubnetConnector{}

type TestState added in v1.6.0

type TestState struct {
	T *testing.T

	CantGetMinimumHeight,
	CantGetCurrentHeight,
	CantGetSubnetID,
	CantGetValidatorSet bool

	GetMinimumHeightF func(ctx context.Context) (uint64, error)
	GetCurrentHeightF func(ctx context.Context) (uint64, error)
	GetSubnetIDF      func(ctx context.Context, chainID ids.ID) (ids.ID, error)
	GetValidatorSetF  func(ctx context.Context, height uint64, subnetID ids.ID) (map[ids.NodeID]*GetValidatorOutput, error)
}

func (*TestState) GetCurrentHeight added in v1.6.0

func (vm *TestState) GetCurrentHeight(ctx context.Context) (uint64, error)

func (*TestState) GetMinimumHeight added in v1.7.10

func (vm *TestState) GetMinimumHeight(ctx context.Context) (uint64, error)

func (*TestState) GetSubnetID added in v1.9.5

func (vm *TestState) GetSubnetID(ctx context.Context, chainID ids.ID) (ids.ID, error)

func (*TestState) GetValidatorSet added in v1.6.0

func (vm *TestState) GetValidatorSet(
	ctx context.Context,
	height uint64,
	subnetID ids.ID,
) (map[ids.NodeID]*GetValidatorOutput, error)

type Validator

type Validator struct {
	NodeID    ids.NodeID
	PublicKey *bls.PublicKey
	TxID      ids.ID
	Weight    uint64
	// contains filtered or unexported fields
}

Validator is a struct that contains the base values representing a validator of the Avalanche Network.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL