From bc7ea2af2da5a35867e726090c423f60f6e51463 Mon Sep 17 00:00:00 2001 From: Andrey Kravchenko Date: Wed, 10 Jan 2024 16:27:06 +0300 Subject: [PATCH] Fix pass the selected neighbor to the download proof (#854) * Fix pass the selected neighbor to the download proof. * Fix GetNextKeyBlocks as well Previously, the neighbor was choosed, but it was not passed to the DownloadProof class, as a result, in got_download_token we always get a random one from overlay, but after failure, bad statistics are recorded for the previously selected neighbor, which did not participate in this operation. --- validator/full-node-shard.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/validator/full-node-shard.cpp b/validator/full-node-shard.cpp index 0f495077..7c59a79c 100644 --- a/validator/full-node-shard.cpp +++ b/validator/full-node-shard.cpp @@ -795,7 +795,7 @@ void FullNodeShardImpl::download_block_proof_link(BlockIdExt block_id, td::uint3 td::Promise promise) { auto &b = choose_neighbour(); td::actor::create_actor("downloadproofreq", block_id, true, false, adnl_id_, overlay_id_, - adnl::AdnlNodeIdShort::zero(), priority, timeout, validator_manager_, rldp_, + b.adnl_id, priority, timeout, validator_manager_, rldp_, overlays_, adnl_, client_, create_neighbour_promise(b, std::move(promise))) .release(); } @@ -803,7 +803,7 @@ void FullNodeShardImpl::download_block_proof_link(BlockIdExt block_id, td::uint3 void FullNodeShardImpl::get_next_key_blocks(BlockIdExt block_id, td::Timestamp timeout, td::Promise> promise) { auto &b = choose_neighbour(); - td::actor::create_actor("next", block_id, 16, adnl_id_, overlay_id_, adnl::AdnlNodeIdShort::zero(), + td::actor::create_actor("next", block_id, 16, adnl_id_, overlay_id_, b.adnl_id, 1, timeout, validator_manager_, rldp_, overlays_, adnl_, client_, create_neighbour_promise(b, std::move(promise))) .release();