Skip to content
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

Silei/hotfix0.4.1 : remove the upgrade related functions #188

Merged
merged 4 commits into from
Aug 31, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Gopkg.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
[[constraint]]
name = "github.com/cosmos/cosmos-sdk"
source = "https://github.com/irisnet/cosmos-sdk.git"
version = "=v0.23.0-iris1"
version = "=v0.23.0-iris2"

[[override]]
name = "github.com/golang/protobuf"
Expand Down
189 changes: 91 additions & 98 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,11 @@ import (
"github.com/cosmos/cosmos-sdk/x/stake"
"github.com/irisnet/irishub/modules/upgrade"

"errors"
"fmt"
"github.com/cosmos/cosmos-sdk/server"
"github.com/spf13/viper"
tmcli "github.com/tendermint/tendermint/libs/cli"
"github.com/tendermint/tendermint/node"
sm "github.com/tendermint/tendermint/state"
"strings"
)

const (
appName = "IrisApp"
FlagReplay = "replay"
//FlagReplay = "replay"
)

// default home directories for expected binaries
Expand All @@ -58,7 +50,7 @@ type IrisApp struct {
keyGov *sdk.KVStoreKey
keyFeeCollection *sdk.KVStoreKey
keyParams *sdk.KVStoreKey
keyUpgrade *sdk.KVStoreKey
//keyUpgrade *sdk.KVStoreKey

// Manage getting and setting accounts
accountMapper auth.AccountMapper
Expand All @@ -69,7 +61,7 @@ type IrisApp struct {
slashingKeeper slashing.Keeper
govKeeper gov.Keeper
paramsKeeper params.Keeper
upgradeKeeper upgrade.Keeper
//upgradeKeeper upgrade.Keeper
}

func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptions ...func(*bam.BaseApp)) *IrisApp {
Expand All @@ -90,13 +82,13 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio
keyGov: sdk.NewKVStoreKey("gov"),
keyFeeCollection: sdk.NewKVStoreKey("fee"),
keyParams: sdk.NewKVStoreKey("params"),
keyUpgrade: sdk.NewKVStoreKey("upgrade"),
//keyUpgrade: sdk.NewKVStoreKey("upgrade"),
}

var lastHeight int64
if viper.GetBool(FlagReplay) {
lastHeight = app.replay()
}
//var lastHeight int64
//if viper.GetBool(FlagReplay) {
// lastHeight = app.replay()
//}

