Skip to content

Feature Request: More Granular Access to Processes #538

@thunderbiscuit

Description

@thunderbiscuit

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:

  1. User is on cellular data instead or wifi.
  2. Download block headers, see how far off the best block you are.
  3. 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?"
  4. Maybe an extra step: "75 blocks are potentially impacting this wallet's balance (~225MB). Do you wish to download them now?"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions