Envio fetches every single registered address when calling eth_getLogs:

While this approach makes sense during historical synchronization as it filters out unnecessary events from other addresses, it may not be optimal once we've reached the chain tip.
Issues with the current approach:
- It produces numerous extra requests
- It consumes substantial egress bandwidth, which is costly
I'm suggesting that when Envio reaches the chain tip, it should automatically switch to using eth_getLogs without any address filter, then internally discard logs from unregistered addresses.
I've created a proof of concept at notuslabs@643a719. I haven't tested it yet as I need to build and release it as a package for testing, but it could serve as inspiration (though it was generated with AI, so please take it with a grain of salt).
Additionally, it would be beneficial if we could configure this behavior via config.yml under the rpc section, allowing developers to set unfiltered addresses even during historical sync. The default setting should remain as live only.
Envio fetches every single registered address when calling eth_getLogs:

While this approach makes sense during historical synchronization as it filters out unnecessary events from other addresses, it may not be optimal once we've reached the chain tip.
Issues with the current approach:
I'm suggesting that when Envio reaches the chain tip, it should automatically switch to using eth_getLogs without any address filter, then internally discard logs from unregistered addresses.
I've created a proof of concept at notuslabs@643a719. I haven't tested it yet as I need to build and release it as a package for testing, but it could serve as inspiration (though it was generated with AI, so please take it with a grain of salt).
Additionally, it would be beneficial if we could configure this behavior via
config.ymlunder therpcsection, allowing developers to set unfiltered addresses even during historical sync. The default setting should remain asliveonly.