From f59015bc3941d118398f6724adc72973bdec727a Mon Sep 17 00:00:00 2001 From: Ben Carman Date: Wed, 26 Aug 2020 12:56:19 -0500 Subject: [PATCH] Send get filters message if we haven't cached any yet (#1900) --- .../node/networking/peer/DataMessageHandler.scala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/node/src/main/scala/org/bitcoins/node/networking/peer/DataMessageHandler.scala b/node/src/main/scala/org/bitcoins/node/networking/peer/DataMessageHandler.scala index 90ce6786d6..0d854703b2 100644 --- a/node/src/main/scala/org/bitcoins/node/networking/peer/DataMessageHandler.scala +++ b/node/src/main/scala/org/bitcoins/node/networking/peer/DataMessageHandler.scala @@ -209,7 +209,13 @@ case class DataMessageHandler( "which is less than max. This means we are synced,", "not requesting more.") .mkString(" ")) - if (appConfig.nodeType == NodeType.NeutrinoNode && !syncing) + // If we are in neutrino mode, we might need to start fetching filters and their headers + // if we are syncing we should do this, however, sometimes syncing isn't a good enough check, + // so we also check if our cached filter heights have been set as well, if they haven't then + // we probably need to sync filters + if ( + appConfig.nodeType == NodeType.NeutrinoNode && (!syncing || filterHeaderHeightOpt.isEmpty || filterHeightOpt.isEmpty) + ) sendFirstGetCompactFilterHeadersCommand(peerMsgSender) else Future.successful(syncing)