Documentation ¶
Index ¶
- Constants
- Variables
- func GetConstructor(cfg *config.Config, hub *component.ComponentHub, cdb consensus.ChainDB, ...) consensus.Constructor
- func Init(bpCount uint16)
- func New(cfg *config.Config, hub *component.ComponentHub, cdb consensus.ChainDB, ...) (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) Ticker() *time.Ticker
- func (dpos *DPoS) VerifySign(block *types.Block) error
- func (dpos *DPoS) VerifyTimestamp(block *types.Block) bool
- type Status
Constants ¶
const DefaultDposBpNumber = 23
DefaultDposBpNumber is the default number of block producers.
Variables ¶
var LibStatusKey = []byte("dpos.LibStatus")
LibStatusKey is the key when a LIB information is put into the chain DB.
Functions ¶
func GetConstructor ¶ added in v0.9.4
func GetConstructor(cfg *config.Config, hub *component.ComponentHub, cdb consensus.ChainDB, sdb *state.ChainStateDB) 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, sdb *state.ChainStateDB, 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 consensus.ChainDB *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) VerifySign ¶ added in v0.9.10
VerifySign reports the validity of the block signature.
type Status ¶
Status manages DPoS-related infomations like LIB.
func NewStatus ¶
func NewStatus(c bp.ClusterMember, cdb consensus.ChainDB, sdb *state.ChainStateDB, resetHeight types.BlockNo) *Status
NewStatus returns a newly allocated Status.
func (*Status) NeedReorganization ¶
NeedReorganization reports whether reorganization is needed or not.