consensus/common/chainedbft/smr/smr.go

(开头部分) 19KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package smr

import (
	"bytes"
	"context"
	"crypto/ecdsa"
	"encoding/hex"
	"errors"
	"sync"

	"github.com/golang/protobuf/proto"
	log "github.com/xuperchain/log15"
	cons_base "github.com/xuperchain/xuperunion/consensus/base"
	"github.com/xuperchain/xuperunion/consensus/common/chainedbft/config"
	"github.com/xuperchain/xuperunion/consensus/common/chainedbft/external"
	"github.com/xuperchain/xuperunion/consensus/common/chainedbft/utils"
	crypto_base "github.com/xuperchain/xuperunion/crypto/client/base"
	"github.com/xuperchain/xuperunion/p2pv2"
	p2p_pb "github.com/xuperchain/xuperunion/p2pv2/pb"
	pb "github.com/xuperchain/xuperunion/pb"
)

var (
	// ErrNewViewNum used to return error new view number
	ErrNewViewNum = errors.New("new view number error")
	// ErrSafeProposal check new proposal error
	ErrSafeProposal = errors.New("check new proposal error")
	// ErrGetVotes get votes error
	ErrGetVotes = errors.New("get votes error")
	// ErrPropsViewNum return proposal view number error
	ErrPropsViewNum = errors.New("proposal view number error")
	// ErrJustifySignNotEnough return justify sign not enough error
	ErrJustifySignNotEnough = errors.New("proposal justify sign not enough error")
	// ErrVerifyVoteSign return verify vote sign error
	ErrVerifyVoteSign = errors.New("verify justify sign error")
	// ErrInValidateSets return in validate sets error
	ErrInValidateSets = errors.New("in validate sets error")
	// ErrCheckDataSum return check data sum error
	ErrCheckDataSum = errors.New("check data sum error")
	// ErrParams return params error
	ErrParams = errors.New("params error")
	// ErrCallPreQcStatus return call pre qc status error
	ErrCallPreQcStatus = errors.New("call pre qc status error")
	// ErrGetLocalProposalQC return LocalProposalQC error
	ErrGetLocalProposalQC = errors.New("get local proposalQC error")
)

// NewSmr return smr instance
func NewSmr(
	slog log.Logger,
	cfg *config.Config,
	bcname string,
	address string,
	publicKey string,
	privateKey *ecdsa.PrivateKey,
	validates []*cons_base.CandidateInfo,
	externalCons external.ExternalInterface,
	cryptoClient crypto_base.CryptoClient,
	p2p p2pv2.P2PServer,
	proposalQC,
后面还有 544 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。