From 13fbb3f8897da584710fdefc9d9af523a37bec41 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Thu, 27 Aug 2020 12:39:45 -0500 Subject: [PATCH] Improve logging in DataMessageHandler (#1922) * Improve logging in DataMessageHandler * Make hashes in logs big endian * One more big endian conversion i forgot --- .../org/bitcoins/core/p2p/NetworkPayload.scala | 18 ++++++++++++++++-- .../main/scala/org/bitcoins/node/Node.scala | 3 ++- .../networking/peer/DataMessageHandler.scala | 9 ++++++++- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/core/src/main/scala/org/bitcoins/core/p2p/NetworkPayload.scala b/core/src/main/scala/org/bitcoins/core/p2p/NetworkPayload.scala index 638ba0afaf..d2c8f11716 100644 --- a/core/src/main/scala/org/bitcoins/core/p2p/NetworkPayload.scala +++ b/core/src/main/scala/org/bitcoins/core/p2p/NetworkPayload.scala @@ -1009,6 +1009,20 @@ case class CompactFilterHeadersMessage( acc :+ acc.last.nextHeader(nextFilterHash) } } + + override def toString: String = { + val hashesString = { + if (filterHashes.isEmpty) { + "empty" + } else { + s"${filterHashes.head.flip.hex}...${filterHashes.last.flip.hex}" + } + } + s"CompactFilterHeadersMessage(filterType=${filterType}, " + + s"previousFilterHeader=${previousFilterHeader.flip.hex}, " + + s"stopHash=${stopHash.flip.hex} " + + s"filterHeaders=${hashesString})" + } } object CompactFilterHeadersMessage @@ -1065,10 +1079,10 @@ case class CompactFilterCheckPointMessage( if (filterHeaders.isEmpty) { "empty" } else { - s"${filterHeaders.head}...${filterHeaders.last}" + s"${filterHeaders.head.flip.hex}...${filterHeaders.last.flip.hex}" } } - s"CompactFilterCheckPointMessage(filterType=${filterType}, stopHash=${stopHash}, filterHeaders=${headersString})" + s"CompactFilterCheckPointMessage(filterType=${filterType}, stopHash=${stopHash.flip.hex}, filterHeaders=${headersString})" } } diff --git a/node/src/main/scala/org/bitcoins/node/Node.scala b/node/src/main/scala/org/bitcoins/node/Node.scala index 5b8b5124d1..4a09894024 100644 --- a/node/src/main/scala/org/bitcoins/node/Node.scala +++ b/node/src/main/scala/org/bitcoins/node/Node.scala @@ -120,7 +120,8 @@ trait Node extends NodeApi with ChainQueryApi with P2PLogger { node <- { val isInitializedF = for { _ <- peerMsgSenderF.map(_.connect()) - _ <- AsyncUtil.retryUntilSatisfiedF(() => isInitialized) + _ <- AsyncUtil.retryUntilSatisfiedF(() => isInitialized, + duration = 250.millis) } yield () isInitializedF.failed.foreach(err => 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 cfa0717249..fdb1347b25 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 @@ -36,7 +36,7 @@ case class DataMessageHandler( payload: DataPayload, peerMsgSender: PeerMessageSender): Future[DataMessageHandler] = { - payload match { + val resultF = payload match { case checkpoint: CompactFilterCheckPointMessage => logger.debug( s"Got ${checkpoint.filterHeaders.size} checkpoints ${checkpoint}") @@ -284,6 +284,13 @@ case class DataMessageHandler( case invMsg: InventoryMessage => handleInventoryMsg(invMsg = invMsg, peerMsgSender = peerMsgSender) } + + resultF.failed.foreach { + case err => + logger.error(s"Failed to handle data payload=${payload}", err) + } + + resultF } private def sendNextGetCompactFilterHeadersCommand(