scheme

package
v1.12.1-rc0 Latest Latest
Warning

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

Go to latest
Published: Nov 2, 2023 License: Apache-2.0 Imports: 11 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNotImplemented indicates the method is not implemented yet
	ErrNotImplemented = errors.New("not implemented")
)

Functions

This section is empty.

Types

type Broadcast added in v0.4.4

type Broadcast func(msg proto.Message) error

Broadcast sends a broadcast message to the whole network

type BroadcastCB

type BroadcastCB func(*block.Block) error

BroadcastCB defines the callback to publish the consensus result

type ConsensusDoneCB

type ConsensusDoneCB func(*block.Block) error

ConsensusDoneCB defines the callback when consensus is reached

type ConsensusMetrics added in v0.2.0

type ConsensusMetrics struct {
	LatestEpoch         uint64
	LatestHeight        uint64
	LatestDelegates     []string
	LatestBlockProducer string
}

ConsensusMetrics contains consensus metrics to expose

type CreateBlockCB

type CreateBlockCB func() (*block.Block, error)

CreateBlockCB defines the callback to create a new block

type Noop

type Noop struct {
}

Noop is the consensus scheme that does NOT create blocks

func (*Noop) Activate added in v0.5.0

func (n *Noop) Activate(_ bool)

Activate is not implemented for noop scheme

func (*Noop) Active added in v0.5.0

func (n *Noop) Active() bool

Active is always true for noop scheme

func (*Noop) Calibrate added in v0.4.4

func (n *Noop) Calibrate(uint64)

Calibrate triggers an event to calibrate consensus context

func (*Noop) HandleConsensusMsg added in v0.4.4

func (n *Noop) HandleConsensusMsg(*iotextypes.ConsensusMessage) error

HandleConsensusMsg handles incoming consensus message

func (*Noop) Metrics added in v0.2.0

func (n *Noop) Metrics() (ConsensusMetrics, error)

Metrics is not implemented for noop scheme

func (*Noop) Start

func (n *Noop) Start(_ context.Context) error

Start does nothing here

func (*Noop) Stop

func (n *Noop) Stop(_ context.Context) error

Stop does nothing here

func (*Noop) ValidateBlockFooter added in v0.4.4

func (n *Noop) ValidateBlockFooter(*block.Block) error

ValidateBlockFooter validates the block footer

type Scheme

type Scheme interface {
	lifecycle.StartStopper

	HandleConsensusMsg(msg *iotextypes.ConsensusMessage) error
	Calibrate(uint64)
	ValidateBlockFooter(*block.Block) error
	Metrics() (ConsensusMetrics, error)
	Activate(bool)
	Active() bool
}

Scheme is the interface that consensus schemes should implement

func NewNoop

func NewNoop() Scheme

NewNoop creates a Noop struct

func NewStandalone

func NewStandalone(create CreateBlockCB, commit ConsensusDoneCB, pub BroadcastCB, bc blockchain.Blockchain, interval time.Duration) Scheme

NewStandalone creates a Standalone struct.

type Standalone

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

Standalone is the consensus scheme that periodically create blocks

func (*Standalone) Activate added in v0.5.0

func (s *Standalone) Activate(_ bool)

Activate is not implemented for standalone scheme

func (*Standalone) Active added in v0.5.0

func (s *Standalone) Active() bool

Active is always true for standalone scheme

func (*Standalone) Calibrate added in v0.4.4

func (s *Standalone) Calibrate(uint64)

Calibrate triggers an event to calibrate consensus context

func (*Standalone) HandleConsensusMsg added in v0.4.4

func (s *Standalone) HandleConsensusMsg(msg *iotextypes.ConsensusMessage) error

HandleConsensusMsg handles incoming consensus message

func (*Standalone) Metrics added in v0.2.0

func (s *Standalone) Metrics() (ConsensusMetrics, error)

Metrics is not implemented for standalone scheme

func (*Standalone) Start

func (s *Standalone) Start(ctx context.Context) error

Start starts the service for a standalone

func (*Standalone) Stop

func (s *Standalone) Stop(ctx context.Context) error

Stop stops the service for a standalone

func (*Standalone) ValidateBlockFooter added in v0.4.4

func (s *Standalone) ValidateBlockFooter(*block.Block) error

ValidateBlockFooter validates signatures in block footer

type TellPeerCB

type TellPeerCB func(proto.Message) error

TellPeerCB defines the callback to tell (which is a unicast) message to peers on P2P network

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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