go-ethereum/core/rawdb
rjl493456442 052c634917
core: rework tx indexer (#25723)
This PR reworks tx indexer a bit. Compared to the original version, one scenario is no longer handled - upgrading  from legacy geth without indexer support. 

The tx indexer was introduced in 2020 and have been present through hardforks, so it can be assumed that all Geth nodes have tx indexer already. So we can simplify the tx indexer logic a bit:

-    If the tail flag is not present, it means node is just initialized may or may not with an ancient store attached. In this case all blocks are regarded as unindexed
-   If the tail flag is present, it means blocks below tail are unindexed, blocks above tail are indexed

This change also address some weird cornercases that could make the indexer not work after a crash.
2022-09-29 09:50:24 +02:00
..
testdata core/rawdb: avoid unnecessary receipt processing for log filtering (#23147) 2021-09-28 12:54:49 +02:00
accessors_chain.go core: rework tx indexer (#25723) 2022-09-29 09:50:24 +02:00
accessors_chain_test.go all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
accessors_indexes.go core/rawdb: fix logs to print block number, not address (#23328) 2021-08-04 11:10:37 +03:00
accessors_indexes_test.go core/rawdb: single point of maintenance for writing and deleting tx lookup indexes (#21480) 2020-09-15 10:37:01 +02:00
accessors_metadata.go all: cleanup the APIs for initializing genesis (#25473) 2022-08-09 12:44:39 +03:00
accessors_snapshot.go core/rawdb: add specified key length iterator (#24535) 2022-03-15 10:28:26 +02:00
accessors_state.go core/rawdb: add HasCode, HashTrieNode and use them where possible (#24454) 2022-03-09 00:39:34 +01:00
accessors_sync.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
ancient_scheme.go cmd, core, ethdb, node: move chain freezer one folder deeper (#25487) 2022-08-08 12:08:36 +03:00
chain_freezer.go core/rawdb: fix leak of backoff timer (#25776) 2022-09-16 11:33:48 +02:00
chain_iterator.go core/blockchain: downgrade tx indexing and unindexing logs (#25832) 2022-09-21 09:49:17 +02:00
chain_iterator_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
database.go all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
database_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
freezer.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
freezer_batch.go core/rawdb: untie freezer and ancient chain data (#24684) 2022-05-06 13:28:42 +02:00
freezer_meta.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
freezer_meta_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
freezer_table.go all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
freezer_table_test.go cmd, core, ethdb, node: move chain freezer one folder deeper (#25487) 2022-08-08 12:08:36 +03:00
freezer_test.go all: more linters (#24783) 2022-06-13 16:24:45 +02:00
freezer_utils.go all: replace uses of ioutil with io and os (#24869) 2022-05-16 11:59:35 +02:00
freezer_utils_test.go all: more linters (#24783) 2022-06-13 16:24:45 +02:00
key_length_iterator.go core/rawdb: add specified key length iterator (#24535) 2022-03-15 10:28:26 +02:00
key_length_iterator_test.go core/rawdb: add specified key length iterator (#24535) 2022-03-15 10:28:26 +02:00
schema.go all: cleanup the APIs for initializing genesis (#25473) 2022-08-09 12:44:39 +03:00
table.go core/rawdb: untie freezer and ancient chain data (#24684) 2022-05-06 13:28:42 +02:00
table_test.go all: simplify and fix database iteration with prefix/start (#20808) 2020-04-15 14:08:53 +03:00