epoch

package
v1.7.2 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2022 License: GPL-3.0 Imports: 14 Imported by: 6

Documentation

Index

Constants

View Source
const (
	EPOCH_NOT_EXIST = iota
	EPOCH_PROPOSED_NOT_VOTED
	EPOCH_VOTED_NOT_SAVED
	EPOCH_SAVED

	MinimumValidatorsSize = 1
	MaximumValidatorsSize = 40
)

Variables

View Source
var BannedEpoch = big.NewInt(2)
View Source
var NextEpochNotEXPECTED = errors.New("next epoch parameters are not excepted, fatal error")
View Source
var NextEpochNotExist = errors.New("next epoch parameters do not exist, fatal error")

Functions

func DryRunUpdateEpochValidatorSet

func DryRunUpdateEpochValidatorSet(state *state.StateDB, validators *ncTypes.ValidatorSet, voteSet *EpochValidatorVoteSet) error

func SaveEpochVoteSet

func SaveEpochVoteSet(epochDB db.DB, epochNumber uint64, voteSet *EpochValidatorVoteSet)

func UpdateEpochEndTime

func UpdateEpochEndTime(db dbm.DB, epNumber uint64, endTime time.Time)

Types

type Epoch

type Epoch struct {
	Number         uint64
	RewardPerBlock *big.Int
	StartBlock     uint64
	EndBlock       uint64
	StartTime      time.Time
	EndTime        time.Time
	BlockGenerated int
	Status         int
	Validators     *ncTypes.ValidatorSet
	// contains filtered or unexported fields
}

func FromBytes

func FromBytes(buf []byte) *Epoch

func InitEpoch

func InitEpoch(db dbm.DB, genDoc *ncTypes.GenesisDoc, logger log.Logger) *Epoch

func LoadOneEpoch

func LoadOneEpoch(db dbm.DB, epochNumber uint64, logger log.Logger) *Epoch

func MakeOneEpoch

func MakeOneEpoch(db dbm.DB, oneEpoch *ncTypes.OneEpochDoc, logger log.Logger) *Epoch

func (*Epoch) Bytes

func (epoch *Epoch) Bytes() []byte

func (*Epoch) Copy

func (epoch *Epoch) Copy() *Epoch

func (*Epoch) EnterNewEpoch

func (epoch *Epoch) EnterNewEpoch(newValidators *ncTypes.ValidatorSet) (*Epoch, error)

func (*Epoch) Equals

func (epoch *Epoch) Equals(other *Epoch, checkPrevNext bool) bool

func (*Epoch) GetDB

func (epoch *Epoch) GetDB() dbm.DB

func (*Epoch) GetEpochByBlockNumber

func (epoch *Epoch) GetEpochByBlockNumber(blockNumber uint64) *Epoch

func (*Epoch) GetEpochValidatorVoteSet

func (epoch *Epoch) GetEpochValidatorVoteSet() *EpochValidatorVoteSet

func (*Epoch) GetNextEpoch

func (epoch *Epoch) GetNextEpoch() *Epoch

func (*Epoch) GetPreviousEpoch

func (epoch *Epoch) GetPreviousEpoch() *Epoch

func (*Epoch) GetRewardScheme

func (epoch *Epoch) GetRewardScheme() *RewardScheme

func (*Epoch) ProposeNextEpoch

func (epoch *Epoch) ProposeNextEpoch(lastBlockHeight uint64, lastBlockTime time.Time) *Epoch

func (*Epoch) Save

func (epoch *Epoch) Save()

func (*Epoch) SetNextEpoch

func (epoch *Epoch) SetNextEpoch(next *Epoch)

func (*Epoch) SetRewardScheme

func (epoch *Epoch) SetRewardScheme(rs *RewardScheme)

func (*Epoch) ShouldEnterNewEpoch

func (epoch *Epoch) ShouldEnterNewEpoch(height uint64, state *state.StateDB) (bool, *ncTypes.ValidatorSet, error)

func (*Epoch) ShouldProposeNextEpoch

func (epoch *Epoch) ShouldProposeNextEpoch(curBlockHeight uint64) bool

func (*Epoch) String

func (epoch *Epoch) String() string

func (*Epoch) ValidateNextEpoch

func (epoch *Epoch) ValidateNextEpoch(next *Epoch, lastHeight uint64, lastBlockTime time.Time) error

type EpochValidatorVote

type EpochValidatorVote struct {
	Address  common.Address
	PubKey   crypto.PubKey
	Amount   *big.Int
	Salt     string
	VoteHash common.Hash
	TxHash   common.Hash
}

func (*EpochValidatorVote) Copy

func (vote *EpochValidatorVote) Copy() *EpochValidatorVote

type EpochValidatorVoteSet

type EpochValidatorVoteSet struct {
	Votes []*EpochValidatorVote
	// contains filtered or unexported fields
}

func LoadEpochVoteSet

func LoadEpochVoteSet(epochDB db.DB, epochNumber uint64) *EpochValidatorVoteSet

func NewEpochValidatorVoteSet

func NewEpochValidatorVoteSet() *EpochValidatorVoteSet

func (*EpochValidatorVoteSet) Copy

func (*EpochValidatorVoteSet) GetVoteByAddress

func (voteSet *EpochValidatorVoteSet) GetVoteByAddress(address common.Address) (vote *EpochValidatorVote, exist bool)

func (*EpochValidatorVoteSet) IsEmpty

func (voteSet *EpochValidatorVoteSet) IsEmpty() bool

func (*EpochValidatorVoteSet) StoreVote

func (voteSet *EpochValidatorVoteSet) StoreVote(vote *EpochValidatorVote)

type RewardScheme

type RewardScheme struct {
	TotalReward        *big.Int
	RewardFirstYear    *big.Int
	EpochNumberPerYear uint64
	TotalYear          uint64
	// contains filtered or unexported fields
}

func LoadRewardScheme

func LoadRewardScheme(db dbm.DB) *RewardScheme

func MakeRewardScheme

func MakeRewardScheme(db dbm.DB, rsDoc *ncTypes.RewardSchemeDoc) *RewardScheme

func (*RewardScheme) Save

func (rs *RewardScheme) Save()

func (*RewardScheme) String

func (rs *RewardScheme) String() string

Jump to

Keyboard shortcuts

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