diff --git a/app/app.go b/app/app.go index 89f5ed6df5..eebc816e8f 100644 --- a/app/app.go +++ b/app/app.go @@ -165,7 +165,6 @@ func (app *Basecoin) InitChain(req abci.RequestInitChain) { // BeginBlock - ABCI func (app *Basecoin) BeginBlock(req abci.RequestBeginBlock) { - fmt.Println("BeginBlock") app.height++ // for _, plugin := range app.plugins.GetList() { // plugin.BeginBlock(app.state, hash, header) diff --git a/app/store.go b/app/store.go index 0f9a2c4f51..a9a8b4360c 100644 --- a/app/store.go +++ b/app/store.go @@ -19,6 +19,7 @@ import ( // Store contains the merkle tree, and all info to handle abci requests type Store struct { state.State + height uint64 logger log.Logger } @@ -81,14 +82,10 @@ func NewStore(dbName string, cacheSize int, logger log.Logger) (*Store, error) { State: state.NewState(tree), logger: logger, } + res.height = res.State.LatestHeight() return res, nil } -// Height gets the last height stored in the database -func (s *Store) Height() uint64 { - return s.State.LatestHeight() -} - // Hash gets the last hash stored in the database func (s *Store) Hash() []byte { return s.State.LatestHash() @@ -98,32 +95,31 @@ func (s *Store) Hash() []byte { // The height is the block that holds the transactions, not the apphash itself. func (s *Store) Info() abci.ResponseInfo { s.logger.Info("Info synced", - "height", s.Height(), + "height", s.height, "hash", fmt.Sprintf("%X", s.Hash())) return abci.ResponseInfo{ Data: cmn.Fmt("size:%v", s.State.Size()), - LastBlockHeight: s.Height() - 1, + LastBlockHeight: s.height - 1, LastBlockAppHash: s.Hash(), } } // Commit implements abci.Application func (s *Store) Commit() abci.Result { - height := s.Height() + 1 + s.height++ - hash, err := s.State.Commit(height) + hash, err := s.State.Commit(s.height) if err != nil { return abci.NewError(abci.CodeType_InternalError, err.Error()) } s.logger.Debug("Commit synced", - "height", height, + "height", s.height, "hash", fmt.Sprintf("%X", hash), ) if s.State.Size() == 0 { return abci.NewResultOK(nil, "Empty hash for empty tree") } - fmt.Printf("ABCI Commit: %d / %X\n", height, hash) return abci.NewResultOK(hash, "") } @@ -134,10 +130,10 @@ func (s *Store) Query(reqQuery abci.RequestQuery) (resQuery abci.ResponseQuery) height := reqQuery.Height if height == 0 { - if tree.Tree.VersionExists(s.Height() - 1) { - height = s.Height() - 1 + if tree.Tree.VersionExists(s.height - 1) { + height = s.height - 1 } else { - height = s.Height() + height = s.height } } resQuery.Height = height diff --git a/client/query.go b/client/query.go index a25d80407d..a4f4ff1ea0 100644 --- a/client/query.go +++ b/client/query.go @@ -1,8 +1,6 @@ package client import ( - "fmt" - "github.com/pkg/errors" "github.com/tendermint/go-wire/data" @@ -41,9 +39,9 @@ func GetWithProof(key []byte, node client.Client, cert certifiers.Certifier) ( return } + // AppHash for height H is in header H+1 var check lc.Checkpoint - // check, err = GetCertifiedCheckpoint(int(resp.Height), node, cert) - check, err = GetCertifiedCheckpoint(int(resp.Height+9), node, cert) + check, err = GetCertifiedCheckpoint(int(resp.Height+1), node, cert) if err != nil { return } @@ -73,11 +71,6 @@ func GetWithProof(key []byte, node client.Client, cert certifiers.Certifier) ( err = errors.Wrap(err, "Error reading proof") return } - - fmt.Printf("apphash: %x\n", check.Header.AppHash) - fmt.Printf("proof hash: %x\n", aproof.Root()) - fmt.Printf("response height: %d\n", resp.Height) - // Validate the proof against the certified header to ensure data integrity. err = aproof.Verify(resp.Key, nil, check.Header.AppHash) if err != nil {