|
50 | 50 | )
|
51 | 51 |
|
52 | 52 | const (
|
| 53 | + databaseVersion = 1 // reindexed if database version does not match |
53 | 54 | cachedLastBlocks = 1000 // last block of map pointers
|
54 | 55 | cachedLvPointers = 1000 // first log value pointer of block pointers
|
55 | 56 | cachedBaseRows = 100 // groups of base layer filter row data
|
@@ -210,8 +211,9 @@ type Config struct {
|
210 | 211 | // NewFilterMaps creates a new FilterMaps and starts the indexer.
|
211 | 212 | func NewFilterMaps(db ethdb.KeyValueStore, initView *ChainView, historyCutoff, finalBlock uint64, params Params, config Config) *FilterMaps {
|
212 | 213 | rs, initialized, err := rawdb.ReadFilterMapsRange(db)
|
213 |
| - if err != nil { |
214 |
| - log.Error("Error reading log index range", "error", err) |
| 214 | + if err != nil || rs.Version != databaseVersion { |
| 215 | + rs, initialized = rawdb.FilterMapsRange{}, false |
| 216 | + log.Warn("Invalid log index database version; resetting log index") |
215 | 217 | }
|
216 | 218 | params.deriveFields()
|
217 | 219 | f := &FilterMaps{
|
@@ -440,6 +442,7 @@ func (f *FilterMaps) setRange(batch ethdb.KeyValueWriter, newView *ChainView, ne
|
440 | 442 | f.updateMatchersValidRange()
|
441 | 443 | if newRange.initialized {
|
442 | 444 | rs := rawdb.FilterMapsRange{
|
| 445 | + Version: databaseVersion, |
443 | 446 | HeadIndexed: newRange.headIndexed,
|
444 | 447 | HeadDelimiter: newRange.headDelimiter,
|
445 | 448 | BlocksFirst: newRange.blocks.First(),
|
|
0 commit comments