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.
This commit is contained in:
moneromooo-monero 2017-01-22 11:37:55 +00:00
parent 71ac698b78
commit 4cdf0a35c9
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
3 changed files with 19 additions and 2 deletions

View File

@ -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);

View File

@ -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);

View File

@ -194,3 +194,5 @@ private:
bool m_restricted;
};
}
BOOST_CLASS_VERSION(nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<cryptonote::core> >, 1);