scheme

package
v0.5.0-rc6 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2019 License: Apache-2.0 Imports: 11 Imported by: 0

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

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

type ConsensusMetrics struct {
	LatestEpoch         uint64
	LatestHeight        uint64
	LatestDelegates     []string
	LatestBlockProducer string
	Candidates          []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) Calibrate

func (n *Noop) Calibrate(uint64)

Calibrate triggers an event to calibrate consensus context

func (*Noop) HandleConsensusMsg

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

HandleConsensusMsg handles incoming consensus message

func (*Noop) Metrics

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

Metrics is not implemented for standalone 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

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)
}

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) Calibrate

func (n *Standalone) Calibrate(uint64)

Calibrate triggers an event to calibrate consensus context

func (*Standalone) HandleConsensusMsg

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

HandleConsensusMsg handles incoming consensus message

func (*Standalone) Metrics

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

Metrics is not implemented for standalone scheme

func (*Standalone) Start

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

Start starts the service for a standalone

func (*Standalone) Stop

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

Stop stops the service for a standalone

func (*Standalone) ValidateBlockFooter

func (n *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