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

Revisit roles #2267

Open
jbearer opened this issue Nov 8, 2024 · 0 comments
Open

Revisit roles #2267

jbearer opened this issue Nov 8, 2024 · 0 comments

Comments

@jbearer
Copy link
Member

jbearer commented Nov 8, 2024

Currently the node supports a variety of modes (DA, archival, lightweight) which are implicitly determined by the optional modules a node runs. However, some functionality that certain roles should provide, they are not currently doing. E.g. lightweight nodes should at least store leaves and VID shares for a certain amount of time, but currently they do not. E.g. all nodes should store recent merklized states, but currently only archival nodes do this.

I think what needs to change is the following:

  • availability module: add an option for storing leaves only
  • make availability, node, state, status, and catchup modules required: all nodes should run these in some form or another
  • define availability/node pruning settings:
    • archival: disabled
    • DA: retain at least 3 days, up to 1 week
    • lightweight: retain at least 3 days, up to 1 week, do not fetch or store payloads at all
  • implement Merklized state pruning:
    • archival: disabled
    • DA/lightweight: retain only the last N states (N can be small, like 10), will be used for catchup only

All nodes can choose whether to use Postgres or SQLite backend. We strongly recommend Postgres for archival nodes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant