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

feat(levm): implement Cache and refactor Db #991

Draft
wants to merge 50 commits into
base: main
Choose a base branch
from
Draft

Conversation

JereSalo
Copy link
Contributor

@JereSalo JereSalo commented Oct 26, 2024

Motivation

We currently have an in-memory database that should soon be replaced by the node's in-disk database. For that purpose we want to allow us to switch between both kinds of databases. The need to implement this PR's features and refactor the Db arose while working on #904.

Description

This PR includes:

  • Adding a Cache to store warm accounts. This removes the need of having accessed_accounts and accessed_storage_slots sets in Substate because we know that if they are cached then they are warm.
  • Making our Db implement the Database trait and interact with it only using methods and not it's attributes, so in the future we can implement that trait for the actual node's database.
  • Fix call opcodes and remove delegate attribute from CallFrame.

Part of #814.

@JereSalo JereSalo changed the title feat-refactor(levm): implement access list, cache and refactor DB feat(levm): implement access list, cache and refactor DB Oct 26, 2024
@juanimedone juanimedone added the levm Lambda EVM implementation label Oct 28, 2024
@JereSalo JereSalo marked this pull request as ready for review October 29, 2024 16:18
@JereSalo JereSalo requested a review from a team as a code owner October 29, 2024 16:18
@juanimedone juanimedone changed the title feat(levm): implement access list, cache and refactor DB feat(levm): implement Cache and refactor Db Oct 29, 2024
@JereSalo JereSalo marked this pull request as draft October 29, 2024 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
levm Lambda EVM implementation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants