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

Implement Geth's tracing APIs #12

Open
artob opened this issue Apr 27, 2021 · 12 comments
Open

Implement Geth's tracing APIs #12

artob opened this issue Apr 27, 2021 · 12 comments
Labels
enhancement New feature or request

Comments

@artob
Copy link
Contributor

artob commented Apr 27, 2021

We have requests from partners to implement Geth's nonstandard RPC methods debug_traceBlockByNumber and debug_traceTransaction with the tracer option (JavaScript-based tracing).

References:

@artob artob added the enhancement New feature or request label Apr 27, 2021
@artob artob changed the title Implement debug_trace APIs Implement Geth's debug_trace APIs Apr 27, 2021
@artob artob changed the title Implement Geth's debug_trace APIs Implement Geth's tracing APIs Apr 27, 2021
@OnlyOneJMJQ
Copy link

Truffle's debugger relies on debug_traceTransaction, so it would be a massive DX win to support that method.

@artob
Copy link
Contributor Author

artob commented May 6, 2021

Thanks, @DiscRiskandBisque, that's good info and definitely noted for the roadmap 👍

@OnlyOneJMJQ
Copy link

OnlyOneJMJQ commented May 12, 2021

One additional note! The data for the trace can grow unbounded in size (greater than the memory allocation for most JavaScript VMs--not sure if this applies to Rust), so we'll want to provide a way to stream the trace. To be serialized across a network JSON is converted into a string, since the string has no defined length up-front there's no way to properly allocate the memory.

Existing EVM implementations don't support this. This is why Truffle can't debug the most complex transactions. For example a flash loan on AAVE would present a problem because of the number of contracts it touches. We could actually have the first implementation where this is possible!

@saurik
Copy link

saurik commented Dec 25, 2021

(I would expect this to be totally trivial given this other work, but I hope you don't forget debug_traceBlockByHash ;P.)

@nftgeek
Copy link

nftgeek commented Apr 6, 2022

Any update on this? @OnlyOneJMJQ @artob

@spilin
Copy link
Collaborator

spilin commented Apr 6, 2022

Yes, should be live in 1-2 weeks

@nujabes403
Copy link

Any update on this?

@mfornet
Copy link
Contributor

mfornet commented Apr 28, 2022

@nujabes403 We are close to delivering it! We are doing it as part of a major infrastructure update, that's why it is taking longer than expected.

@nujabes403
Copy link

nujabes403 commented Apr 28, 2022

@mfornet Great, could it be implemented on aurorascan as well?

@mfornet
Copy link
Contributor

mfornet commented Apr 28, 2022

@nujabes403 Our RPC will expose this method; and most likely both major explorer (aurorascan and explorer.aurora) will use it to provide more information about transactions.

With regard to if aurorascan itself will provide an RPC with this method; I'm not sure.

@macrocan
Copy link

macrocan commented May 6, 2022

@nujabes403 We are close to delivering it! We are doing it as part of a major infrastructure update, that's why it is taking longer than expected.

When it will be released? I am expecting this major update

@evyatar-tres
Copy link

Hey, Any updates on this feature?

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

No branches or pull requests

9 participants