proposal

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2021 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Engine

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

Engine is the collection proposal engine, which packages pending transactions into collections and sends them to consensus nodes.

func New

func New(
	log zerolog.Logger,
	net module.Network,
	me module.Local,
	colMetrics module.CollectionMetrics,
	engMetrics module.EngineMetrics,
	mempoolMetrics module.MempoolMetrics,
	protoState protocol.State,
	clusterState clusterkv.MutableState,
	transactions storage.Transactions,
	headers storage.Headers,
	payloads storage.ClusterPayloads,
	cache module.PendingClusterBlockBuffer,
) (*Engine, error)

New returns a new collection proposal engine.

func (*Engine) BroadcastProposal

func (e *Engine) BroadcastProposal(header *flow.Header) error

BroadcastProposal submits a cluster block proposal (effectively a proposal for the next collection) to all the collection nodes in our cluster.

func (*Engine) BroadcastProposalWithDelay

func (e *Engine) BroadcastProposalWithDelay(header *flow.Header, delay time.Duration) error

BroadcastProposalWithDelay submits a cluster block proposal (effectively a proposal for the next collection) to all the collection nodes in our cluster.

func (*Engine) Done

func (e *Engine) Done() <-chan struct{}

Done returns a done channel that is closed once the engine has fully stopped.

func (*Engine) Process

func (e *Engine) Process(channel network.Channel, originID flow.Identifier, event interface{}) error

Process processes the given event from the node with the given origin ID in a blocking manner. It returns the potential processing error when done.

func (*Engine) ProcessLocal

func (e *Engine) ProcessLocal(event interface{}) error

ProcessLocal processes an event originating on the local node.

func (*Engine) Ready

func (e *Engine) Ready() <-chan struct{}

Ready returns a ready channel that is closed once the engine has fully started. For proposal engine, this is true once the underlying consensus algorithm has started.

func (*Engine) SendVote

func (e *Engine) SendVote(blockID flow.Identifier, view uint64, sigData []byte, recipientID flow.Identifier) error

SendVote will send a vote to the desired node.

func (*Engine) Submit

func (e *Engine) Submit(channel network.Channel, originID flow.Identifier, event interface{})

Submit submits the given event from the node with the given origin ID for processing in a non-blocking manner. It returns instantly and logs a potential processing error internally when done.

func (*Engine) SubmitLocal

func (e *Engine) SubmitLocal(event interface{})

SubmitLocal submits an event originating on the local node.

func (*Engine) WithHotStuff

func (e *Engine) WithHotStuff(hot module.HotStuff) *Engine

func (*Engine) WithSync

func (e *Engine) WithSync(sync module.BlockRequester) *Engine

Jump to

Keyboard shortcuts

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