diff options
author | 0xb10c <0xb10c@gmail.com> | 2021-05-20 16:54:54 +0200 |
---|---|---|
committer | 0xb10c <0xb10c@gmail.com> | 2021-07-27 17:12:16 +0200 |
commit | 4224dec22baa66547303840707cf1d4f15a49b20 (patch) | |
tree | 467d8bc70b3a3d3ada1fc4a2281ff2725031f09d /src | |
parent | 469b71ae629228b2591a55831817a0e5fad89360 (diff) | |
download | bitcoin-4224dec22baa66547303840707cf1d4f15a49b20.tar.xz |
tracing: Tracepoints for in- and outbound P2P msgs
Can be used to monitor in- and outbound node traffic.
Based on ealier work by jb55.
Co-authored-by: William Casarin <jb55@jb55.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/net.cpp | 12 | ||||
-rw-r--r-- | src/net_processing.cpp | 10 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/net.cpp b/src/net.cpp index 3a1bb138ab..8ef770ede2 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -25,6 +25,7 @@ #include <util/sock.h> #include <util/strencodings.h> #include <util/thread.h> +#include <util/trace.h> #include <util/translation.h> #ifdef WIN32 @@ -3017,11 +3018,20 @@ bool CConnman::NodeFullyConnected(const CNode* pnode) void CConnman::PushMessage(CNode* pnode, CSerializedNetMsg&& msg) { size_t nMessageSize = msg.data.size(); - LogPrint(BCLog::NET, "sending %s (%d bytes) peer=%d\n", SanitizeString(msg.m_type), nMessageSize, pnode->GetId()); + LogPrint(BCLog::NET, "sending %s (%d bytes) peer=%d\n", msg.m_type, nMessageSize, pnode->GetId()); if (gArgs.GetBoolArg("-capturemessages", false)) { CaptureMessage(pnode->addr, msg.m_type, msg.data, /* incoming */ false); } + TRACE6(net, outbound_message, + pnode->GetId(), + pnode->GetAddrName().c_str(), + pnode->ConnectionTypeAsString().c_str(), + msg.m_type.c_str(), + msg.data.size(), + msg.data.data() + ); + // make sure we use the appropriate network transport format std::vector<unsigned char> serializedHeader; pnode->m_serializer->prepareForTransport(msg, serializedHeader); diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 70eac468f3..dc36b69802 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -34,6 +34,7 @@ #include <util/check.h> // For NDEBUG compile time check #include <util/strencodings.h> #include <util/system.h> +#include <util/trace.h> #include <validation.h> #include <algorithm> @@ -4052,6 +4053,15 @@ bool PeerManagerImpl::ProcessMessages(CNode* pfrom, std::atomic<bool>& interrupt } CNetMessage& msg(msgs.front()); + TRACE6(net, inbound_message, + pfrom->GetId(), + pfrom->GetAddrName().c_str(), + pfrom->ConnectionTypeAsString().c_str(), + msg.m_command.c_str(), + msg.m_recv.size(), + msg.m_recv.data() + ); + if (gArgs.GetBoolArg("-capturemessages", false)) { CaptureMessage(pfrom->addr, msg.m_command, MakeUCharSpan(msg.m_recv), /* incoming */ true); } |