Mount every single store with its own DB
This commit is contained in:
parent
d0eb05b162
commit
8574f923e8
|
@ -54,6 +54,7 @@ type BaseApp struct {
|
||||||
var _ abci.Application = (*BaseApp)(nil)
|
var _ abci.Application = (*BaseApp)(nil)
|
||||||
|
|
||||||
// Create and name new BaseApp
|
// Create and name new BaseApp
|
||||||
|
// NOTE: The db is used to store the version number for now.
|
||||||
func NewBaseApp(name string, logger log.Logger, db dbm.DB) *BaseApp {
|
func NewBaseApp(name string, logger log.Logger, db dbm.DB) *BaseApp {
|
||||||
return &BaseApp{
|
return &BaseApp{
|
||||||
Logger: logger,
|
Logger: logger,
|
||||||
|
@ -70,15 +71,16 @@ func (app *BaseApp) Name() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mount a store to the provided key in the BaseApp multistore
|
// Mount a store to the provided key in the BaseApp multistore
|
||||||
|
// Broken until #532 is implemented.
|
||||||
func (app *BaseApp) MountStoresIAVL(keys ...*sdk.KVStoreKey) {
|
func (app *BaseApp) MountStoresIAVL(keys ...*sdk.KVStoreKey) {
|
||||||
for _, key := range keys {
|
for _, key := range keys {
|
||||||
app.MountStore(key, sdk.StoreTypeIAVL)
|
app.MountStore(key, sdk.StoreTypeIAVL, app.db)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mount a store to the provided key in the BaseApp multistore
|
// Mount a store to the provided key in the BaseApp multistore
|
||||||
func (app *BaseApp) MountStore(key sdk.StoreKey, typ sdk.StoreType) {
|
func (app *BaseApp) MountStore(key sdk.StoreKey, typ sdk.StoreType, db dbm.DB) {
|
||||||
app.cms.MountStoreWithDB(key, typ, app.db)
|
app.cms.MountStoreWithDB(key, typ, db)
|
||||||
}
|
}
|
||||||
|
|
||||||
// nolint - Set functions
|
// nolint - Set functions
|
||||||
|
|
|
@ -2,6 +2,8 @@ package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
abci "github.com/tendermint/abci/types"
|
abci "github.com/tendermint/abci/types"
|
||||||
oldwire "github.com/tendermint/go-wire"
|
oldwire "github.com/tendermint/go-wire"
|
||||||
|
@ -66,12 +68,30 @@ func NewBasecoinApp(logger log.Logger, db dbm.DB) *BasecoinApp {
|
||||||
AddRoute("ibc", ibc.NewHandler(ibcMapper, coinKeeper)).
|
AddRoute("ibc", ibc.NewHandler(ibcMapper, coinKeeper)).
|
||||||
AddRoute("staking", staking.NewHandler(stakeKeeper))
|
AddRoute("staking", staking.NewHandler(stakeKeeper))
|
||||||
|
|
||||||
|
rootDir := os.ExpandEnv("$HOME/.basecoind")
|
||||||
|
dbMain, err := dbm.NewGoLevelDB("basecoin-main", filepath.Join(rootDir, "data"))
|
||||||
|
if err != nil {
|
||||||
|
cmn.Exit(err.Error())
|
||||||
|
}
|
||||||
|
dbIBC, err := dbm.NewGoLevelDB("basecoin-ibc", filepath.Join(rootDir, "data"))
|
||||||
|
if err != nil {
|
||||||
|
cmn.Exit(err.Error())
|
||||||
|
}
|
||||||
|
dbStaking, err := dbm.NewGoLevelDB("basecoin-staking", filepath.Join(rootDir, "data"))
|
||||||
|
if err != nil {
|
||||||
|
cmn.Exit(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
// initialize BaseApp
|
// initialize BaseApp
|
||||||
app.SetTxDecoder(app.txDecoder)
|
app.SetTxDecoder(app.txDecoder)
|
||||||
app.SetInitChainer(app.initChainer)
|
app.SetInitChainer(app.initChainer)
|
||||||
app.MountStoresIAVL(app.capKeyMainStore, app.capKeyIBCStore, app.capKeyStakingStore)
|
app.MountStore(app.capKeyMainStore, sdk.StoreTypeIAVL, dbMain)
|
||||||
|
app.MountStore(app.capKeyIBCStore, sdk.StoreTypeIAVL, dbIBC)
|
||||||
|
app.MountStore(app.capKeyStakingStore, sdk.StoreTypeIAVL, dbStaking)
|
||||||
|
// NOTE: Broken until #532 lands
|
||||||
|
//app.MountStoresIAVL(app.capKeyMainStore, app.capKeyIBCStore, app.capKeyStakingStore)
|
||||||
app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper))
|
app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper))
|
||||||
err := app.LoadLatestVersion(app.capKeyMainStore)
|
err = app.LoadLatestVersion(app.capKeyMainStore)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cmn.Exit(err.Error())
|
cmn.Exit(err.Error())
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ func main() {
|
||||||
var baseApp = bam.NewBaseApp("kvstore", logger, db)
|
var baseApp = bam.NewBaseApp("kvstore", logger, db)
|
||||||
|
|
||||||
// Set mounts for BaseApp's MultiStore.
|
// Set mounts for BaseApp's MultiStore.
|
||||||
baseApp.MountStore(capKeyMainStore, sdk.StoreTypeIAVL)
|
baseApp.MountStoresIAVL(capKeyMainStore)
|
||||||
|
|
||||||
// Set Tx decoder
|
// Set Tx decoder
|
||||||
baseApp.SetTxDecoder(decodeTx)
|
baseApp.SetTxDecoder(decodeTx)
|
||||||
|
|
Loading…
Reference in New Issue