Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNotConnectedEnoughStake = errors.New("not connected to enough stake")
Functions ¶
This section is empty.
Types ¶
type Engine ¶ added in v1.9.12
type Engine struct {
StateSyncer common.StateSyncer
Bootstrapper common.BootstrapableEngine
Consensus common.Engine
}
Engine is a wrapper around a consensus engine's components.
type EngineManager ¶ added in v1.9.12
EngineManager resolves the engine that should be used given the current execution context of the chain.
func (*EngineManager) Get ¶ added in v1.9.12
func (e *EngineManager) Get(engineType p2p.EngineType) *Engine
Get returns the engine corresponding to the provided type if possible. If an engine type is not specified, the initial engine type is returned.
type Handler ¶
type Handler interface {
common.Timer
health.Checker
Context() *snow.ConsensusContext
// ShouldHandle returns true if the node with the given ID is allowed to send
// messages to this chain. If the node is not allowed to send messages to
// this chain, the message should be dropped.
ShouldHandle(nodeID ids.NodeID) bool
SetEngineManager(engineManager *EngineManager)
GetEngineManager() *EngineManager
SetOnStopped(onStopped func())
Start(ctx context.Context, recoverPanic bool)
Push(ctx context.Context, msg Message)
Len() int
Stop(ctx context.Context)
StopWithError(ctx context.Context, err error)
// AwaitStopped returns an error if the call would block and [ctx] is done.
// Even if [ctx] is done when passed into this function, this function will
// return a nil error if it will not block.
AwaitStopped(ctx context.Context) (time.Duration, error)
}
func New ¶ added in v1.7.5
func New( ctx *snow.ConsensusContext, validators validators.Manager, msgFromVMChan <-chan common.Message, gossipFrequency time.Duration, threadPoolSize int, resourceTracker tracker.ResourceTracker, subnet subnets.Subnet, peerTracker commontracker.Peers, p2pTracker *p2p.PeerTracker, reg prometheus.Registerer, haltBootstrapping func(), ) (Handler, error)
Initialize this consensus handler [engine] must be initialized before initializing this handler
type Message ¶ added in v1.9.12
type Message struct {
// The original message from the peer
message.InboundMessage
// The desired engine type to execute this message. If not specified,
// the current executing engine type is used.
EngineType p2p.EngineType
}
Message defines individual messages that have been parsed from the network and are now pending execution from the chain.
type MessageQueue ¶ added in v1.7.5
type MessageQueue interface {
// Add a message.
//
// If called after [Shutdown], the message will immediately be marked as
// having been handled.
Push(context.Context, Message)
// Remove and return a message and its context.
//
// If there are no available messages, this function will block until a
// message becomes available or the queue is [Shutdown].
Pop() (context.Context, Message, bool)
// Returns the number of messages currently on the queue
Len() int
// Shutdown and empty the queue.
Shutdown()
}
func NewMessageQueue ¶ added in v1.7.5
func NewMessageQueue( log logging.Logger, subnetID ids.ID, vdrs validators.Manager, cpuTracker tracker.Tracker, metricsNamespace string, reg prometheus.Registerer, ) (MessageQueue, error)
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package handlermock is a generated GoMock package.
|
Package handlermock is a generated GoMock package. |
Click to show internal directories.
Click to hide internal directories.