Improve logging in DataMessageHandler (#1922)

* Improve logging in DataMessageHandler

* Make hashes in logs big endian

* One more big endian conversion i forgot
This commit is contained in:
Chris Stewart 2020-08-27 12:39:45 -05:00 committed by GitHub
parent 3e1c4e2d33
commit 13fbb3f889
3 changed files with 26 additions and 4 deletions

View file

@ -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})"
}
}

View file

@ -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 =>

View file

@ -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(