diff --git a/core/filtermaps/filtermaps.go b/core/filtermaps/filtermaps.go index 685fc12dec..c8389323c0 100644 --- a/core/filtermaps/filtermaps.go +++ b/core/filtermaps/filtermaps.go @@ -223,7 +223,8 @@ func (f *FilterMaps) Start() { log.Error("Could not load head filter map snapshot", "error", err) } } - f.closeWg.Add(1) + f.closeWg.Add(2) + go f.removeBloomBits() go f.indexerLoop() } @@ -318,6 +319,13 @@ func (f *FilterMaps) init() error { return batch.Write() } +// removeBloomBits removes old bloom bits data from the database. +func (f *FilterMaps) removeBloomBits() { + f.removeDbWithPrefix(rawdb.BloomBitsPrefix, "Removing old bloom bits database") + f.removeDbWithPrefix(rawdb.BloomBitsIndexPrefix, "Removing old bloom bits chain index") + f.closeWg.Done() +} + // removeDbWithPrefix removes data with the given prefix from the database and // returns true if everything was successfully removed. func (f *FilterMaps) removeDbWithPrefix(prefix []byte, action string) bool { diff --git a/core/rawdb/schema.go b/core/rawdb/schema.go index fc18c7e4e9..57f877ddcc 100644 --- a/core/rawdb/schema.go +++ b/core/rawdb/schema.go @@ -106,7 +106,7 @@ var ( blockReceiptsPrefix = []byte("r") // blockReceiptsPrefix + num (uint64 big endian) + hash -> block receipts txLookupPrefix = []byte("l") // txLookupPrefix + hash -> transaction/receipt lookup metadata - bloomBitsPrefix = []byte("B") // bloomBitsPrefix + bit (uint16 big endian) + section (uint64 big endian) + hash -> bloom bits + BloomBitsPrefix = []byte("B") // BloomBitsPrefix + bit (uint16 big endian) + section (uint64 big endian) + hash -> bloom bits SnapshotAccountPrefix = []byte("a") // SnapshotAccountPrefix + account hash -> account trie value SnapshotStoragePrefix = []byte("o") // SnapshotStoragePrefix + account hash + storage hash -> storage trie value CodePrefix = []byte("c") // CodePrefix + code hash -> account code