mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-10-31 15:17:27 +00:00 
			
		
		
		
	Set the CDP Block Interval to 100 during v0.26.x upgrade (#1865)
* set CDP block interval to 100 to only run interest synchronization for risky cdps every 100 blocks instead of every block * refactor and use constant for setting to improve clarity; update block interval to 50 instead of 100. This will decrease risk by running around every 6 minutes instead of 12 mintues for current mainnet block times.
This commit is contained in:
		
							parent
							
								
									8f93ca2048
								
							
						
					
					
						commit
						c9d900be2c
					
				| @ -27,6 +27,8 @@ import ( | |||||||
| const ( | const ( | ||||||
| 	UpgradeName_Mainnet = "v0.26.0" | 	UpgradeName_Mainnet = "v0.26.0" | ||||||
| 	UpgradeName_Testnet = "v0.26.0-alpha.0" | 	UpgradeName_Testnet = "v0.26.0-alpha.0" | ||||||
|  | 
 | ||||||
|  | 	CDPLiquidationBlockInterval = int64(50) | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // RegisterUpgradeHandlers registers the upgrade handlers for the app.
 | // RegisterUpgradeHandlers registers the upgrade handlers for the app.
 | ||||||
| @ -123,6 +125,16 @@ func upgradeHandler( | |||||||
| 		// dedicated x/consensus module.
 | 		// dedicated x/consensus module.
 | ||||||
| 		baseapp.MigrateParams(ctx, baseAppLegacySS, &app.consensusParamsKeeper) | 		baseapp.MigrateParams(ctx, baseAppLegacySS, &app.consensusParamsKeeper) | ||||||
| 
 | 
 | ||||||
| 		return app.mm.RunMigrations(ctx, app.configurator, fromVM) | 		// run migrations for all modules and return new consensus version map
 | ||||||
|  | 		versionMap, err := app.mm.RunMigrations(ctx, app.configurator, fromVM) | ||||||
|  | 
 | ||||||
|  | 		// Set risky CDP's to sync interest and liquidate every 100 blocks instead
 | ||||||
|  | 		// of every block.  This significantly improves performance as this cdp
 | ||||||
|  | 		// process is a signification porition of time spent during block execution.
 | ||||||
|  | 		cdpParams := app.cdpKeeper.GetParams(ctx) | ||||||
|  | 		cdpParams.LiquidationBlockInterval = CDPLiquidationBlockInterval | ||||||
|  | 		app.cdpKeeper.SetParams(ctx, cdpParams) | ||||||
|  | 
 | ||||||
|  | 		return versionMap, err | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
| @ -8,6 +8,7 @@ import ( | |||||||
| 	sdk "github.com/cosmos/cosmos-sdk/types" | 	sdk "github.com/cosmos/cosmos-sdk/types" | ||||||
| 	consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" | 	consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" | ||||||
| 	govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1" | 	govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1" | ||||||
|  | 	cdptypes "github.com/kava-labs/kava/x/cdp/types" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func (suite *IntegrationTestSuite) TestUpgradeParams_SDK() { | func (suite *IntegrationTestSuite) TestUpgradeParams_SDK() { | ||||||
| @ -98,6 +99,26 @@ func (suite *IntegrationTestSuite) TestUpgradeParams_Consensus() { | |||||||
| 	suite.Require().Equal(expectedParams, *paramsAfter.Params, "x/consensus params after upgrade should be as expected") | 	suite.Require().Equal(expectedParams, *paramsAfter.Params, "x/consensus params after upgrade should be as expected") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (suite *IntegrationTestSuite) TestUpgradeParams_CDP_Interval() { | ||||||
|  | 	suite.SkipIfUpgradeDisabled() | ||||||
|  | 
 | ||||||
|  | 	beforeUpgradeCtx := suite.Kava.Grpc.CtxAtHeight(suite.UpgradeHeight - 1) | ||||||
|  | 	afterUpgradeCtx := suite.Kava.Grpc.CtxAtHeight(suite.UpgradeHeight) | ||||||
|  | 
 | ||||||
|  | 	grpcClient := suite.Kava.Grpc | ||||||
|  | 
 | ||||||
|  | 	paramsBefore, err := grpcClient.Query.Cdp.Params(beforeUpgradeCtx, &cdptypes.QueryParamsRequest{}) | ||||||
|  | 	suite.Require().NoError(err) | ||||||
|  | 	paramsAfter, err := grpcClient.Query.Cdp.Params(afterUpgradeCtx, &cdptypes.QueryParamsRequest{}) | ||||||
|  | 	suite.Require().NoError(err) | ||||||
|  | 
 | ||||||
|  | 	expectedParams := paramsBefore.Params | ||||||
|  | 	expectedParams.LiquidationBlockInterval = int64(50) | ||||||
|  | 
 | ||||||
|  | 	suite.Require().Equal(expectedParams, paramsAfter.Params, | ||||||
|  | 		"expected cdp parameters to equal previous parameters with a liquidation block interval of 100") | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func mustParseDuration(s string) *time.Duration { | func mustParseDuration(s string) *time.Duration { | ||||||
| 	d, err := time.ParseDuration(s) | 	d, err := time.ParseDuration(s) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Nick DeLuca
						Nick DeLuca