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

Repository and contract details clean up #1117

Merged
merged 18 commits into from
Feb 20, 2020
Merged

Repository and contract details clean up #1117

merged 18 commits into from
Feb 20, 2020

Conversation

AlexandraRoatis
Copy link
Contributor

Type of change

  • Bug fix.
  • New feature.
  • Enhancement.
  • Unit test.
  • Breaking change (a fix or feature that causes existing functionality to not work as expected).
  • Requires documentation update.

The cached encoding creates unnecessary overhead. It is used only when
storing dirty accounts. An account will have reset the encoding when it
has changes that enable the dirty flag. So there is no computation
saved by caching the encoding.
The loadAccountState method was relying on each implementation to copy
the account state and contract details into the provided caches. This
functionality is easier to maintain when the two objects are returned
instead of them being placed directly in the caches.
This is a first step towards removing the VM setters and getters from
the ContractDetails interface.
This is the next step in removing the setter for the VM types from the
ContractDetails interface. It has the addtional benefit of reducing the
number of locks acquired for accessing data in AionRepositoryCache.
It reduces the number of locks that need to be aquired to read the
account state information.
This is a step towards refining the contract details interfaces to
contain only the necessary methods.
The stored implementation can use the final address instance variable.
InnerContractDetails no longer needs the method.
@AlexandraRoatis AlexandraRoatis added enhancement New feature or request unit tests labels Feb 19, 2020
@AlexandraRoatis AlexandraRoatis added this to the 1.4 milestone Feb 19, 2020
@AlexandraRoatis AlexandraRoatis self-assigned this Feb 19, 2020
The check is incorrectly comparing the code hash with the trie hash.
It results in always updating the state root. The check cannot be
corrected because the genesis contains a contract with empty code.
Therefore the best option is to remove the check.
Reduces the number of byte array copies made during execution.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request unit tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant