aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSjors Provoost <sjors@sprovoost.nl>2021-12-08 19:17:29 +0700
committerSjors Provoost <sjors@sprovoost.nl>2021-12-24 16:28:53 +0100
commit0e3d7c5ee16d5a4c061ab9a57285bceb7899b512 (patch)
tree6b99fdec1acf9cb787db61f0a8c1d1cab2e5e556
parent8d1a3e6498de6087501969a9d243b0697ca3fe97 (diff)
downloadbitcoin-0e3d7c5ee16d5a4c061ab9a57285bceb7899b512.tar.xz
refactor: drop redundant hash argument from FetchBlock
-rw-r--r--src/net_processing.cpp7
-rw-r--r--src/net_processing.h9
-rw-r--r--src/rpc/blockchain.cpp7
3 files changed, 11 insertions, 12 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index e4b8e9b6a9..5f47a9c16b 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -312,7 +312,7 @@ public:
/** Implement PeerManager */
void StartScheduledTasks(CScheduler& scheduler) override;
void CheckForStaleTipAndEvictPeers() override;
- bool FetchBlock(NodeId id, const uint256& hash, const CBlockIndex& index) override;
+ bool FetchBlock(NodeId id, const CBlockIndex& block_index) override;
bool GetNodeStateStats(NodeId nodeid, CNodeStateStats& stats) const override;
bool IgnoresIncomingTxs() override { return m_ignore_incoming_txs; }
void SendPings() override;
@@ -1428,7 +1428,7 @@ bool PeerManagerImpl::BlockRequestAllowed(const CBlockIndex* pindex)
(GetBlockProofEquivalentTime(*pindexBestHeader, *pindex, *pindexBestHeader, m_chainparams.GetConsensus()) < STALE_RELAY_AGE_LIMIT);
}
-bool PeerManagerImpl::FetchBlock(NodeId id, const uint256& hash, const CBlockIndex& index)
+bool PeerManagerImpl::FetchBlock(NodeId id, const CBlockIndex& block_index)
{
if (fImporting || fReindex) return false;
@@ -1440,9 +1440,10 @@ bool PeerManagerImpl::FetchBlock(NodeId id, const uint256& hash, const CBlockInd
if (!state->fHaveWitness) return false;
// Mark block as in-flight unless it already is
- if (!BlockRequested(id, index)) return false;
+ if (!BlockRequested(id, block_index)) return false;
// Construct message to request the block
+ const uint256& hash{block_index.GetBlockHash()};
std::vector<CInv> invs{CInv(MSG_BLOCK | MSG_WITNESS_FLAG, hash)};
// Send block request message to the peer
diff --git a/src/net_processing.h b/src/net_processing.h
index 6c18e8ddfa..2b22d8ce85 100644
--- a/src/net_processing.h
+++ b/src/net_processing.h
@@ -45,12 +45,11 @@ public:
/**
* Attempt to manually fetch block from a given peer. We must already have the header.
*
- * @param[in] id The peer id
- * @param[in] hash The block hash
- * @param[in] pindex The blockindex
- * @returns Whether a request was successfully made
+ * @param[in] id The peer id
+ * @param[in] block_index The blockindex
+ * @returns Whether a request was successfully made
*/
- virtual bool FetchBlock(NodeId id, const uint256& hash, const CBlockIndex& pindex) = 0;
+ virtual bool FetchBlock(NodeId id, const CBlockIndex& block_index) = 0;
/** Begin running background tasks, should only be called once */
virtual void StartScheduledTasks(CScheduler& scheduler) = 0;
diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp
index 22455058bd..c6c88f5057 100644
--- a/src/rpc/blockchain.cpp
+++ b/src/rpc/blockchain.cpp
@@ -801,9 +801,8 @@ static RPCHelpMan getblockfrompeer()
PeerManager& peerman = EnsurePeerman(node);
CConnman& connman = EnsureConnman(node);
- uint256 hash(ParseHashV(request.params[0], "hash"));
-
- const NodeId nodeid = static_cast<NodeId>(request.params[1].get_int64());
+ const uint256 hash(ParseHashV(request.params[0], "hash"));
+ const NodeId nodeid{request.params[1].get_int64()};
// Check that the peer with nodeid exists
if (!connman.ForNode(nodeid, [](CNode* node) {return true;})) {
@@ -820,7 +819,7 @@ static RPCHelpMan getblockfrompeer()
if (index->nStatus & BLOCK_HAVE_DATA) {
result.pushKV("warnings", "Block already downloaded");
- } else if (!peerman.FetchBlock(nodeid, hash, *index)) {
+ } else if (!peerman.FetchBlock(nodeid, *index)) {
throw JSONRPCError(RPC_MISC_ERROR, "Failed to fetch block from peer");
}
return result;