diff --git a/database/leveldb.go b/database/leveldb.go index b762b1e0..5c42ec9f 100644 --- a/database/leveldb.go +++ b/database/leveldb.go @@ -66,6 +66,16 @@ func (l *levelDB) Put(key []byte, value []byte) error { l.batch.Put(key, value) return nil } + old, err := l.db.Get(key, nil) + if err != nil { + if err != leveldb.ErrNotFound { + return err + } + } else { + if bytes.Compare(old, value) == 0 { + return nil + } + } return l.db.Put(key, value, nil) }