test

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2023 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BatchMsgInterpreterName = "batchMsgInterpreter"
	CommitterName           = "committer"
	NetHandlerName          = "netHandler"
	ParamsHandlerName       = "paramsHandler"
	VerifierName            = "verifier"
	WalHandlerName          = "walHandler"
	ProposalHandlerName     = "ProposalHandlerName"
)
View Source
const (
	// DefaultTimeoutPropose Timeout of waitting for a proposal before prevoting nil
	DefaultTimeoutPropose = 30 * time.Second
	// DefaultTimeoutProposeDelta Increased time delta of TimeoutPropose between rounds
	DefaultTimeoutProposeDelta = 1 * time.Second
)

Variables

View Source
var (
	ErrInvalidMsg   = errors.New("received invalid msg")
	ErrNotExistCode = errors.New("response code not found")
	ErrInvaildCode  = errors.New("response code is not 200")
)
View Source
var (
	ErrErrorHandler   = errors.New("the handler initialization error ")
	ErrNoExistHandler = errors.New("the handler does not exist")
)
View Source
var (
	Validators = []string{
		"127.0.0.1:8081",
		"127.0.0.1:8082",
		"127.0.0.1:8083",
		"127.0.0.1:8084",
	}
)

Functions

func BuildPrivateKey

func BuildPrivateKey(privateKeyStr string) (priKey *ecdsa.PrivateKey, e error)

解析私钥

func BuildPublicKey

func BuildPublicKey(publicKeyStr string) (pubKey *ecdsa.PublicKey, e error)

解析公钥

func GenKeyPair

func GenKeyPair() (privateKey string, publicKey string, e error)

生成公私钥

Types

type BatchMsg

type BatchMsg struct {
	Proposer string
	Index    uint64
	Hash     []byte
	Data     []byte
	Sign     []byte
}

Block 共识内容

func (*BatchMsg) GetSetSignature

func (b *BatchMsg) GetSetSignature() interface{}

获取BatchMsg签名

func (*BatchMsg) Key

func (b *BatchMsg) Key() []byte

func (*BatchMsg) Sequence

func (b *BatchMsg) Sequence() uint64

func (*BatchMsg) SetSignature

func (b *BatchMsg) SetSignature(sign interface{})

设置BatchMsg签名

type BatchMsgInterpreter

type BatchMsgInterpreter struct {
	Sequence chan uint64
	// contains filtered or unexported fields
}

func NewBatchMsgInterpreter

func NewBatchMsgInterpreter(size int, nodeId string) *BatchMsgInterpreter

func (*BatchMsgInterpreter) Close

func (b *BatchMsgInterpreter) Close()

func (*BatchMsgInterpreter) Name

func (b *BatchMsgInterpreter) Name() string

func (*BatchMsgInterpreter) PrepareBatchMsg

func (b *BatchMsgInterpreter) PrepareBatchMsg() <-chan *tbftengine.ProposalBatchMsg

PrepareBatchMsg TBFT引擎通过监听此chan, 获取一个BatchMsg进行共识

func (*BatchMsgInterpreter) SetSequence

func (b *BatchMsgInterpreter) SetSequence(sequence uint64)

type Coder

type Coder struct {
	// contains filtered or unexported fields
}

func NewProposalHandler

func NewProposalHandler(logger *Logger) *Coder

func (*Coder) Close

func (p *Coder) Close()

func (*Coder) MarshalProposal

func (p *Coder) MarshalProposal(proposal *tbftengine.Proposal) ([]byte, error)

实现Proposal的marshal

func (*Coder) Name

func (p *Coder) Name() string

func (*Coder) UnmarshalProposal

func (p *Coder) UnmarshalProposal(b []byte) (*tbftengine.Proposal, error)

实现Proposal的Unmarshal

type Committer

type Committer struct {
	BlockHeight uint64
	// contains filtered or unexported fields
}

Committer 提交者(持久化)

func NewCommitter

func NewCommitter(log *Logger, size int) *Committer

func (*Committer) Close

func (c *Committer) Close()

func (*Committer) Commit

func (c *Committer) Commit(batchMsg tbftengine.BatchMsg, voteSet *tbftpb.VoteSet) error

Commit 提交batchMsg

func (*Committer) CommitDone

func (c *Committer) CommitDone() <-chan uint64

CommitDone 完成batchMsg提交,通知共识开始下一个共识

func (*Committer) Name

func (c *Committer) Name() string

type EcdsaKeyPair

type EcdsaKeyPair struct {
	PrivateKey *ecdsa.PrivateKey
	PubKey     *ecdsa.PublicKey
}

func NewEcdsaKeyPair

func NewEcdsaKeyPair(privateKeyStr, publicKeyStr string) *EcdsaKeyPair

func (*EcdsaKeyPair) Sign

func (ekp *EcdsaKeyPair) Sign(content []byte) (signature []byte, e error)

签名

func (*EcdsaKeyPair) VerifySign

func (ekp *EcdsaKeyPair) VerifySign(content []byte, signature []byte, publicKey *ecdsa.PublicKey) bool

验签

type Handler

type Handler interface {
	Name() string
	Close()
}

type HandlerManager

type HandlerManager struct {
	HandlerMap map[string]Handler
	// contains filtered or unexported fields
}

func NewHandlerManager

func NewHandlerManager(logger *Logger, host *tbftengine.ConsensusEngine, hs ...Handler) *HandlerManager

func (*HandlerManager) StartrHandler

