Documentation ¶
Index ¶
- Variables
- func BallotResult(parentHeader, header RoundHeader, parentShardState *shard.State, ...) (shard.SlotList, shard.SlotList, shard.SlotList, error)
- func BlockSigners(bitmap []byte, parentCommittee *shard.Committee) (shard.SlotList, shard.SlotList, error)
- func ComputeAndMutateEPOSStatus(bc Reader, state ValidatorState, addr common.Address) error
- func ComputeCurrentSigning(snapshot, wrapper *staking.ValidatorWrapper) *staking.Computed
- func IncrementValidatorSigningCounts(bc Reader, staked *shard.StakedSlots, state ValidatorState, ...) error
- func IsBelowSigningThreshold(quotient numeric.Dec) bool
- func UpdateMinimumCommissionFee(electionEpoch *big.Int, state *state.DB, addr common.Address, ...) error
- type Reader
- type RoundHeader
- type ValidatorState
Constants ¶
This section is empty.
Variables ¶
var ( MinCommissionRate = numeric.MustNewDecFromStr("0.05") // ErrDivByZero .. ErrDivByZero = errors.New("toSign of availability cannot be 0, mistake in protocol") )
Functions ¶
func BallotResult ¶
func BallotResult( parentHeader, header RoundHeader, parentShardState *shard.State, shardID uint32, ) (shard.SlotList, shard.SlotList, shard.SlotList, error)
BallotResult returns (parentCommittee.Slots, payable, missings, err)
func BlockSigners ¶
func BlockSigners( bitmap []byte, parentCommittee *shard.Committee, ) (shard.SlotList, shard.SlotList, error)
BlockSigners ..
func ComputeAndMutateEPOSStatus ¶
func ComputeAndMutateEPOSStatus( bc Reader, state ValidatorState, addr common.Address, ) error
ComputeAndMutateEPOSStatus sets the validator to inactive and thereby keeping it out of consideration in the pool of validators for whenever committee selection happens in future, the signing threshold is 66%
func ComputeCurrentSigning ¶
func ComputeCurrentSigning( snapshot, wrapper *staking.ValidatorWrapper, ) *staking.Computed
ComputeCurrentSigning returns (signed, toSign, quotient, error)
func IncrementValidatorSigningCounts ¶
func IncrementValidatorSigningCounts( bc Reader, staked *shard.StakedSlots, state ValidatorState, signers, missing shard.SlotList, ) error
IncrementValidatorSigningCounts ..
func IsBelowSigningThreshold ¶
IsBelowSigningThreshold ..
func UpdateMinimumCommissionFee ¶
func UpdateMinimumCommissionFee( electionEpoch *big.Int, state *state.DB, addr common.Address, promoPeriod int64, ) error
UpdateMinimumCommissionFee update the validator commission fee to the minimum 5% if the validator has a lower commission rate and 100 epochs have passed after the validator was first elected.
Types ¶
type Reader ¶
type Reader interface { ReadValidatorSnapshot( addr common.Address, ) (*staking.ValidatorSnapshot, error) }
Reader ..
type RoundHeader ¶
RoundHeader is the interface of block.Header for calculating the BallotResult.
type ValidatorState ¶
type ValidatorState interface { ValidatorWrapper(common.Address, bool, bool) (*staking.ValidatorWrapper, error) UpdateValidatorWrapper(common.Address, *staking.ValidatorWrapper) error }
ValidatorState is the interface of state.DB