Documentation
¶
Index ¶
Constants ¶
const ( Initializing = iota StateSyncing Bootstrapping NormalOp )
Variables ¶
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
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.
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. |