plugeth/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_test.go all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
accessors_chain.go core: rework tx indexer (#25723) 2022-09-29 09:50:24 +02: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_indexes.go core/rawdb: fix logs to print block number, not address (#23328) 2021-08-04 11:10:37 +03: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_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
chain_iterator.go core/blockchain: downgrade tx indexing and unindexing logs (#25832) 2022-09-21 09:49:17 +02:00
database_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
freezer_batch.go core/rawdb: untie freezer and ancient chain data (#24684) 2022-05-06 13:28:42 +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_meta.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02: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_table.go all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
freezer_test.go all: more linters (#24783) 2022-06-13 16:24:45 +02:00
freezer_utils_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.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
key_length_iterator_test.go core/rawdb: add specified key length iterator (#24535) 2022-03-15 10:28:26 +02:00
key_length_iterator.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_test.go all: simplify and fix database iteration with prefix/start (#20808) 2020-04-15 14:08:53 +03:00
table.go core/rawdb: untie freezer and ancient chain data (#24684) 2022-05-06 13:28:42 +02:00