// define the accountMapper
app.accountMapper = auth.NewAccountMapper(
Expand All @@ -112,7 +104,7 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio
app.stakeKeeper = stake.NewKeeper(app.cdc, app.keyStake, app.coinKeeper, app.RegisterCodespace(stake.DefaultCodespace))
app.slashingKeeper = slashing.NewKeeper(app.cdc, app.keySlashing, app.stakeKeeper, app.RegisterCodespace(slashing.DefaultCodespace))
app.feeCollectionKeeper = auth.NewFeeCollectionKeeper(app.cdc, app.keyFeeCollection, app.paramsKeeper.Getter())
app.upgradeKeeper = upgrade.NewKeeper(app.cdc, app.keyUpgrade, app.stakeKeeper, app.paramsKeeper.Setter())
//app.upgradeKeeper = upgrade.NewKeeper(app.cdc, app.keyUpgrade, app.stakeKeeper, app.paramsKeeper.Setter())
app.govKeeper = gov.NewKeeper(app.cdc, app.keyGov, app.paramsKeeper.Setter(), app.coinKeeper, app.stakeKeeper, app.RegisterCodespace(gov.DefaultCodespace))
//app.govKeeper = gov.NewKeeper(app.cdc, app.keyGov, app.paramsKeeper.Setter(), app.coinKeeper, app.stakeKeeper, app.RegisterCodespace(gov.DefaultCodespace))

Expand All @@ -123,28 +115,29 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio
AddRoute("ibc", []*sdk.KVStoreKey{app.keyIBC, app.keyAccount}, ibc.NewHandler(app.ibcMapper, app.coinKeeper)).
AddRoute("stake", []*sdk.KVStoreKey{app.keyStake, app.keyAccount}, stake.NewHandler(app.stakeKeeper)).
AddRoute("slashing", []*sdk.KVStoreKey{app.keySlashing, app.keyStake}, slashing.NewHandler(app.slashingKeeper)).
AddRoute("gov", []*sdk.KVStoreKey{app.keyGov, app.keyAccount, app.keyStake, app.keyParams}, gov.NewHandler(app.govKeeper)).
AddRoute("upgrade", []*sdk.KVStoreKey{app.keyUpgrade, app.keyStake}, upgrade.NewHandler(app.upgradeKeeper))
AddRoute("gov", []*sdk.KVStoreKey{app.keyGov, app.keyAccount, app.keyStake, app.keyParams}, gov.NewHandler(app.govKeeper))
//AddRoute("upgrade", []*sdk.KVStoreKey{app.keyUpgrade, app.keyStake}, upgrade.NewHandler(app.upgradeKeeper))

// initialize BaseApp
app.SetInitChainer(app.initChainer)
app.SetBeginBlocker(app.BeginBlocker)
app.SetEndBlocker(app.EndBlocker)
app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, app.feeCollectionKeeper))
app.SetFeeRefundHandler(auth.NewFeeRefundHandler(app.accountMapper, app.feeCollectionKeeper))
app.MountStoresIAVL(app.keyMain, app.keyAccount, app.keyIBC, app.keyStake, app.keySlashing, app.keyGov, app.keyFeeCollection, app.keyParams, app.keyUpgrade)
app.SetRunMsg(app.runMsgs)
app.MountStoresIAVL(app.keyMain, app.keyAccount, app.keyIBC, app.keyStake, app.keySlashing, app.keyGov, app.keyFeeCollection, app.keyParams/*, app.keyUpgrade*/)
//app.SetRunMsg(app.runMsgs)
var err error
if viper.GetBool(FlagReplay) {
err = app.LoadVersion(lastHeight, app.keyMain)
} else {
err = app.LoadLatestVersion(app.keyMain)
}
//if viper.GetBool(FlagReplay) {
// err = app.LoadVersion(lastHeight, app.keyMain)
//} else {
// err = app.LoadLatestVersion(app.keyMain)
//}
err = app.LoadLatestVersion(app.keyMain)
if err != nil {
cmn.Exit(err.Error())
}

upgrade.RegisterModuleList(app.Router())
//upgrade.RegisterModuleList(app.Router())