func (hm *HandlerManager) StartrHandler() error

StartrHandler start all handlers in the handlerManager

func (*HandlerManager) StopHandler

func (hm *HandlerManager) StopHandler()

StopHandler stop all the handlers in handlerManager

type Logger

type Logger struct {
}

func NewLogger

func NewLogger() *Logger

func (*Logger) Debug

func (log *Logger) Debug(args ...interface{})

func (*Logger) Debugf

func (log *Logger) Debugf(format string, args ...interface{})

func (*Logger) Debugw

func (log *Logger) Debugw(msg string, keysAndValues ...interface{})

func (*Logger) Error

func (log *Logger) Error(args ...interface{})

func (*Logger) Errorf

func (log *Logger) Errorf(format string, args ...interface{})

func (*Logger) Errorw

func (log *Logger) Errorw(msg string, keysAndValues ...interface{})

func (*Logger) Fatal

func (log *Logger) Fatal(args ...interface{})

func (*Logger) Fatalf

func (log *Logger) Fatalf(format string, args ...interface{})

func (*Logger) Fatalw

func (log *Logger) Fatalw(msg string, keysAndValues ...interface{})

func (*Logger) Info

func (log *Logger) Info(args ...interface{})

func (*Logger) Infof

func (log *Logger) Infof(format string, args ...interface{})

func (*Logger) Infow

func (log *Logger) Infow(msg string, keysAndValues ...interface{})

func (*Logger) Warn

func (log *Logger) Warn(args ...interface{})

func (*Logger) Warnf

func (log *Logger) Warnf(format string, args ...interface{})

func (*Logger) Warnw

func (log *Logger) Warnw(msg string, keysAndValues ...interface{})

type Msg

type Msg struct {
	Data []byte
}

type NetHandler

type NetHandler struct {
	// contains filtered or unexported fields
}

func NewNetHandler

func NewNetHandler(logger *Logger, size int, nodeId string, host *tbftengine.ConsensusEngine) *NetHandler

func (*NetHandler) BroadCastNetMsg

func (n *NetHandler) BroadCastNetMsg(payload []byte, to string) error

func (*NetHandler) Close

func (n *NetHandler) Close()

func (*NetHandler) Listen

func (n *NetHandler) Listen() <-chan interface{}

notice:ListenNetMsg

func (*NetHandler) Name

func (n *NetHandler) Name() string

func (*NetHandler) Post

func (n *NetHandler) Post(url string, msg *Msg) (err error)

type ParamsHandler

type ParamsHandler struct {
}

func NewParamsHandler

func NewParamsHandler() *ParamsHandler

func (*ParamsHandler) Close

func (p *ParamsHandler) Close()

func (*ParamsHandler) GetNewParams

func (p *ParamsHandler) GetNewParams() (validators []string, timeoutPropose time.Duration,
	timeoutProposeDelta time.Duration, tbftBlocksPerProposer uint64, err error)

GetNewParams 新的一次共识开始时调用,获取共识需要的参数

func (*ParamsHandler) Name

func (p *ParamsHandler) Name() string

type Proposal

type Proposal struct {
	Voter  string
	Height uint64
	Round  int32
	Block  *BatchMsg
	Sign   []byte
}

type Verifier

type Verifier struct {
	// contains filtered or unexported fields
}

func NewVerifier

func NewVerifier(logger *Logger, ecdsaKeyPair *EcdsaKeyPair, validatorsPublicKey map[string]*ecdsa.PublicKey) *Verifier

func (*Verifier) AddValidator

func (v *Verifier) AddValidator(validatorPublicKey *ecdsa.PublicKey, nodeId string) error

func (*Verifier) Close

func (v *Verifier) Close()

func (*Verifier) DeleteValidator

func (v *Verifier) DeleteValidator(nodeId string) error

func (*Verifier) Name

func (v *Verifier) Name() string

func (*Verifier) SignBatchMsg

func (v *Verifier) SignBatchMsg(batchMsg tbftengine.BatchMsg) (interface{}, error)

SignBatchMsg 对BatchMsg签名

func (*Verifier) SignProposal

func (v *Verifier) SignProposal(proposal *tbftengine.Proposal) (interface{}, error)

SignProposal 对Proposal签名

func (*Verifier) SignVote

func (v *Verifier) SignVote(vote *enginePb.Vote) ([]byte, error)

SignVote 对vote签名

func (*Verifier) VerifyBatchMsg

func (v *Verifier) VerifyBatchMsg(batchMsg tbftengine.BatchMsg) (*tbftengine.VerifyResult, error)

VerifyBatchMsg 验证BatchMsg

func (*Verifier) VerifyProposal

func (v *Verifier) VerifyProposal(proposal *tbftengine.Proposal) error

VerifyProposal 验证Proposal

func (*Verifier) VerifyVote

func (v *Verifier) VerifyVote(voteProto *enginePb.Vote) error

VerifyVote 验证vote

type WalHandler

type WalHandler struct {
}

WalHandler 实现读写共识消息的wal操作

func NewWalHandler

func NewWalHandler() *WalHandler

func (*WalHandler) Close

func (w *WalHandler) Close()

func (*WalHandler) Name

func (w *WalHandler) Name() string

func (*WalHandler) ReadLast

func (w *WalHandler) ReadLast() (*tbftengine.WalEntry, error)

ReadLast 读取一个最新的wal内容

func (*WalHandler) Write

func (w *WalHandler) Write(walEntry *tbftengine.WalEntry) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL