go-ethereum/core
Felföldi Zsolt d85f796356
eth/filters: implement log filter using new log index (#31080)
This PR is #2 of a 3-part series that implements the new log index
intended to replace core/bloombits.
Based on https://github.com/ethereum/go-ethereum/pull/31079
Replaces https://github.com/ethereum/go-ethereum/pull/30370

This part replaces the old bloombits based log search logic in
`eth/filters` to use the new `core/filtermaps` logic.

FilterMaps data structure explanation:
https://gist.github.com/zsfelfoldi/a60795f9da7ae6422f28c7a34e02a07e

Log index generator code overview:
https://gist.github.com/zsfelfoldi/97105dff0b1a4f5ed557924a24b9b9e7

Search pattern matcher code overview:
https://gist.github.com/zsfelfoldi/5981735641c956afb18065e84f8aff34

Note that the possibility of a tree hashing scheme and remote proof
protocol are mentioned in the documents above but they are not exactly
specified yet. These specs are WIP and will be finalized after the local
log indexer/filter code is finalized and merged.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-03-17 18:59:04 +01:00
..
bloombits all: fix typos in comments (#29873) 2024-05-29 12:24:10 +02:00
filtermaps eth/filters: implement log filter using new log index (#31080) 2025-03-17 18:59:04 +01:00
forkid params,core/forkid: enable prague on holesky and sepolia (#31139) 2025-02-08 13:26:15 +01:00
rawdb eth/filters: implement log filter using new log index (#31080) 2025-03-17 18:59:04 +01:00
state core/rawdb,state: add preimage miss metric (#31295) 2025-03-07 11:23:19 +01:00
stateless beacon, core, eth, miner: integrate witnesses into production Geth (#30069) 2024-09-20 16:43:42 +03:00
tracing core/tracing: stringer for gas and nonce change reasons (#31234) 2025-02-28 12:53:56 +01:00
txpool core/txpool: demote error log to warn (#31332) 2025-03-11 16:00:50 +01:00
types eth: check blob transaction validity on the peer goroutine when received (#31219) 2025-03-01 14:10:38 +01:00
vm core/asm: delete assembler/disassembler (#31211) 2025-02-19 06:57:08 -07:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
block_validator.go core/types: create block's bloom by merging receipts' bloom (#31129) 2025-02-13 18:05:58 +01:00
block_validator_test.go all: remove TerminalTotalDifficultyPassed (#30609) 2024-10-23 08:26:18 +02:00
blockchain.go core: update blockProcFeed in insertChain (#31065) 2025-03-13 12:35:10 +01:00
blockchain_insert.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
blockchain_reader.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
blockchain_repair_test.go core, eth, node: break rawdb -> {leveldb, pebble} dependency (#30689) 2024-10-29 10:31:04 +02:00
blockchain_sethead_test.go core, eth, node: break rawdb -> {leveldb, pebble} dependency (#30689) 2024-10-29 10:31:04 +02:00
blockchain_snapshot_test.go core, eth, node: break rawdb -> {leveldb, pebble} dependency (#30689) 2024-10-29 10:31:04 +02:00
blockchain_test.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
bloom_indexer.go core: preallocate batch size in bloomIndexer (#25289) 2022-08-03 17:02:09 +02:00
chain_indexer.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
chain_indexer_test.go all: improve some error strings (#29842) 2024-05-28 13:44:40 +02:00
chain_makers.go consensus/misc/eip4844: more changes for blob gas calculation (#31128) 2025-02-05 10:35:03 +01:00
chain_makers_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
dao_test.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
error.go core: implement eip-7623 floor data gas (#30946) 2025-01-30 09:07:45 -07:00
events.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
evm.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
gaspool.go core, miner: revert block gas counter in case of invalid transaction (#26799) 2023-03-07 05:23:52 -05:00
gen_genesis.go core: go fmt (#29544) 2024-04-16 15:42:16 +03:00
genesis.go eth/ethconfig: add HistoryMode (#31365) 2025-03-13 11:43:00 +01:00
genesis_alloc.go all: clean up goerli flag and config (#30289) 2024-08-20 15:59:48 +02:00
genesis_test.go params: add osaka blob schedule (#31174) 2025-02-18 15:03:48 +01:00
headerchain.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
headerchain_test.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
mkalloc.go accounts, cmd/geth, core: close opened files (#29598) 2024-04-30 15:47:21 +02:00
rlp_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
sender_cacher.go core: use sync.Once for SenderCacher initialization (#31029) 2025-01-16 14:36:45 +01:00
state_prefetcher.go core: switch EVM tx context in ApplyMessage (#30809) 2024-11-29 15:39:42 +01:00
state_processor.go core: match on deposit contract log topic (#31317) 2025-03-05 11:04:24 +01:00
state_processor_test.go consensus/misc/eip4844: more changes for blob gas calculation (#31128) 2025-02-05 10:35:03 +01:00
state_transition.go core/vm: clean up EVM environmental structure (#31061) 2025-02-18 21:53:33 +08:00
stateless.go cmd/evm: improve block/state test runner (#30633) 2024-12-02 15:18:02 +01:00
txindexer.go all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00
txindexer_test.go all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00
types.go all: implement flat deposit requests encoding (#30425) 2024-10-09 12:24:58 +02:00
verkle_witness_test.go core/tracing: state journal wrapper (#30441) 2025-02-05 13:58:25 +01:00