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

Self-contained State module #15574

Open
11 of 13 tasks
imalygin opened this issue Sep 20, 2024 · 3 comments
Open
11 of 13 tasks

Self-contained State module #15574

imalygin opened this issue Sep 20, 2024 · 3 comments
Labels
Epic A body of work that can be broken down into specific tasks. Platform Tickets pertaining to the platform

Comments

@imalygin
Copy link
Member

imalygin commented Sep 20, 2024

This is the logical continuation of the Public Merkle API initiative (#10988). Also, it overlaps with #14772.

There are two main goals of this Epic:

  1. Remove all platform specifics from the State module
  2. Add state lifecycle management to the State module in an generic (non-platform specific) way

Currently, a Block node would have to not only use the swirlds-state-api module but also swirlds-platform-core as a dependency, which, in turn, contains functionality that is not relevant in the context of the state (consensus, gossip, transaction handling).

We need a State module that has not only a set of API interfaces but also all the necessary implementations to represent the full Merkle state.

Platform Dependency Removal

Preview Give feedback
  1. Platform
    imalygin
  2. Platform
    imalygin
  3. Platform
    imalygin
  4. Platform Platform Data Structures Tech Debt Reduced
    thenswan
  5. Platform
    imalygin
  6. Platform
    imalygin thenswan
  7. Platform Tech Debt Reduced
    imalygin
  8. Platform
    imalygin
  9. 1 of 2
    Epic Platform
    imalygin
  10. Platform
    imalygin
  11. Platform
    thenswan

Lifecycle Management

Preview Give feedback
  1. Platform
    thenswan
  2. Platform Tech Debt Reduced
    imalygin
@imalygin imalygin added Epic A body of work that can be broken down into specific tasks. Platform Tickets pertaining to the platform labels Sep 20, 2024
@poulok
Copy link
Member

poulok commented Sep 30, 2024

We discussed at DevCon that this State Module may also need to include the management of states similarly to the SwirldStateManager which keeps a thread-safe reference to the mutable state and the latest immutable state, but more than that. It could include logic that does things like ensure that only a single loaded state is mutable and that it is always the latest one even if the user of the module loads another, older state from disk.

@thenswan
Copy link
Contributor

thenswan commented Nov 5, 2024

@imalygin
Copy link
Member Author

Moved tasks related to the state lifecycle management to #17540

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic A body of work that can be broken down into specific tasks. Platform Tickets pertaining to the platform
Projects
None yet
Development

No branches or pull requests

3 participants