Skip to content

Make terminology and simplified setups for archive nodes for syncing #12687

Open
@ValarDragon

Description

Summary

Currently cosmos refers to any node that stores data for all of history as an archive node.

We should create better terminology, and easier configuration, for running a node that is intended to help any peer sync from genesis.
This many orders of magnitude cheaper than what Archive nodes do today. They currently:

  • Store every historical state version, in the merkelization structure (massive overhead)
  • Store every tx result
  • Store every tx result a second time, due to Tendermint state.db bug

These are all massive data overheads, that are unnecessary for the core properties of:

  • Ensuring all chain history is available
  • Helping nodes syncs

Making it easier to configure "sync helping" archive nodes, and improving terminology, will likely greatly help improve reliability and validator serving of nodes that can sync you from genesis across cosmos. I'd estimate that these lower data overheads by at least a factor of 20x for chains like Osmosis (granted this is guesswork - don't take this as something well reasoned)

Problem Definition

All of cosmos has few archive nodes per chain, due to us collectively doing a bad job on definition making / config bundling (or even recommended configs), for how to make nodes that are intended to help others sync, and doing so cheaply.

Maybe there are improvements to work in seed/peer discovery that become clearer in further thinking on this.

Proposal

  • Define a term for nodes that help you sync from genesis
    • Reflect the decision in chain_registry for this
    • Should seed nodes be redefined to be the role of a seed node ? Depends on what data sizes look like I guess.
  • Document parameterization of a node for this goal
    • Think through ways to simplify setting up a node for this goal. e.g. how light weight is this, to make seeds fill in this function as well.

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    T:DocsChanges and features related to documentation.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions