diff --git a/zebra-network/src/peer/connection.rs b/zebra-network/src/peer/connection.rs index 014050e4d..24322335a 100644 --- a/zebra-network/src/peer/connection.rs +++ b/zebra-network/src/peer/connection.rs @@ -561,8 +561,9 @@ where // This function has its own span, because we're creating a new work // context (namely, the work of processing the inbound msg as a request) - #[instrument(skip(self))] + #[instrument(name = "msg_as_req", skip(self, msg), fields(%msg))] async fn handle_message_as_request(&mut self, msg: Message) { + trace!(?msg); let req = match msg { Message::Ping(nonce) => { trace!(?nonce, "responding to heartbeat"); diff --git a/zebra-network/src/protocol/external/message.rs b/zebra-network/src/protocol/external/message.rs index fdbd5e897..1f6f2aa93 100644 --- a/zebra-network/src/protocol/external/message.rs +++ b/zebra-network/src/protocol/external/message.rs @@ -7,7 +7,6 @@ use chrono::{DateTime, Utc}; use zebra_chain::{ block::{self, Block}, - fmt::{DisplayToDebug, SummaryDebug}, transaction::Transaction, }; @@ -31,7 +30,7 @@ use crate::meta_addr::MetaAddr; /// during serialization). /// /// [btc_wiki_protocol]: https://en.bitcoin.it/wiki/Protocol_documentation -#[derive(Clone, Eq, PartialEq)] +#[derive(Clone, Eq, PartialEq, Debug)] pub enum Message { /// A `version` message. /// @@ -309,92 +308,28 @@ pub enum RejectReason { Other = 0x50, } -/// Summarise `Vec`s when debugging messages -impl fmt::Debug for Message { +impl fmt::Display for Message { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { - Message::Version { - version, - services, - timestamp, - address_recv, - address_from, - nonce, - user_agent, - start_height, - relay, - } => f - .debug_struct("Version") - .field("version", version) - .field("services", services) - .field("timestamp", timestamp) - .field("address_recv", address_recv) - .field("address_from", address_from) - .field("nonce", nonce) - .field("user_agent", user_agent) - .field("start_height", start_height) - .field("relay", relay) - .finish(), - Message::Verack => f.debug_tuple("Verack").finish(), - Message::Ping(nonce) => f.debug_tuple("Ping").field(nonce).finish(), - Message::Pong(nonce) => f.debug_tuple("Pong").field(nonce).finish(), - Message::Reject { - message, - ccode, - reason, - data, - } => f - .debug_struct("Reject") - .field("message", message) - .field("ccode", ccode) - .field("reason", reason) - .field("data", data) - .finish(), - Message::GetAddr => f.debug_tuple("GetAddr").finish(), - Message::Addr(addr) => f.debug_tuple("Addr").field(&SummaryDebug(addr)).finish(), - Message::GetBlocks { known_blocks, stop } => f - .debug_struct("GetBlocks") - .field("known_blocks", &SummaryDebug(known_blocks)) - .field("stop", stop) - .finish(), - Message::Inv(inv) => f.debug_tuple("Inv").field(&SummaryDebug(inv)).finish(), - Message::GetHeaders { known_blocks, stop } => f - .debug_struct("GetHeaders") - .field("known_blocks", &SummaryDebug(known_blocks)) - .field("stop", stop) - .finish(), - Message::Headers(headers) => f - .debug_tuple("Headers") - .field(&SummaryDebug(headers)) - .finish(), - Message::GetData(data) => f.debug_tuple("GetData").field(&SummaryDebug(data)).finish(), - Message::Block(block) => f - .debug_tuple("Block") - .field(&DisplayToDebug(block)) - .finish(), - Message::Tx(tx) => f.debug_tuple("Tx").field(&tx).finish(), - Message::NotFound(not_found) => f - .debug_tuple("NotFound") - .field(&SummaryDebug(not_found)) - .finish(), - Message::Mempool => f.debug_tuple("Mempool").finish(), - Message::FilterLoad { - filter, - hash_functions_count, - tweak, - flags, - } => f - .debug_struct("FilterLoad") - .field("filter", filter) - .field("hash_functions_count", hash_functions_count) - .field("tweak", tweak) - .field("flags", flags) - .finish(), - Message::FilterAdd { data } => f - .debug_struct("FilterAdd") - .field("data", &SummaryDebug(data)) - .finish(), - Message::FilterClear => f.debug_tuple("FilterClear").finish(), - } + f.write_str(match self { + Message::Version { .. } => "version", + Message::Verack => "verack", + Message::Ping(_) => "ping", + Message::Pong(_) => "pong", + Message::Reject { .. } => "reject", + Message::GetAddr => "getaddr", + Message::Addr(_) => "addr", + Message::GetBlocks { .. } => "getblocks", + Message::Inv(_) => "inv", + Message::GetHeaders { .. } => "getheaders", + Message::Headers(_) => "headers", + Message::GetData(_) => "getdata", + Message::Block(_) => "block", + Message::Tx(_) => "tx", + Message::NotFound(_) => "notfound", + Message::Mempool => "mempool", + Message::FilterLoad { .. } => "filterload", + Message::FilterAdd { .. } => "filteradd", + Message::FilterClear => "filterclear", + }) } }