Prune Node Rescan Project Tracking #29183

issue furszy openend this issue on January 4, 2024
  1. furszy commented at 8:31 pm on January 4, 2024: member

    This issue will be edited frequently to reflect the current status of the project.

    What should I review now?


    👇 👇 👇 👇 – #27837 – ☝️ ☝️ ☝️ ☝️

    The goal of this project is to enable complete blockchain rescan capability on prune nodes, allowing these storage-limited nodes to import new wallet descriptors and update existing ones at any time, as well as loading external and un-synced wallets with a birth-time older than 48 hours. This, in turn, enables the monitoring of new addresses/scripts and tracking balance changes without the need to repeatedly download the entire blockchain.

    The first project milestone introduces the feature for prune nodes that construct and maintain a local block filters set database. The node will request and keep track of the missing historical blocks that match the wallet scripts filters set to subsequently perform the rescan.

    The following sections are ordered by their PRs dependencies:

    Net: Single Block Requests Tracking System and On Download Failure Retry Mechanism
    Indexes Stability and Performance Improvements
    Wallet Rescan (depends on the net section)
    • #27469
    • Cache wallet filters’ set and connect it to the current wallet rescan functionality. (Pending)
    • Wallet: implement “rescan status” class to track the progress and retrieve it via an RPC command. (Pending)
    • Wallet: introduce prune node rescan functionality. (Pending - depends on net changes)

    Issues Solved By This Work

  2. chrisguida commented at 8:49 pm on January 23, 2024: none
    Does scanblocks work on pruned nodes yet? If not, does this project aim to add that capability?
  3. furszy commented at 10:04 pm on January 23, 2024: member

    Does scanblocks work on pruned nodes yet? If not, does this project aim to add that capability?

    scanblocks always worked on pruned nodes. Just need to enable -blockfilterindex since the node’s inception.

  4. chrisguida commented at 8:10 pm on January 24, 2024: none
    Excellent, thanks!!
  5. chrisguida commented at 8:11 pm on January 24, 2024: none
    What’s the process for building the blockfilterindex on an already-synced pruned node? Enable blockfilterindex, reindex?
  6. furszy commented at 10:30 pm on January 24, 2024: member

    What’s the process for building the blockfilterindex on an already-synced pruned node? Enable blockfilterindex, reindex?

    Yes. For further node support, please come to IRC or use bitcoin.stackexchange. This is a project tracking issue.

  7. shovas commented at 11:11 pm on February 8, 2024: none
    Here from #27188. I’m presently experimenting with wallets for bitcoin, litecoin, dogecoin, and bitcoin cash using linux cli tools so if I can help I’ll try.
  8. AndySchroder commented at 2:20 am on August 1, 2024: none
    Wondering if it makes sense to have a prune witness data only mode? Can’t #25957 work without witness data? Seems like pruning all witness data after the last 2,000 blocks would be a technically easy option with a high reward in disk space savings. I thought that was the reason we had the segwit discount (to encourage more prunable data be placed in the witness), but is that discount doesn’t even seem to be used by bitcoin core in a meaningful way in terms of pruning? Is there any open issue for pruning witness data?
  9. furszy commented at 3:06 pm on August 29, 2024: member

    Wondering if it makes sense to have a prune witness data only mode? Can’t #25957 work without witness data? Seems like pruning all witness data after the last 2,000 blocks would be a technically easy option with a high reward in disk space savings.

    Something like that wouldn’t be easy to implement with the current storage model. The witness data is tied to the transaction on disk in its serialized form, which is then tied to the block on disk in its serialized form. So, in order to discard the witness data, we would need to create a process that rewrites the block files entirely.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-22 00:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me