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

Partial load of the Account #917

Open
rakita opened this issue Dec 18, 2023 · 0 comments
Open

Partial load of the Account #917

rakita opened this issue Dec 18, 2023 · 0 comments
Labels
feature New feature or lib ability

Comments

@rakita
Copy link
Member

rakita commented Dec 18, 2023

Split loading of account to its component but allow for it to be fully loaded if needed.

The Account contains the nonce, balance, code_hash and bytecode. In most client nodes nonce, balance and code hash are grouped in one table while bytecode is in a separate one. So current abstraction has separate loads for Account and Bytecode.

For parallel evm we would like to go even granular to see what exactly is used inside EVM, example of this is EXTBALANCE opcode where only the balance of a external account is needed. With better granularity, we have a better view of the points of the conflict

We still need to load it and consider it warm inside the EVM journaled state, but every field inside AccountInfo would be an Option<>.

So loading account info would additionally contain a Enum that would tell us what we want to load, in return, we could return AccountInfo which could contain every field or it could contain just the info that we requested. This would allow partial loading if the user wants that behaviour.

Maybe introduce two types of accounts, one internal to EVM and one for State

@rakita rakita added the feature New feature or lib ability label Dec 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or lib ability
Projects
None yet
Development

No branches or pull requests

1 participant