diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2017-01-22 11:37:55 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2017-01-22 11:37:55 +0000 |
commit | 4cdf0a35c94dac303fd703c05eb6685fc401a323 (patch) | |
tree | c6ef5810c3dd7cdee0899a5eef7e2a23524e9400 | |
parent | Merge pull request #1585 (diff) | |
download | monero-4cdf0a35c94dac303fd703c05eb6685fc401a323.tar.xz |
p2p: always recreate a new peer id on startup
This prevents easy fingerprinting when you change IPs, and
will be a must when kovri gets used.
-rw-r--r-- | src/p2p/net_node.h | 8 | ||||
-rw-r--r-- | src/p2p/net_node.inl | 11 | ||||
-rw-r--r-- | src/rpc/core_rpc_server.h | 2 |
3 files changed, 19 insertions, 2 deletions
diff --git a/src/p2p/net_node.h b/src/p2p/net_node.h index cc6a486d3..4eb001759 100644 --- a/src/p2p/net_node.h +++ b/src/p2p/net_node.h @@ -110,7 +110,12 @@ namespace nodetool void serialize(Archive &a, const t_version_type ver) { a & m_peerlist; - a & m_config.m_peer_id; + if (ver == 0) + { + // from v1, we do not store the peer id anymore + peerid_type peer_id; + a & peer_id; + } } // debug functions bool log_peerlist(); @@ -162,6 +167,7 @@ namespace nodetool #endif int handle_get_support_flags(int command, COMMAND_REQUEST_SUPPORT_FLAGS::request& arg, COMMAND_REQUEST_SUPPORT_FLAGS::response& rsp, p2p_connection_context& context); bool init_config(); + bool make_default_peer_id(); bool make_default_config(); bool store_config(); bool check_trust(const proof_of_trust& tr); diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl index 34a3f9363..c68dae446 100644 --- a/src/p2p/net_node.inl +++ b/src/p2p/net_node.inl @@ -173,6 +173,9 @@ namespace nodetool make_default_config(); } + // always recreate a new peer id + make_default_peer_id(); + //at this moment we have hardcoded config m_config.m_net_config.handshake_interval = P2P_DEFAULT_HANDSHAKE_INTERVAL; m_config.m_net_config.packet_max_size = P2P_DEFAULT_PACKET_MAX_SIZE; //20 MB limit @@ -212,13 +215,19 @@ namespace nodetool } //----------------------------------------------------------------------------------- template<class t_payload_net_handler> - bool node_server<t_payload_net_handler>::make_default_config() + bool node_server<t_payload_net_handler>::make_default_peer_id() { m_config.m_peer_id = crypto::rand<uint64_t>(); return true; } //----------------------------------------------------------------------------------- template<class t_payload_net_handler> + bool node_server<t_payload_net_handler>::make_default_config() + { + return make_default_peer_id(); + } + //----------------------------------------------------------------------------------- + template<class t_payload_net_handler> bool node_server<t_payload_net_handler>::block_ip(uint32_t addr, time_t seconds) { CRITICAL_REGION_LOCAL(m_blocked_ips_lock); diff --git a/src/rpc/core_rpc_server.h b/src/rpc/core_rpc_server.h index 84871e8bb..767bcc715 100644 --- a/src/rpc/core_rpc_server.h +++ b/src/rpc/core_rpc_server.h @@ -194,3 +194,5 @@ private: bool m_restricted; }; } + +BOOST_CLASS_VERSION(nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<cryptonote::core> >, 1); |