Skip to content

Repository and contract details clean up#1117

Merged
AlexandraRoatis merged 18 commits intomasterfrom
AKI-435-PR
Feb 20, 2020
Merged

Repository and contract details clean up#1117
AlexandraRoatis merged 18 commits intomasterfrom
AKI-435-PR

Conversation

@AlexandraRoatis
Copy link
Copy Markdown
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