snow

package
v1.7.17-rc.18 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2022 License: BSD-3-Clause Imports: 14 Imported by: 289

Documentation

Index

Constants

View Source
const (
	Initializing = iota
	StateSyncing
	Bootstrapping
	NormalOp
)

Variables

View Source
var ErrUnknownState = errors.New("unknown state")

Functions

This section is empty.

Types

type Acceptor added in v1.7.3

type Acceptor interface {
	// Accept must be called before [containerID] is committed to the VM as
	// accepted.
	//
	// If the returned error is non-nil, the chain associated with [ctx] should
	// shut down and not commit [container] or any other container to its
	// database as accepted.
	Accept(ctx *ConsensusContext, containerID ids.ID, container []byte) error
}

Acceptor is implemented when a struct is monitoring if a message is accepted

type AcceptorGroup added in v1.7.11

type AcceptorGroup interface {
	// Calling Accept() calls all of the registered acceptors for the relevant
	// chain.
	Acceptor

	// RegisterAcceptor causes [acceptor] to be called every time an operation
	// is accepted on chain [chainID].
	// If [dieOnError], chain [chainID] stops if Accept returns a non-nil error.
	RegisterAcceptor(chainID ids.ID, acceptorName string, acceptor Acceptor, dieOnError bool) error

	// DeregisterAcceptor removes an acceptor from the group.
	DeregisterAcceptor(chainID ids.ID, acceptorName string) error
}

func NewAcceptorGroup added in v1.7.11

func NewAcceptorGroup(log logging.Logger) AcceptorGroup

type AcceptorTracker added in v1.7.11

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

AcceptorTracker tracks the dispatched accept events by its ID and counts. Useful for testing.

func NewAcceptorTracker added in v1.7.11

func NewAcceptorTracker() *AcceptorTracker

func (*AcceptorTracker) Accept added in v1.7.11

func (a *AcceptorTracker) Accept(ctx *ConsensusContext, containerID ids.ID, container []byte) error

func (*AcceptorTracker) IsAccepted added in v1.7.11

func (a *AcceptorTracker) IsAccepted(containerID ids.ID) (int, bool)

type ConsensusContext added in v1.7.0

type ConsensusContext struct {
	*Context

	Registerer Registerer

	// DecisionAcceptor is the callback that will be fired whenever a VM is
	// notified that their object, either a block in snowman or a transaction
	// in avalanche, was accepted.
	DecisionAcceptor Acceptor

	// ConsensusAcceptor is the callback that will be fired whenever a
	// container, either a block in snowman or a vertex in avalanche, was
	// accepted.
	ConsensusAcceptor Acceptor
	// contains filtered or unexported fields
}

func DefaultConsensusContextTest added in v1.7.0

func DefaultConsensusContextTest() *ConsensusContext

func (*ConsensusContext) Executing added in v1.7.0

func (ctx *ConsensusContext) Executing(b bool)

Executing marks this chain as executing or not. Set to "true" if there's an ongoing transaction.

func (*ConsensusContext) GetState added in v1.7.4

func (ctx *ConsensusContext) GetState() State

func (*ConsensusContext) IsExecuting added in v1.7.0

func (ctx *ConsensusContext) IsExecuting() bool

IsExecuting returns true iff this chain is still executing transactions.

func (*ConsensusContext) IsValidatorOnly added in v1.7.0

func (ctx *ConsensusContext) IsValidatorOnly() bool

IsValidatorOnly returns true iff this chain is available only to validators

func (*ConsensusContext) SetState added in v1.7.4

func (ctx *ConsensusContext) SetState(newState State)

func (*ConsensusContext) SetValidatorOnly added in v1.7.0

func (ctx *ConsensusContext) SetValidatorOnly()

SetValidatorOnly marks this chain as available only to validators

type Context

type Context struct {
	NetworkID uint32
	SubnetID  ids.ID
	ChainID   ids.ID
	NodeID    ids.NodeID

	XChainID    ids.ID
	AVAXAssetID ids.ID

	Log          logging.Logger
	Lock         sync.RWMutex
	Keystore     keystore.BlockchainKeystore
	SharedMemory atomic.SharedMemory
	BCLookup     ids.AliaserReader
	SNLookup     SubnetLookup
	Metrics      metrics.OptionalGatherer

	// snowman++ attributes
	ValidatorState    validators.State  // interface for P-Chain validators
	StakingLeafSigner crypto.Signer     // block signer
	StakingCertLeaf   *x509.Certificate // block certificate
}

Context is information about the current execution. [NetworkID] is the ID of the network this context exists within. [ChainID] is the ID of the chain this context exists within. [NodeID] is the ID of this node

func DefaultContextTest

func DefaultContextTest() *Context

type ContextInitializable added in v1.4.12

type ContextInitializable interface {
	// InitCtx initializes an object provided a *Context object
	InitCtx(ctx *Context)
}

ContextInitializable represents an object that can be initialized given a *Context object

type Registerer added in v1.7.14

type Registerer interface {
	prometheus.Registerer
	prometheus.Gatherer
}

Expose gatherer interface for unit testing.

type State added in v1.7.4

type State uint8

func (State) String added in v1.7.4

func (st State) String() string

type SubnetLookup added in v0.8.0

type SubnetLookup interface {
	SubnetID(chainID ids.ID) (ids.ID, error)
}

Directories

Path Synopsis
consensus
engine
avalanche/state
Package state manages the meta-data required by consensus for an avalanche dag.
Package state manages the meta-data required by consensus for an avalanche dag.
snowman/block/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
networking
tracker
Package tracker is a generated GoMock package.
Package tracker is a generated GoMock package.

Jump to

Keyboard shortcuts

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