consensus

package
v1.11.2-rc0 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2023 License: Apache-2.0 Imports: 17 Imported by: 10

Documentation

Index

Constants

View Source
const (
	// RollDPoSScheme means randomized delegated proof of stake
	RollDPoSScheme = "ROLLDPOS"
	// StandaloneScheme means that the node creates a block periodically regardless of others (if there is any)
	StandaloneScheme = "STANDALONE"
	// NOOPScheme means that the node does not create only block
	NOOPScheme = "NOOP"
)

Variables

View Source
var (
	//DefaultConfig is the default config for blocksync
	DefaultConfig = Config{
		Scheme:   StandaloneScheme,
		RollDPoS: rolldpos.DefaultConfig,
	}
)

Functions

This section is empty.

Types

type Config added in v1.10.0

type Config struct {
	// There are three schemes that are supported
	Scheme   string          `yaml:"scheme"`
	RollDPoS rolldpos.Config `yaml:"rollDPoS"`
}

Config is the config struct for consensus package

type Consensus

type Consensus interface {
	lifecycle.StartStopper

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

Consensus is the interface for handling IotxConsensus view change.

func NewConsensus

func NewConsensus(
	cfg rolldpos.BuilderConfig,
	bc blockchain.Blockchain,
	sf factory.Factory,
	opts ...Option,
) (Consensus, error)

NewConsensus creates a IotxConsensus struct.

type IotxConsensus added in v0.2.0

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

IotxConsensus implements Consensus

func (*IotxConsensus) Activate added in v0.5.0

func (c *IotxConsensus) Activate(active bool)

Activate activates or pauses the consensus component

func (*IotxConsensus) Active added in v0.5.0

func (c *IotxConsensus) Active() bool

Active returns true if the consensus component is active or false if it stands by

func (*IotxConsensus) Calibrate added in v0.4.4

func (c *IotxConsensus) Calibrate(height uint64)

Calibrate triggers an event to calibrate consensus context

func (*IotxConsensus) HandleConsensusMsg added in v0.4.4

func (c *IotxConsensus) HandleConsensusMsg(msg *iotextypes.ConsensusMessage) error

HandleConsensusMsg handles consensus messages

func (*IotxConsensus) Metrics added in v0.2.0

func (c *IotxConsensus) Metrics() (scheme.ConsensusMetrics, error)

Metrics returns consensus metrics

func (*IotxConsensus) Scheme added in v0.2.0

func (c *IotxConsensus) Scheme() scheme.Scheme

Scheme returns the scheme instance

func (*IotxConsensus) Start added in v0.2.0

func (c *IotxConsensus) Start(ctx context.Context) error

Start starts running the consensus algorithm

func (*IotxConsensus) Stop added in v0.2.0

func (c *IotxConsensus) Stop(ctx context.Context) error

Stop stops running the consensus algorithm

func (*IotxConsensus) ValidateBlockFooter added in v0.4.4

func (c *IotxConsensus) ValidateBlockFooter(blk *block.Block) error

ValidateBlockFooter validates the signatures in block footer

type Option added in v0.4.0

type Option func(op *optionParams) error

Option sets Consensus construction parameter.

func WithBroadcast added in v0.4.4

func WithBroadcast(broadcastHandler scheme.Broadcast) Option

WithBroadcast is an option to add broadcast callback to Consensus

func WithPollProtocol added in v0.11.0

func WithPollProtocol(pp poll.Protocol) Option

WithPollProtocol is an option to register poll protocol

func WithRollDPoSProtocol added in v0.5.0

func WithRollDPoSProtocol(rp *rp.Protocol) Option

WithRollDPoSProtocol is an option to register rolldpos protocol

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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