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

Port Step tracing perf + more shared code #20

Merged
merged 39 commits into from
Dec 22, 2021

Conversation

nanocryk
Copy link
Contributor

@nanocryk nanocryk commented Dec 6, 2021

Port moonbeam-foundation/moonbeam#1033 to the tracing runtime overrides.

Since evm-tracing-events now have a Substrate dependency, I had to think again about how to support code sharing across runtime versions. After some tests I finally found a trick that seems to work.

In the shared crates I set the git path of substrate and frontier to a fork of substrate and a dummy branch (at some commit using Rust 2018 edition so it works even for our oldest runtimes). I have to use a separate repo due to this bug in cargo : rust-lang/cargo#5478

Then in the main .toml of each runtime version, I patch the dependencies to set the correct revision of substrate and frontier. Thus the forks are only there to check the crate existence, and then the correct version is used. Currently I forked in my personal namespace, but we should have the forks under the PureStake namespace (due to the bug above sadly it can't be the repos we already used).

Finally there is a change in ethereum types between versions. A feature flag is thus used to select the correct version to use.

TODO

  • Review refactor.
  • Update the import script/template to only import the runtimes themselves and the common crate, as the rest should either be fetched from the main repo or use the patched shared version.
  • Test the tracing perf to check it indeed provide improvements. If it doesn't we can rollback this specific change while keeping the shared refactor.

@librelois librelois self-requested a review December 6, 2021 17:02
@nanocryk nanocryk marked this pull request as ready for review December 7, 2021 15:36
@librelois
Copy link
Collaborator

@nanocryk please merge master

@nanocryk nanocryk merged commit 05564d6 into master Dec 22, 2021
@nanocryk nanocryk deleted the jeremy-evm-tracing-step-perf branch December 22, 2021 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants