Closed viper7882 closed 1 month ago
Have fetch slot to leverage multiple workers to parallelly retrieve the slots
We have not implemented this because it will quickly hit the fetching limits for most of public RPCs
Cache the slots once they are retrieved
This is already implemented, but you don't see it very easily because what I explained in #1261.
Thanks @ggrieco-tob. Understand concern over RPC fetching limit and we are good for the cache implementation. Let me close the issue
No problem, please keep reporting RPC related issue if you have them, we want to make sure this can be used for real-world testing. I'm also considering writing a small tutorial in building-secure-contracts to help users.
The desired features
Hi admin,
Echidna is spending at least an hour's time alone to perform fetch slot for onchain fuzzing. See the figure below: and eventually turn out to be 1 hour 24 minutes for ~3200 slots:
It seems like Echidna Fuzzer does not leverage on multiple workers to fetch the slots and causing the inefficiency because I've experimented with or without workers, the time to fetch slot is identical.
Let's have a simple
test
contract to illustrate. The challenge faced by onchain fuzzing thetest
contract below is that every time I modify thetest
contract, I'll have to wait for 1 hour and 24 minutes before the fuzzing begins as the fetch slot does not seem to be cached. This is greatly impacting productivity of onchain fuzzing.Here's one example to reproduce this issue:
echidna-config.yaml
Hevm.sol
test.sol
Command: