33 #include <boost/uuid/uuid.hpp>
34 #include <boost/serialization/version.hpp>
35 #include "serialization/keyvalue_serialization.h"
36 #include "net/net_utils_base.h"
39 #include "misc_language.h"
40 #include "string_tools.h"
41 #include "time_helper.h"
54 return epee::string_tools::pad_string(
s.str(), 16,
'0',
true);
57 #pragma pack (push, 1)
64 BEGIN_KV_SERIALIZE_MAP()
67 END_KV_SERIALIZE_MAP()
70 template<typename AddressType>
80 BEGIN_KV_SERIALIZE_MAP()
83 KV_SERIALIZE_OPT(last_seen, (int64_t)0)
84 KV_SERIALIZE_OPT(pruning_seed, (uint32_t)0)
85 KV_SERIALIZE_OPT(rpc_port, (uint16_t)0)
86 KV_SERIALIZE_OPT(rpc_credits_per_hash, (uint32_t)0)
87 END_KV_SERIALIZE_MAP()
100 template<typename AddressType>
107 BEGIN_KV_SERIALIZE_MAP()
110 KV_SERIALIZE(first_seen)
111 END_KV_SERIALIZE_MAP()
121 template<typename AddressType>
128 BEGIN_KV_SERIALIZE_MAP()
131 KV_SERIALIZE(is_income)
132 END_KV_SERIALIZE_MAP()
149 std::stringstream ss;
150 ss << std::setfill (
'0') << std::setw (8) <<
std::hex << std::noshowbase;
154 <<
" \trpc port " << (pe.rpc_port > 0 ? std::to_string(pe.rpc_port) :
"-")
155 <<
" \trpc credits per hash " << (pe.rpc_credits_per_hash > 0 ? std::to_string(pe.rpc_credits_per_hash) :
"-")
156 <<
" \tpruning seed " << pe.pruning_seed
157 <<
" \tlast_seen: " << (pe.last_seen == 0 ? std::string(
"never") : epee::misc_utils::get_time_interval_string(now_time - pe.last_seen))
166 BEGIN_KV_SERIALIZE_MAP()
167 KV_SERIALIZE(max_out_connection_count)
168 KV_SERIALIZE(max_in_connection_count)
169 KV_SERIALIZE(handshake_interval)
170 KV_SERIALIZE(packet_max_size)
171 KV_SERIALIZE(config_id)
172 END_KV_SERIALIZE_MAP()
174 uint32_t max_out_connection_count;
175 uint32_t max_in_connection_count;
176 uint32_t connection_timeout;
177 uint32_t ping_connection_timeout;
178 uint32_t handshake_interval;
179 uint32_t packet_max_size;
181 uint32_t send_peerlist_sz;
192 BEGIN_KV_SERIALIZE_MAP()
193 KV_SERIALIZE_VAL_POD_AS_BLOB(network_id)
194 KV_SERIALIZE(peer_id)
195 KV_SERIALIZE(my_port)
196 KV_SERIALIZE_OPT(rpc_port, (uint16_t)(0))
197 KV_SERIALIZE_OPT(rpc_credits_per_hash, (uint32_t)0)
198 END_KV_SERIALIZE_MAP()
202 #define P2P_COMMANDS_POOL_BASE 1000
207 template<
class t_playload_type>
217 BEGIN_KV_SERIALIZE_MAP()
218 KV_SERIALIZE(node_data)
219 KV_SERIALIZE(payload_data)
220 END_KV_SERIALIZE_MAP()
230 BEGIN_KV_SERIALIZE_MAP()
231 KV_SERIALIZE(node_data)
232 KV_SERIALIZE(payload_data)
233 KV_SERIALIZE(local_peerlist_new)
234 END_KV_SERIALIZE_MAP()
243 template<class t_playload_type>
251 BEGIN_KV_SERIALIZE_MAP()
252 KV_SERIALIZE(payload_data)
253 END_KV_SERIALIZE_MAP()
262 BEGIN_KV_SERIALIZE_MAP()
263 KV_SERIALIZE(payload_data)
264 KV_SERIALIZE(local_peerlist_new)
265 END_KV_SERIALIZE_MAP()
283 #define PING_OK_RESPONSE_STATUS_TEXT "OK"
289 BEGIN_KV_SERIALIZE_MAP()
290 END_KV_SERIALIZE_MAP()
292 typedef epee::misc_utils::struct_init<request_t>
request;
299 BEGIN_KV_SERIALIZE_MAP()
301 KV_SERIALIZE(peer_id)
302 END_KV_SERIALIZE_MAP()
317 BEGIN_KV_SERIALIZE_MAP()
318 END_KV_SERIALIZE_MAP()
320 typedef epee::misc_utils::struct_init<request_t>
request;
326 BEGIN_KV_SERIALIZE_MAP()
327 KV_SERIALIZE(support_flags)
328 END_KV_SERIALIZE_MAP()
#define s(x, c)
Definition: aesb.c:47
std::string hex(difficulty_type v)
Definition: difficulty.cpp:242
Definition: cryptonote_format_utils.h:44
#define P2P_COMMANDS_POOL_BASE
Definition: p2p_protocol_defs.h:202
Simple DSL AAPI based on.
#define BEGIN_SERIALIZE()
Begins the environment of the DSL \detailed for describing how to serialize an of an archive type.
Definition: serialization.h:182
#define FIELD(f)
tags the field with the variable name and then serializes it
Definition: serialization.h:244
#define END_SERIALIZE()
self-explanatory
Definition: serialization.h:215
#define VARINT_FIELD(f)
tags and serializes the varint f
Definition: serialization.h:264
Definition: p2p_protocol_defs.h:102
int64_t first_seen
Definition: p2p_protocol_defs.h:105
AddressType adr
Definition: p2p_protocol_defs.h:103
peerid_type id
Definition: p2p_protocol_defs.h:104
Definition: p2p_protocol_defs.h:123
bool is_income
Definition: p2p_protocol_defs.h:126
AddressType adr
Definition: p2p_protocol_defs.h:124
peerid_type id
Definition: p2p_protocol_defs.h:125
Definition: p2p_protocol_defs.h:72
uint32_t pruning_seed
Definition: p2p_protocol_defs.h:76
AddressType adr
Definition: p2p_protocol_defs.h:73
uint16_t rpc_port
Definition: p2p_protocol_defs.h:77
peerid_type id
Definition: p2p_protocol_defs.h:74
int64_t last_seen
Definition: p2p_protocol_defs.h:75
uint32_t rpc_credits_per_hash
Definition: p2p_protocol_defs.h:78