validators

package
v0.0.0-...-6519026 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2024 License: BSD-3-Clause Imports: 26 Imported by: 3

Documentation

Overview

Package validators is a generated GoMock package.

Package validators is a generated GoMock package.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrZeroWeight        = errors.New("weight must be non-zero")
	ErrMissingValidators = errors.New("missing validators")
)

Functions

This section is empty.

Types

type Connector

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

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 new staker to the supernet.
	// Returns an error if:
	// - [weight] is 0
	// - [nodeID] is already in the validator set
	// If an error is returned, the set will be unmodified.
	AddStaker(supernetID ids.ID, nodeID ids.NodeID, pk *bls.PublicKey, txID ids.ID, weight uint64) error

	// AddWeight to an existing staker to the supernet.
	// Returns an error if:
	// - [weight] is 0
	// - [nodeID] is not already in the validator set
	// If an error is returned, the set will be unmodified.
	// AddWeight can result in a total weight that overflows uint64.
	// In this case no error will be returned for this call.
	// However, the next TotalWeight call will return an error.
	AddWeight(supernetID ids.ID, nodeID ids.NodeID, weight uint64) error

	// GetWeight retrieves the validator weight from the supernet.
	GetWeight(supernetID ids.ID, nodeID ids.NodeID) uint64

	// GetValidator returns the validator tied to the specified ID in supernet.
	// If the validator doesn't exist, returns false.
	GetValidator(supernetID ids.ID, nodeID ids.NodeID) (*Validator, bool)

	// GetValidatoIDs returns the validator IDs in the supernet.
	GetValidatorIDs(supernetID ids.ID) []ids.NodeID

	// SubsetWeight returns the sum of the weights of the validators in the supernet.
	// Returns err if subset weight overflows uint64.
	SubsetWeight(supernetID ids.ID, validatorIDs set.Set[ids.NodeID]) (uint64, error)

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

	// Count returns the number of validators currently in the supernet.
	Count(supernetID ids.ID) int

	// TotalWeight returns the cumulative weight of all validators in the supernet.
	// Returns err if total weight overflows uint64.
	TotalWeight(supernetID ids.ID) (uint64, error)

	// Sample returns a collection of validatorIDs in the supernet, potentially with duplicates.
	// If sampling the requested size isn't possible, an error will be returned.
	Sample(supernetID ids.ID, size int) ([]ids.NodeID, error)

	// Map of the validators in this supernet
	GetMap(supernetID ids.ID) map[ids.NodeID]*GetValidatorOutput

	// When a validator is added, removed, or its weight changes, the listener
	// will be notified of the event.
	RegisterCallbackListener(listener ManagerCallbackListener)

	// When a validator is added, removed, or its weight changes on [supernetID],
	// the listener will be notified of the event.
	RegisterSetCallbackListener(supernetID ids.ID, listener SetCallbackListener)
}

Manager holds the validator set of each supernet

func NewManager

func NewManager() Manager

NewManager returns a new, empty manager

type ManagerCallbackListener

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

type MockState

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

MockState is a mock of State interface.

func NewMockState

func NewMockState(ctrl *gomock.Controller) *MockState

NewMockState creates a new mock instance.

func (*MockState) EXPECT

func (m *MockState) EXPECT() *MockStateMockRecorder

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

func (*MockState) GetCurrentHeight

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

GetCurrentHeight mocks base method.

func (*MockState) GetMinimumHeight

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

GetMinimumHeight mocks base method.

func (*MockState) GetSupernetID

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

GetSupernetID mocks base method.

func (*MockState) GetValidatorSet

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

GetValidatorSet mocks base method.

type MockStateMockRecorder

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

MockStateMockRecorder is the mock recorder for MockState.

func (*MockStateMockRecorder) GetCurrentHeight

func (mr *MockStateMockRecorder) GetCurrentHeight(arg0 any) *gomock.Call

GetCurrentHeight indicates an expected call of GetCurrentHeight.

func (*MockStateMockRecorder) GetMinimumHeight

func (mr *MockStateMockRecorder) GetMinimumHeight(arg0 any) *gomock.Call

GetMinimumHeight indicates an expected call of GetMinimumHeight.

func (*MockStateMockRecorder) GetSupernetID

func (mr *MockStateMockRecorder) GetSupernetID(arg0, arg1 any) *gomock.Call

GetSupernetID indicates an expected call of GetSupernetID.

func (*MockStateMockRecorder) GetValidatorSet

func (mr *MockStateMockRecorder) GetValidatorSet(arg0, arg1, arg2 any) *gomock.Call

GetValidatorSet indicates an expected call of GetValidatorSet.

type MockSupernetConnector

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

MockSupernetConnector is a mock of SupernetConnector interface.

func NewMockSupernetConnector

func NewMockSupernetConnector(ctrl *gomock.Controller) *MockSupernetConnector

NewMockSupernetConnector creates a new mock instance.

func (*MockSupernetConnector) ConnectedSupernet

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

ConnectedSupernet mocks base method.

func (*MockSupernetConnector) EXPECT

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

type MockSupernetConnectorMockRecorder

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

MockSupernetConnectorMockRecorder is the mock recorder for MockSupernetConnector.

func (*MockSupernetConnectorMockRecorder) ConnectedSupernet

func (mr *MockSupernetConnectorMockRecorder) ConnectedSupernet(arg0, arg1, arg2 any) *gomock.Call

ConnectedSupernet indicates an expected call of ConnectedSupernet.

type SetCallbackListener

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

func NewLogger

func NewLogger(
	log logging.Logger,
	supernetID ids.ID,
	nodeIDs ...ids.NodeID,
) SetCallbackListener

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

type State

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)

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

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

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

func NewLockedState

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

func NewNoValidatorsState

func NewNoValidatorsState(state State) State

func Trace

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

type SupernetConnector

type SupernetConnector interface {
	ConnectedSupernet(ctx context.Context, nodeID ids.NodeID, supernetID ids.ID) error
}

SupernetConnector represents a handler that is called when a connection is marked as connected to a supernet

var UnhandledSupernetConnector SupernetConnector = &unhandledSupernetConnector{}

type TestState

type TestState struct {
	T testing.TB

	CantGetMinimumHeight,
	CantGetCurrentHeight,
	CantGetSupernetID,
	CantGetValidatorSet bool

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

func (*TestState) GetCurrentHeight

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

func (*TestState) GetMinimumHeight

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

func (*TestState) GetSupernetID

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

func (*TestState) GetValidatorSet

func (vm *TestState) GetValidatorSet(
	ctx context.Context,
	height uint64,
	supernetID 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