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

Loading custom tracers, also persisting data while syncing a full node #490

Closed
veikkoeeva opened this issue May 18, 2019 · 4 comments
Closed

Comments

@veikkoeeva
Copy link

This could be considered a sort of a memo and a discussion ticket on loading custom transaction tracers in Nethermind without compiling the main code source code.

I had a question with @tkstanczak on the channel about persisting transaction data to a separate database while syncing a full node. In effect this would allow one to build a system functionally like an archive node if being able to maintain the information otherwise but without managing a large storage in a flat file system. Basically the case described at ethereum/go-ethereum#2104 (comment) while syncing. A similar case is storing VM trace data to a separate system.

To do this currently one needs:

  1. Acquire the source code.
  2. Implement a custom tracer and compile a custom version of the software.
  3. Run a custom version of the software.

During the discussion the following pieces of software were presented as points of modifications:

IBlockProcessor

IBlockTracer

ITxTracer

And as concrete examples

GethLikeTxTracer

ParityLikeTxTracer

It appears respecting the license the modifications ought to be available somewhere. Either in this repository or perhaps a fork and one question then is what quality of work should be added to the main project and if it would be purposeful to have very purpose specific code and examples available outside of the main codebase.

The need to implement the tracers in the source code and compile a custom binary and the license together prompts a consideration as to what would be needed to build a plugin where one can load external tracers into the system? What would such a subsystem need and what could be the extension points?

@tkstanczak
Copy link
Member

Probably easiest if we define an interface for add-ons / extensions and Tracers seem to be a great starting point.

The more general framework for this will be sketched probably next month. Let us see.

@tkstanczak
Copy link
Member

This requires a fix to module loading.

@tkstanczak
Copy link
Member

tkstanczak commented Sep 29, 2020

!!! Add custom tracers to the plugins!

@tkstanczak tkstanczak added this to To do in October 2020 Sep 29, 2020
October 2020 automation moved this from To do to Done Jan 27, 2021
@macrocan
Copy link

Is parity tracer action persisted now? How can i get that from a full node?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

No branches or pull requests

3 participants