• Sina Mahmoodi's avatar
    eth/filters: avoid block body retrieval when no matching logs (#25199) · 2def62b9
    Sina Mahmoodi authored
    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.
    2def62b9
Name
Last commit
Last update
.github Loading commit data...
accounts Loading commit data...
beacon/engine Loading commit data...
build Loading commit data...
cmd Loading commit data...
common Loading commit data...
consensus Loading commit data...
console Loading commit data...
contracts/checkpointoracle Loading commit data...
core Loading commit data...
crypto Loading commit data...
docs Loading commit data...
eth Loading commit data...
ethclient Loading commit data...
ethdb Loading commit data...
ethstats Loading commit data...
event Loading commit data...
graphql Loading commit data...
internal Loading commit data...
les Loading commit data...
light Loading commit data...
log Loading commit data...
metrics Loading commit data...
miner Loading commit data...
node Loading commit data...
p2p Loading commit data...
params Loading commit data...
rlp Loading commit data...
rpc Loading commit data...
signer Loading commit data...
swarm Loading commit data...
tests Loading commit data...
trie Loading commit data...
.dockerignore Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.golangci.yml Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
COPYING.LESSER Loading commit data...
Dockerfile Loading commit data...
Dockerfile.alltools Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
SECURITY.md Loading commit data...
appveyor.yml Loading commit data...
circle.yml Loading commit data...
go.mod Loading commit data...
go.sum Loading commit data...
interfaces.go Loading commit data...
oss-fuzz.sh Loading commit data...