scheme

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2018 License: Apache-2.0 Imports: 10 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 BroadcastCB

type BroadcastCB func(*blockchain.Block) error

BroadcastCB defines the callback to publish the consensus result

type ConsensusDoneCB

type ConsensusDoneCB func(*blockchain.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
	Candidates          []string
}

ConsensusMetrics contains consensus metrics to expose

type CreateBlockCB

type CreateBlockCB func() (*blockchain.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) HandleBlockPropose added in v0.4.0

func (n *Noop) HandleBlockPropose(propose *iproto.ProposePb) error

HandleBlockPropose handles incoming block propose

func (*Noop) HandleEndorse added in v0.4.0

func (n *Noop) HandleEndorse(endorse *iproto.EndorsePb) error

HandleEndorse handles incoming block propose

func (*Noop) Metrics added in v0.2.0

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

Metrics is not implemented for standalone scheme

func (*Noop) SetDoneStream added in v0.2.0

func (n *Noop) SetDoneStream(done chan bool)

SetDoneStream does nothing for Noop (only used in simulator)

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

type Scheme

type Scheme interface {
	lifecycle.StartStopper

	HandleBlockPropose(propose *iproto.ProposePb) error
	HandleEndorse(endorse *iproto.EndorsePb) error
	SetDoneStream(chan bool)
	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) HandleBlockPropose added in v0.4.0

func (n *Standalone) HandleBlockPropose(propose *iproto.ProposePb) error

HandleBlockPropose handles incoming block propose

func (*Standalone) HandleEndorse added in v0.4.0

func (n *Standalone) HandleEndorse(endorse *iproto.EndorsePb) error

HandleEndorse handles incoming block propose

func (*Standalone) Metrics added in v0.2.0

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

Metrics is not implemented for standalone scheme

func (*Standalone) SetDoneStream added in v0.2.0

func (n *Standalone) SetDoneStream(done chan bool)

SetDoneStream does nothing in Standalone (only used in simulator)

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

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