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

StateStrategy assumes all the state (of a block) fits into RAM #4608

Closed
2 tasks done
nazar-pc opened this issue May 28, 2024 · 1 comment
Closed
2 tasks done

StateStrategy assumes all the state (of a block) fits into RAM #4608

nazar-pc opened this issue May 28, 2024 · 1 comment
Labels
I5-enhancement An additional feature request.

Comments

@nazar-pc
Copy link
Contributor

Is there an existing issue?

  • I have searched the existing issues

Experiencing problems? Have you tried our Stack Exchange first?

  • This is not a support question.

Motivation

Reading through source code now that we started (ab)using StateStrategy for our sync implementation I noticed that it has an implicit assumption that the whole state as of any particular block can be assembled in RAM (not even accounting for other things that might be in RAM at the same time), which is naive and potentially problematic once state grows beyond size that fits in RAM.

Request

I think there should be some kind of fallback that stores downloaded state in auxiliary store on disk or similar instead of RAM. Maybe it should even be the default way to store state so two options don't need to be supported. This will have an impact on block import/application enums/APIs as well.

Solution

No response

Are you willing to help with this request?

Maybe (please elaborate above)

@nazar-pc nazar-pc added the I5-enhancement An additional feature request. label May 28, 2024
@bkchr
Copy link
Member

bkchr commented May 28, 2024

Duplicate of: #4

@bkchr bkchr closed this as completed May 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I5-enhancement An additional feature request.
Projects
None yet
Development

No branches or pull requests

2 participants