Skip to content
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

Aleth support #99

Open
holiman opened this issue Oct 17, 2018 · 4 comments
Open

Aleth support #99

holiman opened this issue Oct 17, 2018 · 4 comments
Labels

Comments

@holiman
Copy link
Collaborator

holiman commented Oct 17, 2018

It should be possible, and maybe even not very difficult, to add aleth to the list of fuzzed clients. They do support standard-json output, but unfortunately the don't export jsonl (line by line) output, but instead a huge blob of json. IIRC, we need to use testeth to run the statetest.
@chfast / or @gumbo , is this correct ?

@chfast
Copy link
Member

chfast commented Oct 17, 2018

If you are using tools like evm or parity-evm you can use aleth-vm similarly. If jsonl is needed I will add support for it.

@ireneGP
Copy link

ireneGP commented Nov 6, 2018

Is the --flat something you are looking for? Like the following command:

➜  aleth-vm git:(master) ✗ ./aleth-vm trace --code 3A6597adEf2eBfEaFFAA6Aa3fA193ec528Af4b4f2d67ede3c770E5770fd246cC27b6bc7FdAF4Df6FD92B2d3B01788D8F51eb --flat
{"depth":"0","gas":"9223372036854775807","gasCost":"2","memory":[],"pc":"0","stack":[],"storage":{}}
{"depth":"0","gas":"9223372036854775805","gasCost":"3","pc":"1","stack":["0x00"]}
{"depth":"0","gas":"9223372036854775802","gasCost":"0","pc":"8","stack":["0x00","0x97adef2ebfea"]}

@holiman
Copy link
Collaborator Author

holiman commented Nov 6, 2018

Ohh, nice! Yes that's it. However, fuzzing is nowadays based on running a statetest, not raw code. Does that exist?

@holiman
Copy link
Collaborator Author

holiman commented Nov 13, 2018

So, this aleth-vm https://github.com/ethereum/aleth/blob/master/aleth-vm/main.cpp looks a lot like the geth evm, and looks like it will be easy to integrate into vm.py, and in general to use with things like the assembly compiler in evmlab. I haven't teste it, but looked at the source, some questions

  • It does not seem to take a genesis, so it appears not possible to specify alloc section? That breaks a lot of usecases.
  • It does not seem to have ability to, instead of taking gasPrice, sender, network etc via commandline, take all that from a statetest instead. That would enable fuzzing.

Could we get that, @chfast ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants