core/state, trie: Remove Commit() from PersistentMap interface

This commit is contained in:
Nick Johnson 2016-10-25 15:49:36 +01:00
parent 5b73f9aacd
commit c4e5dc3bea
4 changed files with 4 additions and 21 deletions

View file

@ -191,7 +191,7 @@ func (self *StateDB) SetTxContext(blockHash common.Hash, blockNum uint64, txHash
if validator == nil {
validator = &trie.NullCacheValidator{}
}
storage := trie.NewDirectCache(self.trie, self.db, CachePrefix, &trie.NullCacheValidator{}, true)
storage := trie.NewDirectCache(self.trie, self.db, CachePrefix, validator, true)
self.storage = trie.NewSecure(storage, self.db)
}

View file

@ -159,10 +159,6 @@ func (dc *DirectCache) TryDelete(key []byte) error {
return dc.data.TryDelete(key)
}
func (dc *DirectCache) Commit() (root common.Hash, err error) {
return dc.CommitTo(dc.db)
}
func (dc *DirectCache) CommitTo(dbw DatabaseWriter) (root common.Hash, err error) {
directCacheWrites.Inc(int64(len(dc.dirty)))
for k, _ := range dc.dirty {

View file

@ -34,7 +34,6 @@ type PersistentMap interface {
TryUpdate(key, value []byte) error
Delete(key []byte)
TryDelete(key []byte) error
Commit() (root common.Hash, err error)
CommitTo(db DatabaseWriter) (root common.Hash, err error)
}
@ -140,18 +139,6 @@ func (t *SecureTrie) GetKey(shaKey []byte) []byte {
return key
}
// Commit writes all nodes and the secure hash pre-images to the database.
// Nodes are stored with their sha3 hash as the key.
//
// Committing flushes nodes from memory. Subsequent Get calls will load nodes
// from the database.
func (t *SecureTrie) Commit() (root common.Hash, err error) {
if err := t.CommitPreimages(); err != nil {
return common.Hash{}, err
}
return t.data.Commit()
}
func (t *SecureTrie) Iterator() *Iterator {
return t.data.Iterator()
}

View file

@ -60,7 +60,7 @@ func makeTestSecureTrie() (ethdb.Database, *SecureTrie, map[string][]byte) {
trie.Update(key, val)
}
}
trie.Commit()
trie.CommitTo(db)
// Return the generated trie
return db, trie, content
@ -110,7 +110,7 @@ func TestSecureGetKey(t *testing.T) {
func TestSecureTrieConcurrency(t *testing.T) {
// Create an initial trie and copy if for concurrent access
_, trie, _ := makeTestSecureTrie()
db, trie, _ := makeTestSecureTrie()
threads := runtime.NumCPU()
tries := make([]*SecureTrie, threads)
@ -139,7 +139,7 @@ func TestSecureTrieConcurrency(t *testing.T) {
tries[index].Update(key, val)
}
}
tries[index].Commit()
tries[index].CommitTo(db)
}(i)
}
// Wait for all threads to finish