Prune Node Rescan Project Tracking
- Dominant language
- C++
- Stars
- 90.2k
- Forks
- 39.4k
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 88
Description
This issue will be edited frequently to reflect the current status of the project.
#### What should I review now?
This project is currently on standby. Looking for contributors who want to see it happen and are willing to be part of the work (not only coding, reviewing it is even more important). Please leave a comment if you are interested.
-----------------------
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
* [x] #28170
* [x] #28120
* [x] #30118
* [ ] #27837
##### Indexes Stability and Performance Improvements
* [X] #27607
* [X] #27720
* [x] #28955
* [ ] #26966
##### Wallet Rescan (depends on the net section)
* [X] #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
* [ ] #21267
* [ ] #23727
* [ ] #27188
* [ ] #27652
* [ ] #27939
* [ ] https://github.com/sparrowwallet/sparrow/issues/1111#issuecomment-2054204911
Contributor guide
Research direction
Start by reviewing the project milestones and their dependencies, especially #27837 and #26966, followed by the pending wallet rescan work. The issue describes caching wallet filter sets, tracking rescan status through an RPC command, and adding prune-node rescan functionality. Done means the listed milestones are implemented and the dependent rescan issues can be addressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- blockchain
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100