Versions in this module Expand all Collapse all v3 v3.0.1 Dec 27, 2023 Changes in this version type Validator + func (v *Validator) CheckRejectQcLeader(proposal *maxbftpb.ProposalData) error type Verifier + CheckRejectQcLeader func(proposal *maxbftpb.ProposalData) error v3.0.0 Dec 23, 2022 Changes in this version + const MinQuorumForQc + var ErrProposalHasBeenProceed = fmt.Errorf("proposal has been proceed") + func CountNumFromVotes(qc *maxbftpb.QuorumCert, minNodes uint) (votedBlockNum, votedRejectedNum uint, rejectedTxIds []string, err error) + func VerifyVotes(ac protocol.AccessControlProvider, validThreshold uint, ...) (reachThreshold bool, err error) + type Validator struct + func (v *Validator) BaseCheck(proposal *maxbftpb.ProposalData, qc *maxbftpb.QuorumCert) error + func (v *Validator) GetLeader(view uint64) string + func (v *Validator) IsLegalForNilBlock(block *common.Block) bool + func (v *Validator) SwitchEpoch(contract *maxbftpb.GovernanceContract) + func (v *Validator) ValidateJustifyQc(proposal *maxbft.ProposalData) error + func (v *Validator) ValidateProposal(proposal *maxbftpb.ProposalData, qc *maxbftpb.QuorumCert) (*consensus.VerifyResult, error) + func (v *Validator) ValidateQc(qc *maxbftpb.QuorumCert, selfCreate bool) error + func (v *Validator) ValidateVote(vote *maxbftpb.VoteData, proposal *maxbftpb.ProposalData) error + type Verifier interface + BaseCheck func(proposal *maxbftpb.ProposalData, qc *maxbftpb.QuorumCert) error + GetLeader func(view uint64) string + IsLegalForNilBlock func(block *common.Block) bool + SwitchEpoch func(contract *maxbftpb.GovernanceContract) + ValidateJustifyQc func(proposal *maxbftpb.ProposalData) error + ValidateProposal func(proposal *maxbftpb.ProposalData, qc *maxbftpb.QuorumCert) (*consensus.VerifyResult, error) + ValidateQc func(qc *maxbftpb.QuorumCert, selfCreate bool) error + ValidateVote func(vote *maxbftpb.VoteData, proposal *maxbftpb.ProposalData) error + func NewValidator(validators []string, verifier protocol.BlockVerifier, ...) Verifier Other modules containing this package chainmaker.org/chainmaker/consensus-maxbft/v2