The Filecoin.EthGetLogs was not implemented fully, as we're blocked by a few number of issues:
[x] Some bugs while parsing EthFilterSpec (#4826)
[ ] Lotus events implementation is known to have limitations, and their team is working on a revamped implementation (https://github.com/filecoin-project/lotus/pull/12421)
In our case, this manifests by Lotus returning empty lists in many forest-tool api compare tests while we're not.
=> Make sure that the new Lotus implementation and Forest output same result now.
[ ] We do not fully support the filtering feature or test it.
This needs to be done in a follow-up task. We also would like to introduce a proper test setup for assessing performance in general of those kinds of methods (EthGetFilterChanges, EthGetFilterLogs, etc.)
(how far are we from Lotus, which uses a SQL DB to build indices and fasten those types of queries)
[ ] Ultimately, we need to support correctly FOREST_MAX_FILTER_RESULTS and FOREST_MAX_FILTER_HEIGHT_RANGE environment variables.
[ ] In case --store-events false, we only display some warning in the forest daemon and return an empty list. We should turn this into an error so that the client knows that the RPC call couldn't be fulfilled and take some action.
[ ] Expose DEFAULT_TIPSET_CACHE_SIZE setting in configuration file, as it can have a great impact on performances.
Once those tasks are completed, we should be able to remove the method from the API compare filter list.
Summary
This is a follow-up issue for #4780.
The
Filecoin.EthGetLogs
was not implemented fully, as we're blocked by a few number of issues:forest-tool api compare
tests while we're not. => Make sure that the new Lotus implementation and Forest output same result now.EthGetFilterChanges
,EthGetFilterLogs
, etc.) (how far are we from Lotus, which uses a SQL DB to build indices and fasten those types of queries)FOREST_MAX_FILTER_RESULTS
andFOREST_MAX_FILTER_HEIGHT_RANGE
environment variables.[ ] In case--store-events false
, we only display some warning in the forest daemon and return an empty list. We should turn this into an error so that the client knows that the RPC call couldn't be fulfilled and take some action.[ ] Expose
DEFAULT_TIPSET_CACHE_SIZE
setting in configuration file, as it can have a great impact on performances.Once those tasks are completed, we should be able to remove the method from the API compare filter list.