go-ethereum/les
rjl493456442 b1f6dccfba
eth, les: rework chain tracer (#25143)
This PR simplifies the logic of chain tracer and also adds the unit tests.

The most important change has been made in this PR is the state management. Whenever a tracing state is acquired there is a corresponding release function be returned as well. It must be called once the state is used up, otherwise resource leaking can happen.

And also the logic of state management has been simplified a lot. Specifically, the state provider(eth backend, les backend) should ensure the state is available and referenced. State customers can use the state according to their own needs, or build other states based on the given state. But once the release function is called, there is no guarantee of the availability of the state.


Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2022-09-07 20:25:58 +02:00
..
catalyst all: cleanup tests (#25641) 2022-09-07 20:21:59 +02:00
checkpointoracle all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
downloader eth, les: unlock downloader peerSet if there's an error (#25546) 2022-08-19 09:02:47 +03:00
fetcher all: cleanup the APIs for initializing genesis (#25473) 2022-08-09 12:44:39 +03:00
flowcontrol all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
utils all: use AbsTime.Add instead of conversion (#25417) 2022-07-29 18:23:30 +02:00
vflux all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
api_backend.go eth, les: rework chain tracer (#25143) 2022-09-07 20:25:58 +02:00
api_test.go all: add whitespace linter (#25312) 2022-07-25 13:14:03 +03:00
api.go all: remove concept of public/private API definitions (#25053) 2022-06-21 12:05:43 +03: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 core, eth, les, trie: remove the sync bloom, used by fast sync 2021-12-03 12:32:41 +02:00
client.go all: move genesis initialization to blockchain (#25523) 2022-08-30 18:22:28 +02:00
commons.go les: fix balance expiration (#22343) 2021-02-19 15:53:12 +01: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: more linters (#24783) 2022-06-13 16:24:45 +02:00
fetcher.go all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
handler_test.go all: introduce trie owner notion (#24750) 2022-06-06 17:14:55 +02:00
metrics.go les: polish code (#22625) 2021-04-27 09:44:59 +02:00
odr_requests.go les, light: improve txstatus retrieval (#22349) 2021-02-25 14:24:04 +01:00
odr_test.go all: cleanup tests (#25641) 2022-09-07 20:21:59 +02:00
odr.go all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
peer_test.go all: cleanup the APIs for initializing genesis (#25473) 2022-08-09 12:44:39 +03:00
peer.go all: more linters (#24783) 2022-06-13 16:24:45 +02:00
protocol.go eth/protocols/eth, les: avoid Raw() when decoding HashOrNumber (#22841) 2021-05-10 12:38:54 +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 les, light: improve txstatus retrieval (#22349) 2021-02-25 14:24:04 +01:00
retrieve.go les: generate random nums directly, not via strange conversions 2021-05-21 12:36:04 +03:00
server_handler.go all: introduce trie owner notion (#24750) 2022-06-06 17:14:55 +02:00
server_requests.go tests/fuzzers: fix goroutine leak in les fuzzer (#22455) 2021-03-16 09:43:33 +01:00
server.go all: remove version field from rpc.API 2022-06-27 12:39:46 +02:00
servingqueue.go les: avoid shutdown hang (#23139) 2021-07-01 14:01:19 +02:00
state_accessor.go eth, les: rework chain tracer (#25143) 2022-09-07 20:25:58 +02: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: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +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