Versions in this module Expand all Collapse all v3 v3.0.1 Dec 27, 2023 v3.0.0 Dec 23, 2022 Changes in this version + var ConfigChangeStrategy = strings.ToLower("BasedOnConfig") + var HeightStrategy = strings.ToLower("BasedOnHeight") + var ViewStrategy = strings.ToLower("BasedOnView") + func GetContractFromDB(store protocol.BlockchainStore) (*maxbft.GovernanceContract, error) + func GetEpochStrategyFromConfig(cfg *config.ChainConfig) (strategy string, number uint64, err error) + func GetViewsPerEpochForV230(config *config.ChainConfig) uint64 + type BaseOnConfig struct + func NewBaseOnConfig(log protocol.Logger, snapshotManager protocol.SnapshotManager, epochId uint64) (*BaseOnConfig, error) + func (t *BaseOnConfig) CheckConfig(config *config.ChainConfig) error + func (t *BaseOnConfig) CheckEpochRWSet(prev *common.Block, proposal *maxbft.ProposalData) error + func (t *BaseOnConfig) CreateEpochTxRWSet(prevBlock *common.Block, proposal *maxbft.ProposalData) (*common.TxRWSet, error) + func (t *BaseOnConfig) End(finalBlock *forest.BlockContainer) bool + func (t *BaseOnConfig) SetEpochStatus(contract *maxbft.GovernanceContract) + func (t *BaseOnConfig) Strategy() string + type BasedOnHeight struct + func NewBasedOnHeight(epochId, endHeight, numberInPerEpoch uint64, manager protocol.SnapshotManager, ...) (*BasedOnHeight, error) + func (b *BasedOnHeight) CheckConfig(config *config.ChainConfig) error + func (b *BasedOnHeight) CheckEpochRWSet(prev *common.Block, proposal *maxbft.ProposalData) error + func (b *BasedOnHeight) CreateEpochTxRWSet(prevBlock *common.Block, proposal *maxbft.ProposalData) (*common.TxRWSet, error) + func (b *BasedOnHeight) End(finalBlock *forest.BlockContainer) bool + func (b *BasedOnHeight) SetEpochStatus(contract *maxbft.GovernanceContract) + func (b *BasedOnHeight) Strategy() string + type BasedOnView struct + func NewBasedOnView(epochId, endView, viewNumsPerEpoch uint64, manager protocol.SnapshotManager, ...) (*BasedOnView, error) + func (b *BasedOnView) CheckConfig(config *config.ChainConfig) error + func (b *BasedOnView) CheckEpochRWSet(prev *common.Block, proposal *maxbft.ProposalData) error + func (b *BasedOnView) CreateEpochTxRWSet(prevBlock *common.Block, proposal *maxbft.ProposalData) (*common.TxRWSet, error) + func (b *BasedOnView) End(finalBlock *forest.BlockContainer) bool + func (b *BasedOnView) SetEpochStatus(contract *maxbft.GovernanceContract) + func (b *BasedOnView) Strategy() string + type Epoch interface + CheckConfig func(config *config.ChainConfig) error + CheckEpochRWSet func(prev *common.Block, proposal *maxbft.ProposalData) error + CreateEpochTxRWSet func(prevBlock *common.Block, proposal *maxbft.ProposalData) (*common.TxRWSet, error) + End func(finalBlock *forest.BlockContainer) bool + SetEpochStatus func(contract *maxbft.GovernanceContract) + Strategy func() string + type EpochManager struct + func NewEpochManager(cfg protocol.ChainConf, snapshotManager protocol.SnapshotManager, ...) (*EpochManager, error) + func (manager *EpochManager) ConstructEpoch(prevBlock *common.Block, proposal *maxbft.ProposalData) (*common.TxRWSet, error) + func (manager *EpochManager) GetEpochStrategy() string + func (manager *EpochManager) IsEndInEpoch(finalBlock *forest.BlockContainer) bool + func (manager *EpochManager) SwitchEpoch(contract *maxbft.GovernanceContract) error + func (manager *EpochManager) VerifyConfig(chainConfig *config.ChainConfig) error + func (manager *EpochManager) VerifyEpochContract(prevBlock *common.Block, proposal *maxbft.ProposalData) error + type Manager interface + ConstructEpoch func(prevBlock *common.Block, proposal *maxbft.ProposalData) (*common.TxRWSet, error) + GetEpochStrategy func() string + IsEndInEpoch func(finalBlock *forest.BlockContainer) bool + SwitchEpoch func(*maxbft.GovernanceContract) error + VerifyConfig func(chainConfig *config.ChainConfig) error + VerifyEpochContract func(prev *common.Block, proposal *maxbft.ProposalData) error + type StateEngine interface + SwitchState func(contract *maxbft.GovernanceContract) error Other modules containing this package chainmaker.org/chainmaker/consensus-maxbft/v2