Documentation ¶
Index ¶
- Constants
- func GetConstructor(cfg *config.ConsensusConfig, hub *component.ComponentHub, ...) consensus.Constructor
- func Init(bpCount uint16)
- func New(cfg *config.ConsensusConfig, hub *component.ComponentHub, ...) (consensus.Consensus, error)
- type BlockFactory
- type DPoS
- func (dpos *DPoS) BlockFactory() consensus.BlockFactory
- func (dpos *DPoS) IsBlockValid(block *types.Block, bestBlock *types.Block) error
- func (dpos *DPoS) IsTransactionValid(tx *types.Tx) bool
- func (dpos *DPoS) QueueJob(now time.Time, jq chan<- interface{})
- func (dpos *DPoS) QuitChan() chan interface{}
- func (dpos *DPoS) SetChainAccessor(chainAccessor types.ChainAccessor)
- func (dpos *DPoS) SetStateDB(sdb *state.ChainStateDB)
- func (dpos *DPoS) Ticker() *time.Ticker
- type Status
Constants ¶
const DefaultDposBpNumber = 23
DefaultDposBpNumber is the default number of block producers.
Variables ¶
This section is empty.
Functions ¶
func GetConstructor ¶ added in v0.9.4
func GetConstructor(cfg *config.ConsensusConfig, hub *component.ComponentHub, cdb consensus.ChainDB) consensus.Constructor
GetConstructor build and returns consensus.Constructor from New function.
Types ¶
type BlockFactory ¶
type BlockFactory struct { *component.ComponentHub ID string // contains filtered or unexported fields }
BlockFactory is the main data structure for DPoS block factory.
func NewBlockFactory ¶
func NewBlockFactory(hub *component.ComponentHub, quitC <-chan interface{}) *BlockFactory
NewBlockFactory returns a new BlockFactory
func (*BlockFactory) JobQueue ¶
func (bf *BlockFactory) JobQueue() chan<- interface{}
JobQueue returns the queue for block production triggering.
func (*BlockFactory) Start ¶
func (bf *BlockFactory) Start()
Start run a DPoS block factory service.
type DPoS ¶
type DPoS struct { *Status *component.ComponentHub // contains filtered or unexported fields }
DPoS is the main data structure of DPoS consensus
func (*DPoS) BlockFactory ¶
func (dpos *DPoS) BlockFactory() consensus.BlockFactory
BlockFactory returns the BlockFactory interface in dpos.
func (*DPoS) IsBlockValid ¶
IsBlockValid checks the DPoS consensus level validity of a block
func (*DPoS) IsTransactionValid ¶
IsTransactionValid checks the DPoS consensus level validity of a transaction
func (*DPoS) QuitChan ¶
func (dpos *DPoS) QuitChan() chan interface{}
QuitChan returns the channel from which consensus-related goroutines check when shutdown is initiated.
func (*DPoS) SetChainAccessor ¶
func (dpos *DPoS) SetChainAccessor(chainAccessor types.ChainAccessor)
SetChainAccessor sets dpost.ca to chainAccessor
func (*DPoS) SetStateDB ¶
func (dpos *DPoS) SetStateDB(sdb *state.ChainStateDB)
SetStateDB sets sdb to the corresponding field of DPoS. This method is called only once during the boot sequence.
type Status ¶
Status manages DPoS-related infomations like LIB.
func NewStatus ¶
func NewStatus(c bp.ClusterMember, cdb consensus.ChainDB) *Status
NewStatus returns a newly allocated Status.
func (*Status) NeedReorganization ¶
NeedReorganization reports whether reorganization is needed or not.