diff --git a/src/seeder/bitcoin.cpp b/src/seeder/bitcoin.cpp --- a/src/seeder/bitcoin.cpp +++ b/src/seeder/bitcoin.cpp @@ -122,6 +122,16 @@ EndMessage(); doneAfter = time(nullptr) + GetTimeout(); } else { + // Create a getheaders message + BeginMessage(NetMsgType::GETHEADERS); + // Locator hash: Seeder requests the headers after the latest + // checkpoint + const CChainParams &chainParams = Params(); + const auto checkpoints = chainParams.Checkpoints().mapCheckpoints; + std::vector locatorHashes(1, + checkpoints.rbegin()->second); + vSend << PROTOCOL_VERSION << locatorHashes << uint256(); + EndMessage(); doneAfter = time(nullptr) + 1; } return PeerMessagingState::AwaitingMessages; @@ -160,6 +170,16 @@ return PeerMessagingState::Finished; } } + // Create a getheaders message + BeginMessage(NetMsgType::GETHEADERS); + // Locator hash: Seeder requests the headers after the latest checkpoint + const CChainParams &chainParams = Params(); + const auto checkpoints = chainParams.Checkpoints().mapCheckpoints; + std::vector locatorHashes(1, checkpoints.rbegin()->second); + vSend << PROTOCOL_VERSION << locatorHashes << uint256(); + EndMessage(); + // Update socket timeout + doneAfter = time(nullptr) + GetTimeout(); return PeerMessagingState::AwaitingMessages; }