diff --git a/src/p2p/net_node.h b/src/p2p/net_node.h index f5309b1c..40598fc0 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 7e3c0213..0e43d957 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 - bool node_server::make_default_config() + bool node_server::make_default_peer_id() { m_config.m_peer_id = crypto::rand(); return true; } //----------------------------------------------------------------------------------- template + bool node_server::make_default_config() + { + return make_default_peer_id(); + } + //----------------------------------------------------------------------------------- + template bool node_server::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 84871e8b..767bcc71 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 >, 1);