Documentation ¶
Index ¶
- Constants
- Variables
- func AppendDelegateRewardPer(blockHash common.Hash, nodeID discover.NodeID, stakingNum uint64, ...) error
- func CheckOperatingThreshold(blockNumber uint64, blockHash common.Hash, balance *big.Int) (bool, *big.Int)
- func CheckStakeThreshold(blockNumber uint64, blockHash common.Hash, stake *big.Int) (bool, *big.Int)
- func Decimal(value float64) int
- func GetBlockNumberByEpoch(epoch uint64) uint64
- func GetHistoryCumulativeIssue(state xcom.StateDB, year uint32) *big.Int
- func GetYearEndBalance(state xcom.StateDB, year uint32) *big.Int
- func LoadChainYearNumber(hash common.Hash, snapshotDB snapshotdb.DB) (uint32, error)
- func LoadNewBlockReward(hash common.Hash, snapshotDB snapshotdb.DB) (*big.Int, error)
- func LoadRemainingReward(hash common.Hash, snapshotDB snapshotdb.DB) (*big.Int, error)
- func LoadStakingReward(hash common.Hash, snapshotDB snapshotdb.DB) (*big.Int, error)
- func LoadYearStartTime(hash common.Hash, snapshotDB snapshotdb.DB) (yearStartBlockNumber uint64, yearStartTime int64, error error)
- func NewIssue1625Accounts() ([]issue1625Accounts, error)
- func NewIssue1654Candidates() ([]issue1654Candidate, error)
- func SetYearEndBalance(state xcom.StateDB, year uint32, balance *big.Int)
- func SetYearEndCumulativeIssue(state xcom.StateDB, year uint32, total *big.Int)
- func StorageChainYearNumber(hash common.Hash, snapshotDB snapshotdb.DB, yearNumber uint32) error
- func StorageNewBlockReward(hash common.Hash, snapshotDB snapshotdb.DB, newBlockReward *big.Int) error
- func StorageRemainingReward(hash common.Hash, snapshotDB snapshotdb.DB, remainReward *big.Int) error
- func StorageStakingReward(hash common.Hash, snapshotDB snapshotdb.DB, stakingReward *big.Int) error
- func StorageYearStartTime(hash common.Hash, snapshotDB snapshotdb.DB, blockNumber uint64, ...) error
- func UpdateDelegateRewardPer(blockHash common.Hash, nodeID discover.NodeID, stakingNum uint64, ...) error
- func VerifyTxData(input []byte, command map[uint16]interface{}) (cnCode uint16, fn interface{}, FnParams []reflect.Value, err error)
- type BasePlugin
- type DelegationInfoWithRewardPerList
- type FixIssue1583Plugin
- type FixIssue1625Plugin
- type FixIssue1654Plugin
- type GovPlugin
- func (govPlugin *GovPlugin) BeginBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (govPlugin *GovPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (govPlugin *GovPlugin) EndBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (govPlugin *GovPlugin) SetChainID(chainId *big.Int)
- type PublicPPOSAPI
- type RestrictingPlugin
- func (rp *RestrictingPlugin) AddRestrictingRecord(from, account common.Address, blockNum uint64, blockHash common.Hash, ...) error
- func (rp *RestrictingPlugin) AdvanceLockedFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
- func (rp *RestrictingPlugin) BeginBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
- func (rp *RestrictingPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (rp *RestrictingPlugin) EndBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
- func (rp *RestrictingPlugin) GetRestrictingInfo(account common.Address, state xcom.StateDB) (*restricting.Result, *common.BizError)
- func (rp *RestrictingPlugin) MixAdvanceLockedFunds(account common.Address, amount *big.Int, state xcom.StateDB) (*big.Int, *big.Int, error)
- func (rp *RestrictingPlugin) ReturnLockFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
- func (rp *RestrictingPlugin) ReturnWrongLockFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
- func (rp *RestrictingPlugin) SlashingNotify(account common.Address, amount *big.Int, state xcom.StateDB) error
- type RewardMgrPlugin
- func (rmp *RewardMgrPlugin) AllocatePackageBlock(blockHash common.Hash, head *types.Header, reward *big.Int, state xcom.StateDB) error
- func (rmp *RewardMgrPlugin) AllocateStakingReward(blockNumber uint64, blockHash common.Hash, sreward *big.Int, ...) ([]*staking.Candidate, error)
- func (rmp *RewardMgrPlugin) BeginBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
- func (rmp *RewardMgrPlugin) CalDelegateRewardAndNodeReward(totalReward *big.Int, per uint16) (*big.Int, *big.Int)
- func (rmp *RewardMgrPlugin) CalcEpochReward(blockHash common.Hash, head *types.Header, state xcom.StateDB) (*big.Int, *big.Int, error)
- func (rmp *RewardMgrPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (rmp *RewardMgrPlugin) EndBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
- func (rmp *RewardMgrPlugin) GetDelegateReward(blockHash common.Hash, blockNum uint64, account common.Address, ...) ([]reward.NodeDelegateRewardPresenter, error)
- func (rmp *RewardMgrPlugin) GetDelegateRewardPerList(blockHash common.Hash, nodeID discover.NodeID, ...) ([]*reward.DelegateRewardPer, error)
- func (rmp *RewardMgrPlugin) HandleDelegatePerReward(blockHash common.Hash, blockNumber uint64, list []*staking.Candidate, ...) error
- func (rmp *RewardMgrPlugin) ReturnDelegateReward(address common.Address, amount *big.Int, state xcom.StateDB) error
- func (rmp *RewardMgrPlugin) SetCurrentNodeID(nodeId discover.NodeID)
- func (rmp *RewardMgrPlugin) WithdrawDelegateReward(blockHash common.Hash, blockNum uint64, account common.Address, ...) ([]reward.NodeDelegateReward, error)
- type SlashingPlugin
- func (sp *SlashingPlugin) BeginBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sp *SlashingPlugin) CheckDuplicateSign(nodeId discover.NodeID, blockNumber uint64, dupType consensus.EvidenceType, ...) ([]byte, error)
- func (sp *SlashingPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (sp *SlashingPlugin) DecodeEvidence(dupType consensus.EvidenceType, data string) (consensus.Evidence, error)
- func (sp *SlashingPlugin) EndBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sp *SlashingPlugin) GetPrePackAmount(blockNumber uint64, parentHash common.Hash) (map[discover.NodeID]uint32, error)
- func (sp *SlashingPlugin) SetDecodeEvidenceFun(...)
- func (sp *SlashingPlugin) SetPrivateKey(privateKey *ecdsa.PrivateKey)
- func (sp *SlashingPlugin) Slash(evidence consensus.Evidence, blockHash common.Hash, blockNumber uint64, ...) error
- type StakingPlugin
- func (sk *StakingPlugin) BeginBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sk *StakingPlugin) Confirmed(nodeId discover.NodeID, block *types.Block) error
- func (sk *StakingPlugin) CreateCandidate(state xcom.StateDB, blockHash common.Hash, blockNumber, amount *big.Int, ...) error
- func (sk *StakingPlugin) DeclarePromoteNotify(blockHash common.Hash, blockNumber uint64, nodeId discover.NodeID, ...) error
- func (sk *StakingPlugin) Delegate(state xcom.StateDB, blockHash common.Hash, blockNumber *big.Int, ...) error
- func (sk *StakingPlugin) EditCandidate(blockHash common.Hash, blockNumber *big.Int, canAddr common.NodeAddress, ...) error
- func (sk *StakingPlugin) ElectNextVerifierList(blockHash common.Hash, blockNumber uint64, state xcom.StateDB) error
- func (sk *StakingPlugin) Election(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sk *StakingPlugin) EndBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
- func (sk *StakingPlugin) GetCanBase(blockHash common.Hash, addr common.NodeAddress) (*staking.CandidateBase, error)
- func (sk *StakingPlugin) GetCanBaseByIrr(addr common.NodeAddress) (*staking.CandidateBase, error)
- func (sk *StakingPlugin) GetCanBaseList(blockHash common.Hash, blockNumber uint64) (staking.CandidateBaseQueue, error)
- func (sk *StakingPlugin) GetCanMutable(blockHash common.Hash, addr common.NodeAddress) (*staking.CandidateMutable, error)
- func (sk *StakingPlugin) GetCanMutableByIrr(addr common.NodeAddress) (*staking.CandidateMutable, error)
- func (sk *StakingPlugin) GetCandidateCompactInfo(blockHash common.Hash, blockNumber uint64, addr common.NodeAddress) (*staking.CandidateHex, error)
- func (sk *StakingPlugin) GetCandidateInfo(blockHash common.Hash, addr common.NodeAddress) (*staking.Candidate, error)
- func (sk *StakingPlugin) GetCandidateInfoByIrr(addr common.NodeAddress) (*staking.Candidate, error)
- func (sk *StakingPlugin) GetCandidateList(blockHash common.Hash, blockNumber uint64) (staking.CandidateHexQueue, error)
- func (sk *StakingPlugin) GetCandidateONEpoch(blockHash common.Hash, blockNumber uint64, isCommit bool) (staking.CandidateQueue, error)
- func (sk *StakingPlugin) GetCandidateONRound(blockHash common.Hash, blockNumber uint64, flag uint, isCommit bool) (staking.CandidateQueue, error)
- func (sk *StakingPlugin) GetDelegateExCompactInfo(blockHash common.Hash, blockNumber uint64, delAddr common.Address, ...) (*staking.DelegationEx, error)
- func (sk *StakingPlugin) GetDelegateExInfo(blockHash common.Hash, delAddr common.Address, nodeId discover.NodeID, ...) (*staking.DelegationEx, error)
- func (sk *StakingPlugin) GetDelegateExInfoByIrr(delAddr common.Address, nodeId discover.NodeID, stakeBlockNumber uint64) (*staking.DelegationEx, error)
- func (sk *StakingPlugin) GetDelegateInfo(blockHash common.Hash, delAddr common.Address, nodeId discover.NodeID, ...) (*staking.Delegation, error)
- func (sk *StakingPlugin) GetDelegateInfoByIrr(delAddr common.Address, nodeId discover.NodeID, stakeBlockNumber uint64) (*staking.Delegation, error)
- func (sk *StakingPlugin) GetDelegatesInfo(blockHash common.Hash, delAddr common.Address) ([]*staking.DelegationInfo, error)
- func (sk *StakingPlugin) GetLastNumber(blockNumber uint64) uint64
- func (sk *StakingPlugin) GetRelatedListByDelAddr(blockHash common.Hash, addr common.Address) (staking.DelRelatedQueue, error)
- func (sk *StakingPlugin) GetValidator(blockNumber uint64) (*cbfttypes.Validators, error)
- func (sk *StakingPlugin) GetValidatorList(blockHash common.Hash, blockNumber uint64, flag uint, isCommit bool) (staking.ValidatorExQueue, error)
- func (sk *StakingPlugin) GetVerifierCandidateInfo(blockHash common.Hash, blockNumber uint64) ([]*staking.Candidate, error)
- func (sk *StakingPlugin) GetVerifierList(blockHash common.Hash, blockNumber uint64, isCommit bool) (staking.ValidatorExQueue, error)
- func (sk *StakingPlugin) HandleUnCandidateItem(state xcom.StateDB, blockNumber uint64, blockHash common.Hash, epoch uint64) error
- func (sk *StakingPlugin) HasStake(blockHash common.Hash, addr common.Address) (bool, error)
- func (sk *StakingPlugin) IncreaseStaking(state xcom.StateDB, blockHash common.Hash, blockNumber, amount *big.Int, ...) error
- func (sk *StakingPlugin) IsCandidate(blockHash common.Hash, nodeId discover.NodeID, isCommit bool) (bool, error)
- func (sk *StakingPlugin) IsCandidateNode(nodeID discover.NodeID) bool
- func (sk *StakingPlugin) IsCurrValidator(blockHash common.Hash, blockNumber uint64, nodeId discover.NodeID, ...) (bool, error)
- func (sk *StakingPlugin) IsCurrVerifier(blockHash common.Hash, blockNumber uint64, nodeId discover.NodeID, ...) (bool, error)
- func (sk *StakingPlugin) ListCurrentValidatorID(blockHash common.Hash, blockNumber uint64) ([]discover.NodeID, error)
- func (sk *StakingPlugin) ListVerifierNodeID(blockHash common.Hash, blockNumber uint64) ([]discover.NodeID, error)
- func (sk *StakingPlugin) ProposalPassedNotify(blockHash common.Hash, blockNumber uint64, nodeIds []discover.NodeID, ...) error
- func (sk *StakingPlugin) RollBackStaking(state xcom.StateDB, blockHash common.Hash, blockNumber *big.Int, ...) error
- func (sk *StakingPlugin) SetEventMux(eventMux *event.TypeMux)
- func (sk *StakingPlugin) SlashCandidates(state xcom.StateDB, blockHash common.Hash, blockNumber uint64, ...) error
- func (sk *StakingPlugin) WithdrewDelegation(state xcom.StateDB, blockHash common.Hash, blockNumber, amount *big.Int, ...) (*big.Int, error)
- func (sk *StakingPlugin) WithdrewStaking(state xcom.StateDB, blockHash common.Hash, blockNumber *big.Int, ...) error
- type WaitSlashingNode
Constants ¶
const ( LessThanFoundationYearDeveloperRate = 100 AfterFoundationYearDeveloperRewardRate = 10 AfterFoundationYearFoundRewardRate = 50 RewardPoolIncreaseRate = 40 // 40% of fixed-issued tokens are allocated to reward pool each year )
const ( HundredDenominator = 100 TenThousandDenominator = 10000 )
Variables ¶
Functions ¶
func AppendDelegateRewardPer ¶
func AppendDelegateRewardPer(blockHash common.Hash, nodeID discover.NodeID, stakingNum uint64, per *reward.DelegateRewardPer, db snapshotdb.DB) error
func CheckOperatingThreshold ¶
func CheckStakeThreshold ¶
func GetBlockNumberByEpoch ¶
func GetHistoryCumulativeIssue ¶
GetHistoryCumulativeIssue used for get the cumulative issuance of a certain year in history
func LoadChainYearNumber ¶
func LoadNewBlockReward ¶
func LoadRemainingReward ¶
func LoadStakingReward ¶
func LoadYearStartTime ¶
func NewIssue1625Accounts ¶
func NewIssue1625Accounts() ([]issue1625Accounts, error)
func NewIssue1654Candidates ¶
func NewIssue1654Candidates() ([]issue1654Candidate, error)
func SetYearEndCumulativeIssue ¶
SetYearEndCumulativeIssue used for set historical cumulative increase at the end of the year
func StorageChainYearNumber ¶
func StorageNewBlockReward ¶
func StorageRemainingReward ¶
func StorageStakingReward ¶
func StorageYearStartTime ¶
func UpdateDelegateRewardPer ¶
func UpdateDelegateRewardPer(blockHash common.Hash, nodeID discover.NodeID, stakingNum uint64, receives []reward.DelegateRewardReceipt, db snapshotdb.DB) error
Types ¶
type BasePlugin ¶
type DelegationInfoWithRewardPerList ¶
type DelegationInfoWithRewardPerList struct { DelegationInfo *staking.DelegationInfo RewardPerList []*reward.DelegateRewardPer }
func NewDelegationInfoWithRewardPerList ¶
func NewDelegationInfoWithRewardPerList(delegationInfo *staking.DelegationInfo, rewardPerList []*reward.DelegateRewardPer) *DelegationInfoWithRewardPerList
func (*DelegationInfoWithRewardPerList) String ¶
func (d *DelegationInfoWithRewardPerList) String() string
type FixIssue1583Plugin ¶
type FixIssue1583Plugin struct{}
func NewFixIssue1583Plugin ¶
func NewFixIssue1583Plugin() *FixIssue1583Plugin
给没有领取委托奖励的账户平账 , https://github.com/PlatONnetwork/PlatON-Go/issues/1583
type FixIssue1625Plugin ¶
type FixIssue1625Plugin struct {
// contains filtered or unexported fields
}
func NewFixIssue1625Plugin ¶
func NewFixIssue1625Plugin(sdb snapshotdb.DB) *FixIssue1625Plugin
type FixIssue1654Plugin ¶
type FixIssue1654Plugin struct {
// contains filtered or unexported fields
}
func NewFixIssue1654Plugin ¶
func NewFixIssue1654Plugin(sdb snapshotdb.DB) *FixIssue1654Plugin
this is use fix validators staking shares error, https://github.com/PlatONnetwork/PlatON-Go/issues/1654
type GovPlugin ¶
type GovPlugin struct {
// contains filtered or unexported fields
}
func GovPluginInstance ¶
func GovPluginInstance() *GovPlugin
func (*GovPlugin) BeginBlock ¶
func (govPlugin *GovPlugin) BeginBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
implement BasePlugin
func (*GovPlugin) EndBlock ¶
func (govPlugin *GovPlugin) EndBlock(blockHash common.Hash, header *types.Header, state xcom.StateDB) error
implement BasePlugin
func (*GovPlugin) SetChainID ¶
type PublicPPOSAPI ¶
type PublicPPOSAPI struct {
// contains filtered or unexported fields
}
Provides an API interface to obtain data related to the economic model
func NewPublicPPOSAPI ¶
func NewPublicPPOSAPI() *PublicPPOSAPI
func (*PublicPPOSAPI) GetWaitSlashingNodeList ¶
func (p *PublicPPOSAPI) GetWaitSlashingNodeList() string
Get node list of zero-out blocks
type RestrictingPlugin ¶
type RestrictingPlugin struct {
// contains filtered or unexported fields
}
func NewRestrictingPlugin ¶
func NewRestrictingPlugin(snapdb snapshotdb.DB) *RestrictingPlugin
func RestrictingInstance ¶
func RestrictingInstance() *RestrictingPlugin
func (*RestrictingPlugin) AddRestrictingRecord ¶
func (rp *RestrictingPlugin) AddRestrictingRecord(from, account common.Address, blockNum uint64, blockHash common.Hash, plans []restricting.RestrictingPlan, state xcom.StateDB, txhash common.Hash) error
AddRestrictingRecord stores four K-V record in StateDB: RestrictingInfo: the account info to be released ReleaseEpoch: the number of accounts to be released on the epoch corresponding to the target block height ReleaseAccount: the account on the index on the target epoch ReleaseAmount: the amount of the account to be released on the target epoch
func (*RestrictingPlugin) AdvanceLockedFunds ¶
func (rp *RestrictingPlugin) AdvanceLockedFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
AdvanceLockedFunds transfer the money from the restricting contract account to the staking contract account
func (*RestrictingPlugin) BeginBlock ¶
func (rp *RestrictingPlugin) BeginBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
BeginBlock does something like check input params before execute transactions, in RestrictingPlugin it does nothing.
func (*RestrictingPlugin) EndBlock ¶
func (rp *RestrictingPlugin) EndBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
EndBlock invoke releaseRestricting
func (*RestrictingPlugin) GetRestrictingInfo ¶
func (rp *RestrictingPlugin) GetRestrictingInfo(account common.Address, state xcom.StateDB) (*restricting.Result, *common.BizError)
func (*RestrictingPlugin) MixAdvanceLockedFunds ¶
func (rp *RestrictingPlugin) MixAdvanceLockedFunds(account common.Address, amount *big.Int, state xcom.StateDB) (*big.Int, *big.Int, error)
MixAdvanceLockedFunds transfer the money from the restricting contract account to the staking contract account,use restricting von first,if restricting not en
func (*RestrictingPlugin) ReturnLockFunds ¶
func (rp *RestrictingPlugin) ReturnLockFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
ReturnLockFunds transfer the money from the staking contract account to the restricting contract account
func (*RestrictingPlugin) ReturnWrongLockFunds ¶
func (rp *RestrictingPlugin) ReturnWrongLockFunds(account common.Address, amount *big.Int, state xcom.StateDB) error
ReturnWrongLockFunds transfer the money from the staking contract account to the restricting contract account
func (*RestrictingPlugin) SlashingNotify ¶
func (rp *RestrictingPlugin) SlashingNotify(account common.Address, amount *big.Int, state xcom.StateDB) error
SlashingNotify modify Debt of restricting account
type RewardMgrPlugin ¶
type RewardMgrPlugin struct {
// contains filtered or unexported fields
}
func RewardMgrInstance ¶
func RewardMgrInstance() *RewardMgrPlugin
func (*RewardMgrPlugin) AllocatePackageBlock ¶
func (rmp *RewardMgrPlugin) AllocatePackageBlock(blockHash common.Hash, head *types.Header, reward *big.Int, state xcom.StateDB) error
AllocatePackageBlock used for reward new block. it returns coinbase and error
func (*RewardMgrPlugin) AllocateStakingReward ¶
func (rmp *RewardMgrPlugin) AllocateStakingReward(blockNumber uint64, blockHash common.Hash, sreward *big.Int, state xcom.StateDB) ([]*staking.Candidate, error)
AllocateStakingReward used for reward staking at the settle block
func (*RewardMgrPlugin) BeginBlock ¶
func (rmp *RewardMgrPlugin) BeginBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
BeginBlock does something like check input params before execute transactions, in RewardMgrPlugin it does nothing.
func (*RewardMgrPlugin) CalDelegateRewardAndNodeReward ¶
func (*RewardMgrPlugin) CalcEpochReward ¶
func (*RewardMgrPlugin) EndBlock ¶
func (rmp *RewardMgrPlugin) EndBlock(blockHash common.Hash, head *types.Header, state xcom.StateDB) error
EndBlock will handle reward work, if it's time to settle, reward staking. Then reward worker for create new block, this is necessary. At last if current block is the last block at the end of year, increasing issuance.
func (*RewardMgrPlugin) GetDelegateReward ¶
func (*RewardMgrPlugin) GetDelegateRewardPerList ¶
func (rmp *RewardMgrPlugin) GetDelegateRewardPerList(blockHash common.Hash, nodeID discover.NodeID, stakingNum, fromEpoch, toEpoch uint64) ([]*reward.DelegateRewardPer, error)
func (*RewardMgrPlugin) HandleDelegatePerReward ¶
func (*RewardMgrPlugin) ReturnDelegateReward ¶
func (*RewardMgrPlugin) SetCurrentNodeID ¶
func (rmp *RewardMgrPlugin) SetCurrentNodeID(nodeId discover.NodeID)
func (*RewardMgrPlugin) WithdrawDelegateReward ¶
func (rmp *RewardMgrPlugin) WithdrawDelegateReward(blockHash common.Hash, blockNum uint64, account common.Address, list []*DelegationInfoWithRewardPerList, state xcom.StateDB) ([]reward.NodeDelegateReward, error)
type SlashingPlugin ¶
type SlashingPlugin struct {
// contains filtered or unexported fields
}
func SlashInstance ¶
func SlashInstance() *SlashingPlugin
func (*SlashingPlugin) BeginBlock ¶
func (*SlashingPlugin) CheckDuplicateSign ¶
func (sp *SlashingPlugin) CheckDuplicateSign(nodeId discover.NodeID, blockNumber uint64, dupType consensus.EvidenceType, stateDB xcom.StateDB) ([]byte, error)
func (*SlashingPlugin) DecodeEvidence ¶
func (sp *SlashingPlugin) DecodeEvidence(dupType consensus.EvidenceType, data string) (consensus.Evidence, error)
func (*SlashingPlugin) GetPrePackAmount ¶
func (sp *SlashingPlugin) GetPrePackAmount(blockNumber uint64, parentHash common.Hash) (map[discover.NodeID]uint32, error)
Get the consensus rate of all nodes in the previous round
func (*SlashingPlugin) SetDecodeEvidenceFun ¶
func (sp *SlashingPlugin) SetDecodeEvidenceFun(f func(dupType consensus.EvidenceType, data string) (consensus.Evidence, error))
func (*SlashingPlugin) SetPrivateKey ¶
func (sp *SlashingPlugin) SetPrivateKey(privateKey *ecdsa.PrivateKey)
type StakingPlugin ¶
type StakingPlugin struct {
// contains filtered or unexported fields
}
func NewStakingPlugin ¶
func NewStakingPlugin(db snapshotdb.DB) *StakingPlugin
func (*StakingPlugin) BeginBlock ¶
func (*StakingPlugin) CreateCandidate ¶
func (*StakingPlugin) DeclarePromoteNotify ¶
func (*StakingPlugin) EditCandidate ¶
func (sk *StakingPlugin) EditCandidate(blockHash common.Hash, blockNumber *big.Int, canAddr common.NodeAddress, can *staking.Candidate) error
func (*StakingPlugin) ElectNextVerifierList ¶
func (*StakingPlugin) GetCanBase ¶
func (sk *StakingPlugin) GetCanBase(blockHash common.Hash, addr common.NodeAddress) (*staking.CandidateBase, error)
func (*StakingPlugin) GetCanBaseByIrr ¶
func (sk *StakingPlugin) GetCanBaseByIrr(addr common.NodeAddress) (*staking.CandidateBase, error)
func (*StakingPlugin) GetCanBaseList ¶
func (sk *StakingPlugin) GetCanBaseList(blockHash common.Hash, blockNumber uint64) (staking.CandidateBaseQueue, error)
func (*StakingPlugin) GetCanMutable ¶
func (sk *StakingPlugin) GetCanMutable(blockHash common.Hash, addr common.NodeAddress) (*staking.CandidateMutable, error)
func (*StakingPlugin) GetCanMutableByIrr ¶
func (sk *StakingPlugin) GetCanMutableByIrr(addr common.NodeAddress) (*staking.CandidateMutable, error)
func (*StakingPlugin) GetCandidateCompactInfo ¶
func (sk *StakingPlugin) GetCandidateCompactInfo(blockHash common.Hash, blockNumber uint64, addr common.NodeAddress) (*staking.CandidateHex, error)
func (*StakingPlugin) GetCandidateInfo ¶
func (sk *StakingPlugin) GetCandidateInfo(blockHash common.Hash, addr common.NodeAddress) (*staking.Candidate, error)
func (*StakingPlugin) GetCandidateInfoByIrr ¶
func (sk *StakingPlugin) GetCandidateInfoByIrr(addr common.NodeAddress) (*staking.Candidate, error)
func (*StakingPlugin) GetCandidateList ¶
func (sk *StakingPlugin) GetCandidateList(blockHash common.Hash, blockNumber uint64) (staking.CandidateHexQueue, error)
func (*StakingPlugin) GetCandidateONEpoch ¶
func (sk *StakingPlugin) GetCandidateONEpoch(blockHash common.Hash, blockNumber uint64, isCommit bool) (staking.CandidateQueue, error)
func (*StakingPlugin) GetCandidateONRound ¶
func (sk *StakingPlugin) GetCandidateONRound(blockHash common.Hash, blockNumber uint64, flag uint, isCommit bool) (staking.CandidateQueue, error)
func (*StakingPlugin) GetDelegateExCompactInfo ¶
func (*StakingPlugin) GetDelegateExInfo ¶
func (*StakingPlugin) GetDelegateExInfoByIrr ¶
func (sk *StakingPlugin) GetDelegateExInfoByIrr(delAddr common.Address, nodeId discover.NodeID, stakeBlockNumber uint64) (*staking.DelegationEx, error)
func (*StakingPlugin) GetDelegateInfo ¶
func (*StakingPlugin) GetDelegateInfoByIrr ¶
func (sk *StakingPlugin) GetDelegateInfoByIrr(delAddr common.Address, nodeId discover.NodeID, stakeBlockNumber uint64) (*staking.Delegation, error)
func (*StakingPlugin) GetDelegatesInfo ¶
func (sk *StakingPlugin) GetDelegatesInfo(blockHash common.Hash, delAddr common.Address) ([]*staking.DelegationInfo, error)
func (*StakingPlugin) GetLastNumber ¶
func (sk *StakingPlugin) GetLastNumber(blockNumber uint64) uint64
func (*StakingPlugin) GetRelatedListByDelAddr ¶
func (sk *StakingPlugin) GetRelatedListByDelAddr(blockHash common.Hash, addr common.Address) (staking.DelRelatedQueue, error)
func (*StakingPlugin) GetValidator ¶
func (sk *StakingPlugin) GetValidator(blockNumber uint64) (*cbfttypes.Validators, error)
func (*StakingPlugin) GetValidatorList ¶
func (sk *StakingPlugin) GetValidatorList(blockHash common.Hash, blockNumber uint64, flag uint, isCommit bool) ( staking.ValidatorExQueue, error)
flag:NOTE 0: Query previous round consensus validator 1: Query current round consensus validaor 2: Query next round consensus validator
func (*StakingPlugin) GetVerifierCandidateInfo ¶
func (*StakingPlugin) GetVerifierList ¶
func (sk *StakingPlugin) GetVerifierList(blockHash common.Hash, blockNumber uint64, isCommit bool) (staking.ValidatorExQueue, error)
func (*StakingPlugin) HandleUnCandidateItem ¶
func (*StakingPlugin) IncreaseStaking ¶
func (*StakingPlugin) IsCandidate ¶
func (*StakingPlugin) IsCandidateNode ¶
func (sk *StakingPlugin) IsCandidateNode(nodeID discover.NodeID) bool
NOTE: Verify that it is the validator of the current Epoch
func (*StakingPlugin) IsCurrValidator ¶
func (*StakingPlugin) IsCurrVerifier ¶
func (*StakingPlugin) ListCurrentValidatorID ¶
func (*StakingPlugin) ListVerifierNodeID ¶
func (*StakingPlugin) ProposalPassedNotify ¶
func (*StakingPlugin) RollBackStaking ¶
func (sk *StakingPlugin) RollBackStaking(state xcom.StateDB, blockHash common.Hash, blockNumber *big.Int, addr common.NodeAddress, typ uint16) error
/ This method may only be called when creatStaking
func (*StakingPlugin) SetEventMux ¶
func (sk *StakingPlugin) SetEventMux(eventMux *event.TypeMux)
func (*StakingPlugin) SlashCandidates ¶
func (sk *StakingPlugin) SlashCandidates(state xcom.StateDB, blockHash common.Hash, blockNumber uint64, queue ...*staking.SlashNodeItem) error
NotifyPunishedVerifiers
func (*StakingPlugin) WithdrewDelegation ¶
func (*StakingPlugin) WithdrewStaking ¶
type WaitSlashingNode ¶
type WaitSlashingNode struct { NodeId discover.NodeID // The number of consensus rounds when the first zero block appeared Round uint64 // Used to record the number of times the node has zero blocks. // Each bit represents whether each consensus round is zero block. CountBit uint64 }
Nodes with zero blocks will construct this structure and store it in the queue waiting for punishment.
func (*WaitSlashingNode) String ¶
func (w *WaitSlashingNode) String() string