return app
}
Expand Down Expand Up @@ -178,7 +171,7 @@ func (app *IrisApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.R
validatorUpdates := stake.EndBlocker(ctx, app.stakeKeeper)

tags, _ := gov.EndBlocker(ctx, app.govKeeper)
tags.AppendTags(upgrade.EndBlocker(ctx, app.upgradeKeeper))
//tags.AppendTags(upgrade.EndBlocker(ctx, app.upgradeKeeper))

return abci.ResponseEndBlock{
ValidatorUpdates: validatorUpdates,
Expand Down Expand Up @@ -233,7 +226,7 @@ func (app *IrisApp) initChainer(ctx sdk.Context, req abci.RequestInitChain) abci

auth.InitGenesis(ctx, app.paramsKeeper.Setter(), feeTokenGensisConfig)

upgrade.InitGenesis(ctx, app.upgradeKeeper, app.Router())
//upgrade.InitGenesis(ctx, app.upgradeKeeper, app.Router())

return abci.ResponseInitChain{}
}
Expand Down Expand Up @@ -263,72 +256,72 @@ func (app *IrisApp) ExportAppStateAndValidators() (appState json.RawMessage, val
return appState, validators, nil
}

// Iterates through msgs and executes them
func (app *IrisApp) runMsgs(ctx sdk.Context, msgs []sdk.Msg) (result sdk.Result) {
// accumulate results
logs := make([]string, 0, len(msgs))
var data []byte // NOTE: we just append them all (?!)
var tags sdk.Tags // also just append them all
var code sdk.ABCICodeType
for msgIdx, msg := range msgs {
// Match route.
msgType, err := app.upgradeKeeper.GetMsgTypeInCurrentVersion(ctx, msg)
if err != nil {
return err.Result()
}

handler := app.Router().Route(msgType)
if handler == nil {
return sdk.ErrUnknownRequest("Unrecognized Msg type: " + msgType).Result()
}

msgResult := handler(ctx, msg)

// NOTE: GasWanted is determined by ante handler and
// GasUsed by the GasMeter

// Append Data and Tags
data = append(data, msgResult.Data...)
tags = append(tags, msgResult.Tags...)

// Stop execution and return on first failed message.
if !msgResult.IsOK() {
logs = append(logs, fmt.Sprintf("Msg %d failed: %s", msgIdx, msgResult.Log))
code = msgResult.Code
break
}

// Construct usable logs in multi-message transactions.
logs = append(logs, fmt.Sprintf("Msg %d: %s", msgIdx, msgResult.Log))
}

// Set the final gas values.
result = sdk.Result{
Code: code,
Data: data,
Log: strings.Join(logs, "\n"),
GasUsed: ctx.GasMeter().GasConsumed(),
// TODO: FeeAmount/FeeDenom
Tags: tags,
}

return result
}

func (app *IrisApp) replay() int64 {
ctx := server.NewDefaultContext()
ctx.Config.RootDir = viper.GetString(tmcli.HomeFlag)
dbContext := node.DBContext{"state", ctx.Config}
dbType := dbm.DBBackendType(dbContext.Config.DBBackend)
stateDB := dbm.NewDB(dbContext.ID, dbType, dbContext.Config.DBDir())

preState := sm.LoadPreState(stateDB)
if preState.LastBlockHeight == 0 {
panic(errors.New("can't replay the last block, last block height is 0"))
}

sm.SaveState(stateDB, preState)
stateDB.Close()

return preState.LastBlockHeight
}
//// Iterates through msgs and executes them
//func (app *IrisApp) runMsgs(ctx sdk.Context, msgs []sdk.Msg) (result sdk.Result) {
// // accumulate results
// logs := make([]string, 0, len(msgs))
// var data []byte // NOTE: we just append them all (?!)
// var tags sdk.Tags // also just append them all
// var code sdk.ABCICodeType
// for msgIdx, msg := range msgs {
// // Match route.
// msgType, err := app.upgradeKeeper.GetMsgTypeInCurrentVersion(ctx, msg)
// if err != nil {
// return err.Result()
// }
//
// handler := app.Router().Route(msgType)
// if handler == nil {
// return sdk.ErrUnknownRequest("Unrecognized Msg type: " + msgType).Result()
// }
//
// msgResult := handler(ctx, msg)
//
// // NOTE: GasWanted is determined by ante handler and
// // GasUsed by the GasMeter
//
// // Append Data and Tags
// data = append(data, msgResult.Data...)
// tags = append(tags, msgResult.Tags...)
//
// // Stop execution and return on first failed message.
// if !msgResult.IsOK() {
// logs = append(logs, fmt.Sprintf("Msg %d failed: %s", msgIdx, msgResult.Log))
// code = msgResult.Code
// break
// }
//
// // Construct usable logs in multi-message transactions.
// logs = append(logs, fmt.Sprintf("Msg %d: %s", msgIdx, msgResult.Log))
// }
//
// // Set the final gas values.
// result = sdk.Result{
// Code: code,
// Data: data,
// Log: strings.Join(logs, "\n"),
// GasUsed: ctx.GasMeter().GasConsumed(),
// // TODO: FeeAmount/FeeDenom
// Tags: tags,
// }
//
// return result
//}
//
//func (app *IrisApp) replay() int64 {
// ctx := server.NewDefaultContext()
// ctx.Config.RootDir = viper.GetString(tmcli.HomeFlag)
// dbContext := node.DBContext{"state", ctx.Config}
// dbType := dbm.DBBackendType(dbContext.Config.DBBackend)
// stateDB := dbm.NewDB(dbContext.ID, dbType, dbContext.Config.DBDir())
//
// preState := sm.LoadPreState(stateDB)
// if preState.LastBlockHeight == 0 {
// panic(errors.New("can't replay the last block, last block height is 0"))
// }
//
// sm.SaveState(stateDB, preState)
// stateDB.Close()
//
// return preState.LastBlockHeight
//}
2 changes: 1 addition & 1 deletion cmd/iris/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func main() {
)

startCmd := server.StartCmd(ctx, server.ConstructAppCreator(newApp, "iris"))
startCmd.Flags().Bool(app.FlagReplay, false, "Replay the last block")
//startCmd.Flags().Bool(app.FlagReplay, false, "Replay the last block")
rootCmd.AddCommand(
server.InitCmd(ctx, cdc, app.IrisAppInit()),
startCmd,
Expand Down
Loading