[Proposal] [Draft] Suggested changes to a few cosmological constants

Are you planning to put both #2 and #3 proposals up at the same time, after #1 is passed and hard fork is finished?

Probably, though still as separate parameter change proposals.

Final draft proposal “Activate the Community Pool”: [Proposal] [Draft] Activate the Community Pool

Planning to pick this back up in the new year - I may split up the changes though - any further thoughts with the benefit of more mainnet experience?

2 Likes

Hey @cwgoes, by my calculation, it appears that the rate that inflation changes is relative to the current rate. Not sure how clear that statement is, so here’s an example:

Inflation was 7.19% on Dec 30, 2019. If inflation could move between 7% and 20% in a year, that means it would change by just over 1% per month. However, tomorrow is Jan 30 and inflation is currently ~7.09%.

It appears that the rate of inflation is changing relative to a proportion of the current rate of inflation, if that makes sense. I think that the lower the rate of inflation, the slower it changes.

Indeed, my original analysis was not quite correct, but I don’t think it’s relative to the current inflation rate - instead it is relative to the ratio of the current & desired bonded ratios.

From x/mint/internal/types/minter.go:

func (m Minter) NextInflationRate(params Params, bondedRatio sdk.Dec) sdk.Dec {
	// The target annual inflation rate is recalculated for each previsions cycle. The
	// inflation is also subject to a rate change (positive or negative) depending on
	// the distance from the desired ratio (67%). The maximum rate change possible is
	// defined to be 13% per year, however the annual inflation is capped as between
	// 7% and 20%.

	// (1 - bondedRatio/GoalBonded) * InflationRateChange
	inflationRateChangePerYear := sdk.OneDec().
		Sub(bondedRatio.Quo(params.GoalBonded)).
		Mul(params.InflationRateChange)
	inflationRateChange := inflationRateChangePerYear.Quo(sdk.NewDec(int64(params.BlocksPerYear)))

	// adjust the new annual inflation for this next cycle
	inflation := m.Inflation.Add(inflationRateChange) // note inflationRateChange may be negative
	if inflation.GT(params.InflationMax) {
		inflation = params.InflationMax
	}
	if inflation.LT(params.InflationMin) {
		inflation = params.InflationMin
	}

	return inflation
}

I still think that we should increase the InflationRateChange parameter - perhaps by a larger factor.

I won’t have time to pick any of these parameter change proposals up until after IBC 1.0, though - would the Governance Working Group be interested in taking some of these over?

2 Likes

Right now the GWG is focused on education and helping others to formalize their proposals, rather than taking positions on or launching proposals. I could take a closer look at it personally, though!

1 Like