-
Notifications
You must be signed in to change notification settings - Fork 12
Description
I think of the process of syncing a wallet with a Kyoto node as 3-step: (a) download the block headers, (b) download the filter headers + filters, (c) check the filters and request relevant blocks.
The current API forces the user into an all-or-nothing sync (~12GB if syncing from genesis on mainnet). Moreover, the node currently cannot inform the user "how far away from tip" they might currently be since the download of the block headers and the download of the filters happens together. Separating those would allow for a good estimate of the download size and time of sync that can be communicated back to the user.
I'd like to potentially have more granular control of the starting/stopping of these three steps, so as to allow for user interactions like these:
- User is on cellular data instead or wifi.
- Download block headers, see how far off the best block you are.
- Modal appears: "You are approximately 4000 blocks away (~120MB) from the chain tip and are currently connected to mobile data. Do you wish to download the compact block filters and sync your wallet now?"
- Maybe an extra step: "75 blocks are potentially impacting this wallet's balance (~225MB). Do you wish to download them now?"