A significant delay for Snap sync on consensus chain right now is downloading pieces from DSN. IIRC this is a requirement for domains due to the need to sync at a specific consensus chain height, but it is not actually the case for consensus chain alone!
All nodes already store several segments worth of blocks locally to ensure smooth transition out of Snap sync/full DSN sync from genesis. These blocks can be used to bypass the need to download pieces from DSN.
A faster workflow:
- (like before) establish what is the longest chain is segment headers that majority of peers agree on (still sorta slow, but can be dealt with separately)
- resume normal Substrate sync right before the last archived segment
- once the segment is finished, ensure it is the same as specified in a segment header
This way all blocks are downloaded using Substrate sync from a small set of connected peers instead of large set of peers from DSN, which should be faster on average and much faster in worst case. No need to establish a huge number of connections, no reconstruction in case of missing pieces, etc.
The data set here is small and well known, reaching out to DSN is technically not really necessary.