paritytech / roadmap

Roadmap milestones are created here
2 stars 0 forks source link

Optimizing Warp Syncing Support and User Experience #32

Open bkchr opened 1 year ago

bkchr commented 1 year ago

Vision

Our node supports multiple modes of syncing, with warp sync being one of them. While it has been implemented for solo chains running Grandpa as well as for parachains, the current implementation of warp sync has some limitations.

As it stands, warp sync only supports syncing from genesis. This implies that any pre-synced database can't be leveraged to warp sync to the chain's tip. Moreover, when using an empty database, the system always defaults to warp sync from genesis.

To augment the efficiency of warp sync, it would be beneficial to have a recent "sync state" stored in the chain spec. This feature would expedite the warp syncing process without influencing the actual state syncing.

Our ultimate aim is to make warp sync the primary sync mode for nodes, leaving normal sync to be activated only when a node is to be synced as an archive node.

Plan

To achieve these enhancements, we need to address several key issues and make some critical improvements:

  1. To enable syncing from non-genesis and to support warp syncing from a predefined state, we need to address the following issues:

  2. We need to investigate known issues such as:

  3. To improve the user experience, we should consider storing the state sync state as proposed in:

  4. It's critical that we extend our testing to ensure the robustness and reliability of the warp sync mode.

  5. Finally, to make warp sync the default sync mode, we need to address:

By focusing on these areas, we can significantly enhance our warp syncing support and user experience.

bkchr commented 9 months ago

https://github.com/paritytech/polkadot-sdk/issues/2733