go-ethereum/les
Sina Mahmoodi 2def62b99b
eth/filters: avoid block body retrieval when no matching logs (#25199)
Logs stored on disk have minimal information. Contextual information such as block
number, index of log in block, index of transaction in block are filled in upon request.
We can fill in all these fields only having the block header and list of receipts.
But determining the transaction hash of a log requires the block body.

The goal of this PR is postponing this retrieval until we are sure we the transaction hash.
It happens often that the header bloom filter signals there might be matches in a block,
but after actually checking them reveals the logs do not match. We want to avoid fetching
the body in this case.

Note that this changes the semantics of Backend.GetLogs. Downstream callers of
GetLogs now assume log context fields have not been derived, and need to call
DeriveFields on the logs if necessary.
2023-02-13 10:59:27 +01:00
..
catalyst beacon/engine: move core/beacon to beacon/engine (#26616) 2023-02-06 10:37:58 -05:00
checkpointoracle all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
downloader common/prque: generic priority queue (#26290) 2023-02-09 13:03:54 +02:00
fetcher common/prque: generic priority queue (#26290) 2023-02-09 13:03:54 +02:00
flowcontrol common/prque: generic priority queue (#26290) 2023-02-09 13:03:54 +02:00
utils all: fix docstrings 2022-10-04 09:18:02 +02:00
vflux common/prque: generic priority queue (#26290) 2023-02-09 13:03:54 +02:00
api_backend.go eth/filters: avoid block body retrieval when no matching logs (#25199) 2023-02-13 10:59:27 +01:00
api_test.go all: add whitespace linter (#25312) 2022-07-25 13:14:03 +03:00
api.go all: fix docstrings 2022-10-04 09:18:02 +02:00
benchmark.go all: add support for EIP-2718, EIP-2930 transactions (#21502) 2021-02-25 15:26:57 +01:00
bloombits.go les: handler separation (#19639) 2019-08-21 11:29:34 +02:00
client_handler.go all: implement forkid changes for shanghai 2023-01-03 12:57:06 +02:00
client.go cmd, core, eth, els, params: disallow setheads below genesis, tweaks 2023-01-06 15:29:58 +02:00
commons.go all: remove support for Ropsten (#26644) 2023-02-09 10:03:00 +02:00
costtracker.go eth: move eth.Config to a common package (#22205) 2021-02-05 13:51:15 +01:00
distributor_test.go les: separate peer into clientPeer and serverPeer (#19991) 2020-02-26 11:41:24 +02:00
distributor.go all: use AbsTime.Add instead of conversion (#25417) 2022-07-29 18:23:30 +02:00
enr_entry.go cmd/devp2p: skip ENR field tails properly in nodeset filter (#22565) 2021-03-24 12:32:39 +01:00
fetcher_test.go all: fix spelling mistakes (#25961) 2022-10-11 09:37:00 +02:00
fetcher.go les/fetcher : fix requestTimer leak (#26514) 2023-01-18 03:46:32 -05:00
handler_test.go all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
metrics.go les: polish code (#22625) 2021-04-27 09:44:59 +02:00
odr_requests.go all: fix docstrings 2022-10-04 09:18:02 +02:00
odr_test.go all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
odr.go all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
peer_test.go all: implement forkid changes for shanghai 2023-01-03 12:57:06 +02:00
peer.go all: more linters (#24783) 2022-06-13 16:24:45 +02:00
protocol.go all: fix docstrings 2022-10-04 09:18:02 +02:00
pruner_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
pruner.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
request_test.go cmd, core, eth, les, light: track deleted nodes (#25757) 2022-09-27 10:01:02 +02:00
retrieve.go les: generate random nums directly, not via strange conversions 2021-05-21 12:36:04 +03:00
server_handler.go eth, les: polish forkid a bit, fix races and transition validation 2023-01-06 15:29:57 +02:00
server_requests.go all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
server.go all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
servingqueue.go common/prque: generic priority queue (#26290) 2023-02-09 13:03:54 +02:00
state_accessor.go all: implement EIP-1153 transient storage (#26003) 2022-11-16 10:18:52 +01:00
sync_test.go les: fix data races in tests (#23457) 2021-08-25 11:56:25 +02:00
sync.go les: duplicate downloader and fetcher to allow progressive refactoring 2021-09-10 11:11:59 +03:00
test_helper.go all: implement forkid changes for shanghai 2023-01-03 12:57:06 +02:00
txrelay.go les: generate random nums directly, not via strange conversions 2021-05-21 12:36:04 +03:00
ulc_test.go all: more linters (#24783) 2022-06-13 16:24:45 +02:00
ulc.go cmd, eth, les: fix up ultra light config integration 2019-07-09 20:34:42 +03:00