From d45b344ffd46b0226449cbd46cdaff9577402cf0 Mon Sep 17 00:00:00 2001 From: Gleb Date: Mon, 21 May 2018 12:02:40 -0700 Subject: Bucket for inbound when scheduling invs to hide tx time --- src/net.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/net.h') diff --git a/src/net.h b/src/net.h index 1bcc3cbb44..e542201163 100644 --- a/src/net.h +++ b/src/net.h @@ -310,6 +310,13 @@ public: unsigned int GetReceiveFloodSize() const; void WakeMessageHandler(); + + /** Attempts to obfuscate tx time through exponentially distributed emitting. + Works assuming that a single interval is used. + Variable intervals will result in privacy decrease. + */ + int64_t PoissonNextSendInbound(int64_t now, int average_interval_seconds); + private: struct ListenSocket { SOCKET socket; @@ -434,6 +441,8 @@ private: * This takes the place of a feeler connection */ std::atomic_bool m_try_another_outbound_peer; + std::atomic m_next_send_inv_to_incoming; + friend struct CConnmanTest; }; extern std::unique_ptr g_connman; @@ -863,6 +872,6 @@ public: /** Return a timestamp in the future (in microseconds) for exponentially distributed events. */ -int64_t PoissonNextSend(int64_t nNow, int average_interval_seconds); +int64_t PoissonNextSend(int64_t now, int average_interval_seconds); #endif // BITCOIN_NET_H -- cgit v1.2.3