Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
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
LatestDelegates []net.Addr
LatestBlockProducer net.Addr
Candidates []net.Addr
}
ConsensusMetrics contains consensus metrics to expose
type CreateBlockCB ¶
type CreateBlockCB func() (*blockchain.Block, error)
CreateBlockCB defines the callback to create a new block
type GenerateDKGCB ¶ added in v0.2.0
GenerateDKGCB defines the callback to generate DKG bytes
type GetProposerCB ¶ added in v0.2.0
GetProposerCB defines the callback to check the if itself is the the proposer for the coming round
type Noop ¶
type Noop struct {
}
Noop is the consensus scheme that does NOT create blocks
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
SetDoneStream does nothing for Noop (only used in simulator)
type Scheme ¶
type Scheme interface {
Start() error
Stop() error
Handle(msg proto.Message) error
SetDoneStream(chan bool)
Metrics() (ConsensusMetrics, error)
}
Scheme is the interface that consensus schemes should implement
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) Handle ¶
func (n *Standalone) Handle(message proto.Message) error
Handle handles incoming requests
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() error
Start starts the service for a standalone
type StartNextEpochCB ¶ added in v0.2.0
StartNextEpochCB defines the callback to check if the next epoch should start
type TellPeerCB ¶
TellPeerCB defines the callback to tell (which is a unicast) message to peers on P2P network