-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add custom inflation calculation #120
base: master
Are you sure you want to change the base?
Conversation
This part is done in this PR.
I think, instead of defining a parameter in the cosmos-sdk's mint module, we can create a separate subspace in our app for storing such extra parameters and use them in the custom inflation calculator function, which will again be defined in our code. The reason is that this particular parameter is very specific to our way of calculating the inflation and doesn't seem fit to be included in the sdk for generic purposes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great - thanks for the light touch on the upstream repo 🚀
x/mint/abci.go
Outdated
@@ -20,7 +20,11 @@ func BeginBlocker(ctx sdk.Context, k keeper.Keeper) { | |||
// recalculate inflation rate | |||
totalStakingSupply := k.StakingTokenSupply(ctx) | |||
bondedRatio := k.BondedRatio(ctx) | |||
minter.Inflation = minter.NextInflationRate(params, bondedRatio) | |||
if ic == nil { | |||
minter.Inflation = minter.NextInflationRate(params, bondedRatio) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can minter.NextInflationRate()
be turned into a types.InflationCalculationFn
function so that it can be the default?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Thank you @arijitAD
Added PR in origin cosmos#10441 |
Description
The Akash whitepaper defines a time-based function for the inflation:
I(t)
. The waycosmos-sdk
currently calculates inflation is different as compared to what the Akash whitepaper prescribes. So, we need thecosmos-sdk
to accept a custom function to calculate inflation. When the custom function isn't provided, it should use the default inflation calculation logic as it currently does.The inflation function defined in the Akash whitepaper does not account for the inflation range that is an important piece of cosmos inflation mechanics. It is proposed that we add a chain parameter for deriving a range from
I(t)
. Let's call the chain parameterR
. It will be a percentage ofI(t)
. So fromI(t)
, we can get a range[I(t) - I(t) * R, I(t) + I(t) * R]
, and then we can input that range as min, max inflation parameters of the current inflation mechanics.Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...
!
to the type prefix if API or client breaking changeCHANGELOG.md
Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...
!
in the type prefix if API or client breaking change