base

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2021 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConsensusImplInterface

type ConsensusImplInterface interface {
	// CompeteMaster 返回是否为矿工以及是否需要进行SyncBlock
	CompeteMaster(height int64) (bool, bool, error)
	// CheckMinerMatch 查看block是否合法
	CheckMinerMatch(ctx xcontext.XContext, block cctx.BlockInterface) (bool, error)
	// ProcessBeforeMiner 开始挖矿前进行相应的处理, 返回truncate目标(如需裁剪), 返回写consensusStorage, 返回err
	ProcessBeforeMiner(timestamp int64) ([]byte, []byte, error)
	// CalculateBlock 矿工挖矿时共识需要做的工作, 如PoW时共识需要完成存在性证明
	CalculateBlock(block cctx.BlockInterface) error
	// ProcessConfirmBlock 用于确认块后进行相应的处理
	ProcessConfirmBlock(block cctx.BlockInterface) error
	// GetStatus 获取区块链共识信息
	GetConsensusStatus() (ConsensusStatus, error)

	// 共识实例的挂起逻辑, 另: 若共识实例发现绑定block结构有误,会直接停掉当前共识实例并panic
	Stop() error
	// 共识实例的启动逻辑
	Start() error
	// 共识占用blockinterface的专有存储,特定共识需要提供parse接口,在此作为接口高亮
	ParseConsensusStorage(block cctx.BlockInterface) (interface{}, error)
}

ConsensusInterface 定义了一个共识实例需要实现的接口,用于bcs具体共识的实现

type ConsensusStatus

type ConsensusStatus interface {
	// 获取共识版本号
	GetVersion() int64
	// pluggable consensus共识item起始高度
	GetConsensusBeginInfo() int64
	// 获取共识item所在consensus slice中的index
	GetStepConsensusIndex() int
	// 获取共识类型
	GetConsensusName() string
	// 获取当前状态机term
	GetCurrentTerm() int64
	// 获取当前矿工信息
	GetCurrentValidatorsInfo() []byte
}

ConsensusStatus 定义了一个共识实例需要返回的各种状态,需特定共识实例实现相应接口

Directories

Path Synopsis
driver

Jump to

Keyboard shortcuts

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