Skip to content

Commit

Permalink
Merge pull request #188 from wukongcheng/silei/hotfix0.4.1
Browse files Browse the repository at this point in the history
Silei/hotfix0.4.1 : remove the upgrade related functions
  • Loading branch information
wukongcheng authored Aug 31, 2018
2 parents 26697da + b8c1372 commit 17ad0f1
Show file tree
Hide file tree
Showing 51 changed files with 164 additions and 6,218 deletions.
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

0 comments on commit 17ad0f1

Please sign in to comment.