piggy bank state
This commit is contained in:
parent
97397e63da
commit
eb6f51ed45
|
@ -23,11 +23,8 @@ type DecCoin struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Global struct {
|
type Global struct {
|
||||||
PrevBondedTokens sdk.Dec // bonded token amount for the global pool on the previous block
|
Accum sdk.Dec // global accumulation factor for lazy calculations
|
||||||
Adjustment sdk.Dec // global adjustment factor for lazy calculations
|
|
||||||
Pool DecCoins // funds for all validators which have yet to be withdrawn
|
Pool DecCoins // funds for all validators which have yet to be withdrawn
|
||||||
PrevReceivedPool DecCoins // funds added to the pool on the previous block
|
|
||||||
EverReceivedPool DecCoins // total funds ever added to the pool
|
|
||||||
CommunityFund DecCoins // pool for community funds yet to be spent
|
CommunityFund DecCoins // pool for community funds yet to be spent
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -45,22 +42,18 @@ Validator distribution information for the relevant validator is updated each ti
|
||||||
```golang
|
```golang
|
||||||
type ValidatorDistribution struct {
|
type ValidatorDistribution struct {
|
||||||
CommissionWithdrawalHeight int64 // last time this validator withdrew commission
|
CommissionWithdrawalHeight int64 // last time this validator withdrew commission
|
||||||
Adjustment sdk.Dec // global pool adjustment factor
|
Accum sdk.Dec // global pool accumulation factor
|
||||||
ProposerAdjustment DecCoins // proposer pool adjustment factor
|
ProposerAccum sdk.Dec // proposer pool accumulation factor
|
||||||
ProposerPool DecCoins // reward pool collected from being the proposer
|
ProposerPool DecCoins // reward pool collected from being the proposer
|
||||||
EverReceivedProposerReward DecCoins // all rewards ever collected from being the proposer
|
|
||||||
PrevReceivedProposerReward DecCoins // previous rewards collected from being the proposer
|
|
||||||
PrevBondedTokens sdk.Dec // bonded token amount on the previous block
|
|
||||||
PrevDelegatorShares sdk.Dec // amount of delegator shares for the validator on the previous block
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Delegation Distribution
|
### Delegation Distribution
|
||||||
|
|
||||||
Each delegation holds multiple adjustment factors to specify its entitlement to
|
Each delegation holds multiple accumulation factors to specify its entitlement to
|
||||||
the rewards from a validator. `AdjustmentPool` is used to passively calculate
|
the rewards from a validator. `Accum` is used to passively calculate
|
||||||
each bonds entitled fees from the `RewardPool`. `AdjustmentPool` is used to
|
each bonds entitled rewards from the `RewardPool`. `AccumProposer` is used to
|
||||||
passively calculate each bonds entitled fees from
|
passively calculate each bonds entitled rewards from
|
||||||
`ValidatorDistribution.ProposerRewardPool`
|
`ValidatorDistribution.ProposerRewardPool`
|
||||||
|
|
||||||
- DelegatorDistribution: ` 0x02 | DelegatorAddr | ValOwnerAddr -> amino(delegatorDist)`
|
- DelegatorDistribution: ` 0x02 | DelegatorAddr | ValOwnerAddr -> amino(delegatorDist)`
|
||||||
|
@ -68,33 +61,8 @@ passively calculate each bonds entitled fees from
|
||||||
```golang
|
```golang
|
||||||
type DelegatorDist struct {
|
type DelegatorDist struct {
|
||||||
WithdrawalHeight int64 // last time this delegation withdrew rewards
|
WithdrawalHeight int64 // last time this delegation withdrew rewards
|
||||||
Adjustment sdk.Dec // fee provisioning adjustment factor
|
Accum sdk.Dec // reward provisioning accumulation factor
|
||||||
AdjustmentProposer DecCoins // proposers pool adjustment factor
|
AccumProposer sdk.Dec // proposers pool accumulation factor
|
||||||
PrevTokens sdk.Dec // bonded tokens held by the delegation on the previous block
|
|
||||||
PrevShares sdk.Dec // delegator shares held by the delegation on the previous block
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Power Change
|
|
||||||
|
|
||||||
Every instance that the voting power changes, information about the state of
|
|
||||||
the validator set during the change must be recorded as a `PowerChange` for
|
|
||||||
other validators to run through. Each power change is indexed by its block
|
|
||||||
height.
|
|
||||||
|
|
||||||
- PowerChange: `0x03 | amino(Height) -> amino(validatorDist)`
|
|
||||||
|
|
||||||
```golang
|
|
||||||
type PowerChange struct {
|
|
||||||
Height int64 // block height at change
|
|
||||||
ValidatorBondedTokens sdk.Dec // following used to create distribution scenarios
|
|
||||||
ValidatorDelegatorShares sdk.Dec
|
|
||||||
ValidatorDelegatorShareExRate sdk.Dec
|
|
||||||
ValidatorCommission sdk.Dec
|
|
||||||
PoolBondedTokens sdk.Dec
|
|
||||||
Global Global
|
|
||||||
ValDistr ValidatorDistribution
|
|
||||||
DelegationShares sdk.Dec
|
|
||||||
DelDistr DelegatorDistribution
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
Loading…
Reference in New Issue