Send not_found for unservable get_data. - #1104
Closed
echennells wants to merge 1 commit into
Closed
Conversation
Contributor
Author
|
Closing — not ready to submit yet. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A
get_datanaming a block or transaction the node cannot serve stops the channel. bitcoind repliesnotfoundand stays connected. Implements #986.Three sites now reply and resume the send loop: a pruned block, a block absent from the archive, and an absent transaction. Each item is answered on the send completion handler, as a block is, so nothing is produced until the prior write completes.
Block-out protocols are selected on
send_headers, so a peer above bip37 reachesprotocol_block_out_106through the default arm.not_foundis undefined below bip37, so that protocol captures the negotiated level at construction and retains the stop below it.protocol_transaction_out_106attaches only above bip37 and asserts.A hash resolving to no header is tested before the pruned check, as the checkpoint height query faults the store on a terminal link.
Requests remain bounded by
max_inventoryat deserialization, so no limit is added; an unservable item is now logged per item, where the channel previously stopped on the first.Two cases cover the block sites. The transaction site needs the fixture to negotiate relay, which it cannot yet.