common

package
v1.0.0-genesis Latest Latest
Warning

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

Go to latest
Published: Aug 2, 2025 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppError added in v1.11.10

type AppError struct {
	Code    int32
	Message string
}

AppError represents an application-level error

type AppHandler added in v1.11.10

type AppHandler interface {
	// AppRequest handles an application-level request to this node.
	AppRequest(
		ctx context.Context,
		nodeID ids.NodeID,
		requestID uint32,
		deadline time.Time,
		msg []byte,
	) error

	// AppResponse handles an application-level response to a request this node
	// sent.
	AppResponse(
		ctx context.Context,
		nodeID ids.NodeID,
		requestID uint32,
		msg []byte,
	) error

	// AppRequestFailed notifies the consensus engine that an AppRequest it
	// sent failed or timed out.
	AppRequestFailed(
		ctx context.Context,
		nodeID ids.NodeID,
		requestID uint32,
		appErr *AppError,
	) error

	// CrossChainAppRequest handles a cross-chain request.
	CrossChainAppRequest(
		ctx context.Context,
		chainID ids.ID,
		requestID uint32,
		deadline time.Time,
		msg []byte,
	) error

	// CrossChainAppResponse handles a cross-chain response to a request this
	// node sent.
	CrossChainAppResponse(
		ctx context.Context,
		chainID ids.ID,
		requestID uint32,
		msg []byte,
	) error

	// CrossChainAppRequestFailed notifies the consensus engine that a
	// CrossChainAppRequest it sent failed or timed out.
	CrossChainAppRequestFailed(
		ctx context.Context,
		chainID ids.ID,
		requestID uint32,
		appErr *AppError,
	) error
}

AppHandler defines application-level functionality that must be implemented by a consensus engine

type AppMessage

type AppMessage interface {
	Message
}

AppMessage represents an application message

type AppSender added in v1.11.10

type AppSender interface {
	// SendAppRequest sends an application request
	SendAppRequest(nodeID ids.NodeID, requestID uint32, msg []byte) error

	// SendAppResponse sends an application response
	SendAppResponse(nodeID ids.NodeID, requestID uint32, msg []byte) error

	// SendCrossChainAppRequest sends a cross-chain application request
	SendCrossChainAppRequest(chainID ids.ID, requestID uint32, msg []byte) error

	// SendCrossChainAppResponse sends a cross-chain application response
	SendCrossChainAppResponse(chainID ids.ID, requestID uint32, msg []byte) error
}

AppSender sends application messages

type Engine

type Engine interface {
	Handler

	// GetVM returns this engine's VM
	GetVM() interface{}
}

Engine describes the common functionality of all consensus engines

type Fx

type Fx struct{}

Fx represents an extension feature

type Handler

type Handler interface {
	AppHandler

	// Notify this engine of peer changes.
	Connected(ctx context.Context, nodeID ids.NodeID, nodeVersion *version.Application) error
	Disconnected(ctx context.Context, nodeID ids.NodeID) error

	// HealthCheck returns nil if this engine is healthy.
	// Otherwise, it should return an error that will prevent the node from
	// reporting healthy.
	HealthCheck(ctx context.Context) (interface{}, error)
}

Handler defines the functions that a consensus engine must implement

type Message

type Message interface {
	// InboundMessage returns the inbound message
	InboundMessage() Message

	// OnFinalize is called when the message is finalized
	OnFinalize()

	// OnDrop is called when the message is dropped
	OnDrop()
}

Message represents a consensus message

type SendAppError

type SendAppError func(nodeID ids.NodeID, requestID uint32, errorCode int32, errorMessage string) error

SendAppError is used to send an application-level error message.

Jump to

Keyboard shortcuts

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