diff --git a/src/p2p_server.cpp b/src/p2p_server.cpp index a4cfecb..b16cb8b 100644 --- a/src/p2p_server.cpp +++ b/src/p2p_server.cpp @@ -3188,6 +3188,13 @@ bool P2PServer::P2PClient::on_checkpoint_request() LOGINFO(4, "peer " << log::Gray() << static_cast(m_addrString) << log::NoColor() << " requested checkpoints, sending " << checkpoints.size() << " checkpoints"); + // If we have no checkpoints, don't send a response (backward compatibility) + // Older peers expect count >= 1, so sending count=0 would cause them to disconnect + if (checkpoints.empty()) { + LOGINFO(4, "No checkpoints to send to peer " << static_cast(m_addrString) << ", skipping response"); + return true; + } + // Send checkpoint response const bool result = server->send(this, [&checkpoints, this](uint8_t* buf, size_t buf_size) -> size_t diff --git a/src/p2pool.cpp b/src/p2pool.cpp index 54efc44..ee7932d 100644 --- a/src/p2pool.cpp +++ b/src/p2pool.cpp @@ -1464,10 +1464,6 @@ void p2pool::download_block_headers4(uint64_t start_height, uint64_t current_hei // Pre-fetch recent mainchain blocks to populate cache before sidechain sync prefetch_mainchain_blocks(current_height); - // Retry verification of any unverified sidechain blocks now that mainchain data is available - // This catches up the sidechain immediately instead of waiting for the next ZMQ notification - m_sideChain->retry_unverified_blocks(); - api_update_network_stats(); get_miner_data();