-
Notifications
You must be signed in to change notification settings - Fork 35.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce auxiliary block requests #9171
Conversation
Renamed "Out-of-band Block Requests" to "Auxiliary Block Request" to avoid confusion. |
dbcc0eb
to
963c6c9
Compare
Did the non-trivial post main.cpp split rebase. Short explanation how this works.
Use cases
|
I forgot to mention that this could – in general – be useful for pruned nodes. |
220282d
to
95d2838
Compare
Added a hidden RPC command ( This allows regression-tests of the auxiliary block requests. Added a simple RPC test. |
I'm not really understanding why this PR is needed or what new functionality (that was needed) it does... sorry. |
This is required for features that need to download and process block higher/further-away then the current validation depth
+ Adds a validate=true|false to the SyncTransaction signal
…PC call This allows efficient testing of auxiliary block requests
95d2838
to
9a43921
Compare
Force push fixed a rebase error. |
Concept ACK |
3d8f9d6
to
5598be6
Compare
Needs rebase |
Maybe this PR should be closed? #9483 is newer and includes these changes. Also I posted a big batch of review comments there in February. |
Closing in favour of #10794 |
This PR will allow auxiliary block requests. This will be required to run SPV wallets as well as this solves some other interesting use cases.
CAuxiliaryBlockRequest
SyncTransaction signal
New RPC call "requestblocks"
Allows to request blocks, if available on disk, they will be optionally passed tough the SyncTransaction signal (Wallet/ZMQ). If some or all of the blocks are not available, they will be downloaded (prioritized over "normal" IBD downloads).
The blocks will be downloaded in parallel using the current block download mechanisms.
CAuxiliaryBlockRequest
will ensure that the blocks get processes in the correct order (as requested).If someone has a good testplan for this, please stand up.