This repository has been archived by the owner on Nov 6, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Move the BlockInfo trait to new crate
Contains code extracted from ethcore that defines `Machine`, `Externalities` and other execution related code.
debris
reviewed
Aug 7, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
those changes lgtm! please fix remaining todos and let's get it in!
* master: Fix compiler warnings in util/io and upgrade to edition 2018 Upgrade mio to latest (#10953)
debris
approved these changes
Aug 10, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
debris
added
A8-looksgood 🦄
Pull request is reviewed well.
M4-core ⛓
Core client code / Rust.
and removed
A0-pleasereview 🤓
Pull request needs code review.
labels
Aug 10, 2019
ordian
approved these changes
Aug 13, 2019
dvdplm
added a commit
that referenced
this pull request
Aug 13, 2019
ordian
added a commit
that referenced
this pull request
Aug 15, 2019
* master: [evmbin] fix compilation (#10976) Update to latest trie version. (#10972) [blooms-db] Fix benchmarks (#10974) Fix ethcore/benches build. (#10964) tx-pool: accept local tx with higher gas price when pool full (#10901) Disable unsyncable expanse chain (#10926) Extract Machine from ethcore (#10949) removed redundant state_root function from spec, improve spec error types (#10955) Add support for Energy Web Foundation's new chains (#10957) [evmbin] add more tests to main.rs (#10956) Fix compiler warnings in util/io and upgrade to edition 2018 Upgrade mio to latest (#10953) unify loading spec && further spec cleanups (#10948) refactor: Refactor evmbin CLI (#10742) journaldb changes (#10929) Allow default block parameter to be blockHash (#10932) Enable sealing when engine is ready (#10938) Fix some warnings and typos. (#10941) Updated security@parity.io key (#10939) Change the return type of step_inner function. (#10940)
This was referenced Nov 5, 2019
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the pursuit of a slimmer
ethcore
crate, this PR moves theMachine
and related types/code to a newmachine
crate, ~3kloc of Rust.I am not entirely sure that my choice of what to move where is the best possible way of slicing things up, but I have made a few failed attempts to disentangle
Machine
fromEngine
and at the end of the day I think thatMachine
is the lower level type here and so easier to move.The end goal, other than a slimmer
ethcore
crate ofc, is to be able to move theEngine
trait outside ofethcore
which in turn would enable us to move the engine impls to own crates as well. I believe that would be beneficial both for maintaining existing code and for external contributors to work on new/tweaked engines.The PR is noisy and for that I apologise. There is no new logic added or changed, other than some slight refactoring of the way tests instantiate
Machine
s. Theethcore::client
module re-exports plenty of types for no apparent reason and removing those led to significant fallout in other places, contributing to the noise. I do believe that re-exports of that kind creates more confusion than convenience.The most relevant changes of this PR is the addition of the
machine
crate and a newclient-traits
crate (which for now is tiny, but could grow if/when we extract more traits fromethcore::client::traits
). Extracting themachine
crate implies moving plenty of other code as well:Executive
,Externalities
,Substate
andTxFilter
.