Skip to content

Commit d859ad1

Browse files
mergify[bot]damiannolan
andauthoredFeb 14, 2023
simapp and upgrade configuration for e2e v7 upgrade (backport #3136) (#3143)
* simapp and upgrade configuration for e2e v7 upgrade (#3136) * Register required types for upgrade E2E tests * removed temporary function update * registering additional types and specifying rc0 tag in upgrade test * updated workflow tag * bump version to 6.1.0 * adding keytables to params subspaces in app.go * replace with pr docker build for testing * adding more wait for blocks * temporarily add new grpc services * removing last addition * configure store loaders for upgrade * adding consensus params migration from baseapp * testing without baseapp param migration * readd baseapp params migration * commiting updates, autocli and reflection svc * fix in run e2e script * adding crisis storekey to store upgrades * removing additional wait for blocks --------- Co-authored-by: Cian Hatton <cianhatton@gmail.com> (cherry picked from commit 80f162c) # Conflicts: # .github/workflows/e2e-upgrade.yaml # e2e/scripts/run-e2e.sh * rm -rf e2e * rm e2e-upgrade.yaml --------- Co-authored-by: Damian Nolan <damiannolan@gmail.com>
1 parent 029cb21 commit d859ad1

File tree

2 files changed

+55
-8
lines changed

2 files changed

+55
-8
lines changed
 

‎testing/simapp/app.go

+46-8
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,22 @@ package simapp
22

33
import (
44
"encoding/json"
5+
"fmt"
56
"io"
67
"net/http"
78
"os"
89
"path/filepath"
910

11+
autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
12+
reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1"
1013
"github.com/cosmos/cosmos-sdk/baseapp"
1114
"github.com/cosmos/cosmos-sdk/client"
1215
_ "github.com/cosmos/cosmos-sdk/client/docs/statik" // this is used for serving docs
1316
nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node"
1417
"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
1518
"github.com/cosmos/cosmos-sdk/codec"
1619
"github.com/cosmos/cosmos-sdk/codec/types"
20+
runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services"
1721
"github.com/cosmos/cosmos-sdk/server/api"
1822
"github.com/cosmos/cosmos-sdk/server/config"
1923
servertypes "github.com/cosmos/cosmos-sdk/server/types"
@@ -305,7 +309,7 @@ func NewSimApp(
305309
app.ParamsKeeper = initParamsKeeper(appCodec, legacyAmino, keys[paramstypes.StoreKey], tkeys[paramstypes.TStoreKey])
306310

307311
// set the BaseApp's parameter store
308-
app.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, keys[upgradetypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String())
312+
app.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, keys[consensusparamtypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String())
309313
bApp.SetParamStore(&app.ConsensusParamsKeeper)
310314

311315
// add capability keeper and ScopeToModule for ibc module
@@ -602,6 +606,14 @@ func NewSimApp(
602606
app.configurator = module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter())
603607
app.mm.RegisterServices(app.configurator)
604608

609+
autocliv1.RegisterQueryServer(app.GRPCQueryRouter(), runtimeservices.NewAutoCLIQueryService(app.mm.Modules))
610+
611+
reflectionSvc, err := runtimeservices.NewReflectionService()
612+
if err != nil {
613+
panic(err)
614+
}
615+
reflectionv1.RegisterReflectionServiceServer(app.GRPCQueryRouter(), reflectionSvc)
616+
605617
// add test gRPC service for testing gRPC queries in isolation
606618
testdata.RegisterQueryServer(app.GRPCQueryRouter(), testdata.QueryImpl{})
607619

@@ -658,6 +670,7 @@ func NewSimApp(
658670
app.SetEndBlocker(app.EndBlocker)
659671

660672
app.setupUpgradeHandlers()
673+
app.setupUpgradeStoreLoaders()
661674

662675
if loadLatest {
663676
if err := app.LoadLatestVersion(); err != nil {
@@ -823,6 +836,9 @@ func (app *SimApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APICon
823836
// Register legacy and grpc-gateway routes for all modules.
824837
ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
825838

839+
// Register nodeservice grpc-gateway routes.
840+
nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
841+
826842
// register swagger API from root so that other applications can override easily
827843
if apiConfig.Swagger {
828844
RegisterSwaggerAPI(clientCtx, apiSvr.Router)
@@ -892,14 +908,14 @@ func BlockedAddresses() map[string]bool {
892908
func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper {
893909
paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey)
894910

895-
paramsKeeper.Subspace(authtypes.ModuleName)
896-
paramsKeeper.Subspace(banktypes.ModuleName)
897-
paramsKeeper.Subspace(stakingtypes.ModuleName)
898-
paramsKeeper.Subspace(minttypes.ModuleName)
899-
paramsKeeper.Subspace(distrtypes.ModuleName)
900-
paramsKeeper.Subspace(slashingtypes.ModuleName)
911+
paramsKeeper.Subspace(authtypes.ModuleName).WithKeyTable(authtypes.ParamKeyTable())
912+
paramsKeeper.Subspace(banktypes.ModuleName).WithKeyTable(banktypes.ParamKeyTable())
913+
paramsKeeper.Subspace(stakingtypes.ModuleName).WithKeyTable(stakingtypes.ParamKeyTable())
914+
paramsKeeper.Subspace(minttypes.ModuleName).WithKeyTable(minttypes.ParamKeyTable())
915+
paramsKeeper.Subspace(distrtypes.ModuleName).WithKeyTable(distrtypes.ParamKeyTable())
916+
paramsKeeper.Subspace(slashingtypes.ModuleName).WithKeyTable(slashingtypes.ParamKeyTable())
901917
paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govv1.ParamKeyTable())
902-
paramsKeeper.Subspace(crisistypes.ModuleName)
918+
paramsKeeper.Subspace(crisistypes.ModuleName).WithKeyTable(crisistypes.ParamKeyTable())
903919
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
904920
paramsKeeper.Subspace(ibcexported.ModuleName)
905921
paramsKeeper.Subspace(icacontrollertypes.SubModuleName)
@@ -938,6 +954,28 @@ func (app *SimApp) setupUpgradeHandlers() {
938954
app.configurator,
939955
app.appCodec,
940956
app.IBCKeeper.ClientKeeper,
957+
app.ConsensusParamsKeeper,
958+
app.ParamsKeeper,
941959
),
942960
)
943961
}
962+
963+
// setupUpgradeStoreLoaders sets all necessary store loaders required by upgrades.
964+
func (app *SimApp) setupUpgradeStoreLoaders() {
965+
upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
966+
if err != nil {
967+
tmos.Exit(fmt.Sprintf("failed to read upgrade info from disk %s", err))
968+
}
969+
970+
if upgradeInfo.Name == v7.UpgradeName && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
971+
storeUpgrades := storetypes.StoreUpgrades{
972+
Added: []string{
973+
consensusparamtypes.StoreKey,
974+
crisistypes.StoreKey,
975+
},
976+
}
977+
978+
// configure store loader that checks if version == upgradeHeight and applies store upgrades
979+
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
980+
}
981+
}

‎testing/simapp/upgrades/v7/upgrades.go

+9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package v7
22

33
import (
4+
"github.com/cosmos/cosmos-sdk/baseapp"
45
"github.com/cosmos/cosmos-sdk/codec"
56
sdk "github.com/cosmos/cosmos-sdk/types"
67
"github.com/cosmos/cosmos-sdk/types/module"
8+
consensusparamskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper"
9+
paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper"
10+
paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
711
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
812

913
clientkeeper "github.com/cosmos/ibc-go/v7/modules/core/02-client/keeper"
@@ -21,13 +25,18 @@ func CreateUpgradeHandler(
2125
configurator module.Configurator,
2226
cdc codec.BinaryCodec,
2327
clientKeeper clientkeeper.Keeper,
28+
consensusParamsKeeper consensusparamskeeper.Keeper,
29+
paramsKeeper paramskeeper.Keeper,
2430
) upgradetypes.UpgradeHandler {
2531
return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
2632
// OPTIONAL: prune expired tendermint consensus states to save storage space
2733
if _, err := ibctmmigrations.PruneExpiredConsensusStates(ctx, cdc, clientKeeper); err != nil {
2834
return nil, err
2935
}
3036

37+
legacyBaseAppSubspace := paramsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable())
38+
baseapp.MigrateParams(ctx, legacyBaseAppSubspace, &consensusParamsKeeper)
39+
3140
return mm.RunMigrations(ctx, configurator, vm)
3241
}
3342
}

0 commit comments

Comments
 (0)