-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Measure coverage #25
Comments
Unfortunately coverage is really bad: |
So, how did you count?
I'm more interested in the second figure. And from that, we should also be able to weed out a toplist of most-wanted signatures, that are the 'highest prio' to discover in order to increase the coverage. |
Also, not every invocation is an ABI-call. There could be invocations of precompiles in there, which does e.g. |
And with 2), I mean coverage like this: pipermerriam/ethereum-function-signature-registry#30 (comment) |
Ah - makes sense - I was just counting how many of the signatures in your list are in the 4-byte directory - think this is 1 - will then also do 2 - sounds useful to have |
here the top 20 of signatures not found:
interesting also that 0xb9b8af0b and 0xb269681d have the same count - wonder if they always get called as a pair or if there is something else behind these both |
@holiman When weighting in the call amounts we get better results: there is a 74% chance the signature is found in the database (found 0.7391538 - missed 0.2608462) |
If we find the top 20 we increase to 79.82% |
Let's aim for 90% coverage before end of July. Which ones do we need to find for that? |
Maybe I should redo the trace and ignore calls to precompiles though... |
Could also dump the to-address, so we can more easily lookup verified code... |
unfortunately this is a huge list |
Hm, unfortunately the tracer already filtered out precompiles :(. However, it appears that a lot of the top hits were already discovered by me long ago -- they however suffer from the overactive regexp which does not allow int within the function name. I think I found most of the top 20 now with some google searches. I submitted 11 sol-files to 4byte, but it generated a db error. So that one needs to be fixed. |
Can you send me the 11 sol files? |
Here you go: solfiles.tar.gz |
You can google them :)
|
It can't be that huge. Can you get me the full list of unknowns, preferrably including call data length? |
it was like 11k entries if I remember correctly - the problem is that the call amounts insignificant very soon in the list and so you need a lot to cover ground to come to 90% |
Ah. There's an error here: https://github.com/ethereum/go-ethereum/blob/master/eth/tracers/internal/tracers/4byte_tracer.js#L63 . Should be
So all those one-offs are false positives 👍 |
New tracing is in progress |
Also, if we remove all signatures where the supplied data (minus four bytes) are not a multiple of |
Preliminary result (it's still tracing). These signatures should be sufficient to get 90% coverage (I have not filtered out which ones already exist in the db)
|
Wow, |
Ok, here's the new list, where I have not yet weeded out what is already in the db. |
And the final results are in: https://gist.github.com/holiman/563da876c4ce15629f57ffdc4046383b |
I located a few more, we're now at |
based on the list by @holiman in #23
The text was updated successfully, but these errors were encountered: