From 809d66bb65aa78048e27c2a878d6f7becaecfe11 Mon Sep 17 00:00:00 2001 From: Sjors Provoost Date: Wed, 8 Dec 2021 19:44:46 +0700 Subject: [PATCH] rpc: clarify getblockfrompeer behavior when called multiple times --- src/net_processing.cpp | 4 +++- src/rpc/blockchain.cpp | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 5f47a9c16b..1319267944 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -1439,7 +1439,9 @@ bool PeerManagerImpl::FetchBlock(NodeId id, const CBlockIndex& block_index) // Ignore pre-segwit peers if (!state->fHaveWitness) return false; - // Mark block as in-flight unless it already is + // Mark block as in-flight unless it already is (for this peer). + // If a block was already in-flight for a different peer, its BLOCKTXN + // response will be dropped. if (!BlockRequested(id, block_index)) return false; // Construct message to request the block diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index c6c88f5057..93d5719e25 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -781,7 +781,8 @@ static RPCHelpMan getblockfrompeer() "getblockfrompeer", "\nAttempt to fetch block from a given peer.\n" "\nWe must have the header for this block, e.g. using submitheader.\n" - "\nReturns {} if a block-request was successfully scheduled\n", + "Subsequent calls for the same block and a new peer will cause the response from the previous peer to be ignored.\n" + "\nReturns an empty JSON object if the request was successfully scheduled.", { {"blockhash", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, "The block hash"}, {"nodeid", RPCArg::Type::NUM, RPCArg::Optional::NO, "The node ID (see getpeerinfo for node IDs)"},