Skip to content

Commit

Permalink
extra logs during commit (#146)
Browse files Browse the repository at this point in the history
* add extra logs during commit

* Update store/rootmulti/store.go

Co-authored-by: Dev Ojha <[email protected]>

Co-authored-by: Dev Ojha <[email protected]>
  • Loading branch information
p0mvn and ValarDragon authored Mar 21, 2022
1 parent 87988f9 commit 7bd7a32
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 32 deletions.
2 changes: 1 addition & 1 deletion baseapp/abci.go
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,6 @@ func (app *BaseApp) Commit() (res abci.ResponseCommit) {
// MultiStore (app.cms) so when Commit() is called is persists those values.
app.deliverState.ms.Write()
commitID := app.cms.Commit()
app.logger.Info("commit synced", "commit", fmt.Sprintf("%X", commitID))

// Reset the Check state to the latest committed.
//
Expand Down Expand Up @@ -339,6 +338,7 @@ func (app *BaseApp) Commit() (res abci.ResponseCommit) {
go app.snapshot(header.Height)
}

app.logger.Info("commited - baseapp", "height", commitID.Version, "commit_hash", commitID.Hash, "retain_height", retainHeight)
return abci.ResponseCommit{
Data: commitID.Hash,
RetainHeight: retainHeight,
Expand Down
2 changes: 1 addition & 1 deletion store/rootmulti/proof_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func TestVerifyIAVLStoreQueryProof(t *testing.T) {
func TestVerifyMultiStoreQueryProof(t *testing.T) {
// Create main tree for testing.
db := dbm.NewMemDB()
store := NewStore(db, nil)
store := NewStore(db, log.NewNopLogger())
iavlStoreKey := types.NewKVStoreKey("iavlStoreKey")

store.MountStoreWithDB(iavlStoreKey, types.StoreTypeIAVL, nil)
Expand Down
55 changes: 30 additions & 25 deletions store/rootmulti/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ func (rs *Store) Commit() types.CommitID {
version = previousHeight + 1
}

rs.lastCommitInfo = commitStores(version, rs.stores)
rs.lastCommitInfo = rs.commitStores(version, rs.stores)

var pruneErr error
defer func () {
Expand All @@ -412,12 +412,16 @@ func (rs *Store) Commit() types.CommitID {

// batch prune if the current height is a pruning interval height
if rs.pruningOpts.Interval > 0 && version%int64(rs.pruningOpts.Interval) == 0 {
rs.logger.Info("pruning", "height", version, "to_prune", rs.pruneHeights)
pruneErr = rs.pruneStores()
}

hash, keys := rs.lastCommitInfo.Hash()
rs.logger.Info("calculated commit hash", "height", version, "commit_hash", hash, "keys", keys)

return types.CommitID{
Version: version,
Hash: rs.lastCommitInfo.Hash(),
Hash: hash,
}
}

Expand Down Expand Up @@ -950,6 +954,30 @@ func (rs *Store) buildCommitInfo(version int64) *types.CommitInfo {
}
}

// Commits each store and returns a new commitInfo.
func (rs *Store) commitStores(version int64, storeMap map[types.StoreKey]types.CommitKVStore) *types.CommitInfo {
storeInfos := make([]types.StoreInfo, 0, len(storeMap))

for key, store := range storeMap {
commitID := store.Commit()
rs.logger.Info("commit kvstore", "height", commitID.Version, "key", key, "commit_store_hash", commitID.Hash)

if store.GetStoreType() == types.StoreTypeTransient {
continue
}

si := types.StoreInfo{}
si.Name = key.Name()
si.CommitId = commitID
storeInfos = append(storeInfos, si)
}

return &types.CommitInfo{
Version: version,
StoreInfos: storeInfos,
}
}

type storeParams struct {
key types.StoreKey
db dbm.DB
Expand All @@ -974,29 +1002,6 @@ func getLatestVersion(db dbm.DB) int64 {
return latestVersion
}

// Commits each store and returns a new commitInfo.
func commitStores(version int64, storeMap map[types.StoreKey]types.CommitKVStore) *types.CommitInfo {
storeInfos := make([]types.StoreInfo, 0, len(storeMap))

for key, store := range storeMap {
commitID := store.Commit()

if store.GetStoreType() == types.StoreTypeTransient {
continue
}

si := types.StoreInfo{}
si.Name = key.Name()
si.CommitId = commitID
storeInfos = append(storeInfos, si)
}

return &types.CommitInfo{
Version: version,
StoreInfos: storeInfos,
}
}

// Gets commitInfo from disk.
func getCommitInfo(db dbm.DB, ver int64) (*types.CommitInfo, error) {
cInfoKey := fmt.Sprintf(commitInfoKeyFmt, ver)
Expand Down
11 changes: 6 additions & 5 deletions store/types/commit_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ func (ci CommitInfo) toMap() map[string][]byte {
}

// Hash returns the simple merkle root hash of the stores sorted by name.
func (ci CommitInfo) Hash() []byte {
func (ci CommitInfo) Hash() ([]byte, []string) {
// we need a special case for empty set, as SimpleProofsFromMap requires at least one entry
if len(ci.StoreInfos) == 0 {
return nil
return nil, nil
}

rootHash, _, _ := sdkmaps.ProofsFromMap(ci.toMap())
return rootHash
rootHash, _, keys := sdkmaps.ProofsFromMap(ci.toMap())
return rootHash, keys
}

func (ci CommitInfo) ProofOp(storeName string) tmcrypto.ProofOp {
Expand Down Expand Up @@ -66,8 +66,9 @@ func (ci CommitInfo) ProofOp(storeName string) tmcrypto.ProofOp {
}

func (ci CommitInfo) CommitID() CommitID {
hash, _ := ci.Hash()
return CommitID{
Version: ci.Version,
Hash: ci.Hash(),
Hash: hash,
}
}

0 comments on commit 7bd7a32

Please sign in to comment.