diff --git a/libraries/aleth/libp2p/NodeTable.cpp b/libraries/aleth/libp2p/NodeTable.cpp index 82fba3a91b..e9b4e4cedf 100644 --- a/libraries/aleth/libp2p/NodeTable.cpp +++ b/libraries/aleth/libp2p/NodeTable.cpp @@ -79,6 +79,10 @@ bool NodeTable::addNode(Node const& _node) { auto const it = m_allNodes.find(_node.id); needToPing = (it == m_allNodes.end() || it->second->endpoint() != _node.get_endpoint() || !it->second->hasValidEndpointProof()); + if (needToPing && it != m_allNodes.end() && + it->second->lastPongReceivedTime > RLPXDatagramFace::secondsSinceEpoch() - m_requestTimeToLive.count()) { + needToPing = false; + } } if (needToPing) {