Monero
cryptonote_protocol_defs.h
Go to the documentation of this file.
1 // Copyright (c) 2014-2020, The Monero Project
2 //
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without modification, are
6 // permitted provided that the following conditions are met:
7 //
8 // 1. Redistributions of source code must retain the above copyright notice, this list of
9 // conditions and the following disclaimer.
10 //
11 // 2. Redistributions in binary form must reproduce the above copyright notice, this list
12 // of conditions and the following disclaimer in the documentation and/or other
13 // materials provided with the distribution.
14 //
15 // 3. Neither the name of the copyright holder nor the names of its contributors may be
16 // used to endorse or promote products derived from this software without specific
17 // prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22 // THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
27 // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 //
29 // Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
30 
31 #pragma once
32 
33 #include <list>
34 #include "serialization/keyvalue_serialization.h"
37 
38 namespace cryptonote
39 {
40 
41 
42 #define BC_COMMANDS_POOL_BASE 2000
43 
44  /************************************************************************/
45  /* P2P connection info, serializable to json */
46  /************************************************************************/
48  {
49  bool incoming;
50  bool localhost;
51  bool local_ip;
52  bool ssl;
53 
54  std::string address;
55  std::string host;
56  std::string ip;
57  std::string port;
58  uint16_t rpc_port;
60 
61  std::string peer_id;
62 
63  uint64_t recv_count;
64  uint64_t recv_idle_time;
65 
66  uint64_t send_count;
67  uint64_t send_idle_time;
68 
69  std::string state;
70 
71  uint64_t live_time;
72 
73  uint64_t avg_download;
74  uint64_t current_download;
75 
76  uint64_t avg_upload;
77  uint64_t current_upload;
78 
79  uint32_t support_flags;
80 
81  std::string connection_id;
82 
83  uint64_t height;
84 
85  uint32_t pruning_seed;
86 
87  uint8_t address_type;
88 
89  BEGIN_KV_SERIALIZE_MAP()
90  KV_SERIALIZE(incoming)
91  KV_SERIALIZE(localhost)
92  KV_SERIALIZE(local_ip)
93  KV_SERIALIZE(address)
94  KV_SERIALIZE(host)
95  KV_SERIALIZE(ip)
96  KV_SERIALIZE(port)
97  KV_SERIALIZE(rpc_port)
98  KV_SERIALIZE(rpc_credits_per_hash)
99  KV_SERIALIZE(peer_id)
100  KV_SERIALIZE(recv_count)
101  KV_SERIALIZE(recv_idle_time)
102  KV_SERIALIZE(send_count)
103  KV_SERIALIZE(send_idle_time)
104  KV_SERIALIZE(state)
105  KV_SERIALIZE(live_time)
106  KV_SERIALIZE(avg_download)
107  KV_SERIALIZE(current_download)
108  KV_SERIALIZE(avg_upload)
109  KV_SERIALIZE(current_upload)
110  KV_SERIALIZE(support_flags)
111  KV_SERIALIZE(connection_id)
112  KV_SERIALIZE(height)
113  KV_SERIALIZE(pruning_seed)
114  KV_SERIALIZE(address_type)
115  END_KV_SERIALIZE_MAP()
116  };
117 
118  /************************************************************************/
119  /* */
120  /************************************************************************/
122  {
125  BEGIN_KV_SERIALIZE_MAP()
126  KV_SERIALIZE(blob)
127  KV_SERIALIZE_VAL_POD_AS_BLOB(prunable_hash)
128  END_KV_SERIALIZE_MAP()
129 
130  tx_blob_entry(const blobdata &bd = {}, const crypto::hash &h = crypto::null_hash): blob(bd), prunable_hash(h) {}
131  };
133  {
134  bool pruned;
136  uint64_t block_weight;
137  std::vector<tx_blob_entry> txs;
138  BEGIN_KV_SERIALIZE_MAP()
139  KV_SERIALIZE_OPT(pruned, false)
140  KV_SERIALIZE(block)
141  KV_SERIALIZE_OPT(block_weight, (uint64_t)0)
142  if (this_ref.pruned)
143  {
144  KV_SERIALIZE(txs)
145  }
146  else
147  {
148  std::vector<blobdata> txs;
149  if (is_store)
150  {
151  txs.reserve(this_ref.txs.size());
152  for (const auto &e: this_ref.txs) txs.push_back(e.blob);
153  }
154  epee::serialization::selector<is_store>::serialize(txs, stg, hparent_section, "txs");
155  if (!is_store)
156  {
157  block_complete_entry &self = const_cast<block_complete_entry&>(this_ref);
158  self.txs.clear();
159  self.txs.reserve(txs.size());
160  for (auto &e: txs) self.txs.push_back({std::move(e), crypto::null_hash});
161  }
162  }
163  END_KV_SERIALIZE_MAP()
164 
165  block_complete_entry(): pruned(false), block_weight(0) {}
166  };
167 
168 
169  /************************************************************************/
170  /* */
171  /************************************************************************/
173  {
174  const static int ID = BC_COMMANDS_POOL_BASE + 1;
175 
176  struct request_t
177  {
180 
181  BEGIN_KV_SERIALIZE_MAP()
182  KV_SERIALIZE(b)
183  KV_SERIALIZE(current_blockchain_height)
184  END_KV_SERIALIZE_MAP()
185  };
186  typedef epee::misc_utils::struct_init<request_t> request;
187  };
188 
189  /************************************************************************/
190  /* */
191  /************************************************************************/
193  {
194  const static int ID = BC_COMMANDS_POOL_BASE + 2;
195 
196  struct request_t
197  {
198  std::vector<blobdata> txs;
199  std::string _; // padding
200  bool dandelionpp_fluff; //zero initialization defaults to stem mode
201 
202  BEGIN_KV_SERIALIZE_MAP()
203  KV_SERIALIZE(txs)
204  KV_SERIALIZE(_)
205  KV_SERIALIZE_OPT(dandelionpp_fluff, true) // backwards compatible mode is fluff
206  END_KV_SERIALIZE_MAP()
207  };
208  typedef epee::misc_utils::struct_init<request_t> request;
209  };
210  /************************************************************************/
211  /* */
212  /************************************************************************/
214  {
215  const static int ID = BC_COMMANDS_POOL_BASE + 3;
216 
217  struct request_t
218  {
219  std::vector<crypto::hash> blocks;
220  bool prune;
221 
222  BEGIN_KV_SERIALIZE_MAP()
223  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(blocks)
224  KV_SERIALIZE_OPT(prune, false)
225  END_KV_SERIALIZE_MAP()
226  };
227  typedef epee::misc_utils::struct_init<request_t> request;
228  };
229 
231  {
232  const static int ID = BC_COMMANDS_POOL_BASE + 4;
233 
234  struct request_t
235  {
236  std::vector<block_complete_entry> blocks;
237  std::vector<crypto::hash> missed_ids;
239 
240  BEGIN_KV_SERIALIZE_MAP()
241  KV_SERIALIZE(blocks)
242  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(missed_ids)
243  KV_SERIALIZE(current_blockchain_height)
244  END_KV_SERIALIZE_MAP()
245  };
246  typedef epee::misc_utils::struct_init<request_t> request;
247  };
248 
249 
251  {
252  uint64_t current_height;
256  uint8_t top_version;
257  uint32_t pruning_seed;
258 
259  BEGIN_KV_SERIALIZE_MAP()
260  KV_SERIALIZE(current_height)
261  KV_SERIALIZE(cumulative_difficulty)
262  if (is_store)
263  KV_SERIALIZE(cumulative_difficulty_top64)
264  else
265  KV_SERIALIZE_OPT(cumulative_difficulty_top64, (uint64_t)0)
266  KV_SERIALIZE_VAL_POD_AS_BLOB(top_id)
267  KV_SERIALIZE_OPT(top_version, (uint8_t)0)
268  KV_SERIALIZE_OPT(pruning_seed, (uint32_t)0)
269  END_KV_SERIALIZE_MAP()
270  };
271 
273  {
274  const static int ID = BC_COMMANDS_POOL_BASE + 6;
275 
276  struct request_t
277  {
278  std::list<crypto::hash> block_ids; /*IDs of the first 10 blocks are sequential, next goes with pow(2,n) offset, like 2, 4, 8, 16, 32, 64 and so on, and the last one is always genesis block */
279  bool prune;
280 
281  BEGIN_KV_SERIALIZE_MAP()
282  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(block_ids)
283  KV_SERIALIZE_OPT(prune, false)
284  END_KV_SERIALIZE_MAP()
285  };
286  typedef epee::misc_utils::struct_init<request_t> request;
287  };
288 
290  {
291  const static int ID = BC_COMMANDS_POOL_BASE + 7;
292 
293  struct request_t
294  {
295  uint64_t start_height;
296  uint64_t total_height;
299  std::vector<crypto::hash> m_block_ids;
300  std::vector<uint64_t> m_block_weights;
301 
302  BEGIN_KV_SERIALIZE_MAP()
303  KV_SERIALIZE(start_height)
304  KV_SERIALIZE(total_height)
305  KV_SERIALIZE(cumulative_difficulty)
306  if (is_store)
307  KV_SERIALIZE(cumulative_difficulty_top64)
308  else
309  KV_SERIALIZE_OPT(cumulative_difficulty_top64, (uint64_t)0)
310  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(m_block_ids)
311  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(m_block_weights)
312  END_KV_SERIALIZE_MAP()
313  };
314  typedef epee::misc_utils::struct_init<request_t> request;
315  };
316 
317  /************************************************************************/
318  /* */
319  /************************************************************************/
321  {
322  const static int ID = BC_COMMANDS_POOL_BASE + 8;
323 
324  struct request_t
325  {
328 
329  BEGIN_KV_SERIALIZE_MAP()
330  KV_SERIALIZE(b)
331  KV_SERIALIZE(current_blockchain_height)
332  END_KV_SERIALIZE_MAP()
333  };
334  typedef epee::misc_utils::struct_init<request_t> request;
335  };
336 
337  /************************************************************************/
338  /* */
339  /************************************************************************/
341  {
342  const static int ID = BC_COMMANDS_POOL_BASE + 9;
343 
344  struct request_t
345  {
348  std::vector<uint64_t> missing_tx_indices;
349 
350  BEGIN_KV_SERIALIZE_MAP()
351  KV_SERIALIZE_VAL_POD_AS_BLOB(block_hash)
352  KV_SERIALIZE(current_blockchain_height)
353  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(missing_tx_indices)
354  END_KV_SERIALIZE_MAP()
355  };
356  typedef epee::misc_utils::struct_init<request_t> request;
357  };
358 
359  /************************************************************************/
360  /* */
361  /************************************************************************/
363  {
364  const static int ID = BC_COMMANDS_POOL_BASE + 10;
365 
366  struct request_t
367  {
368  std::vector<crypto::hash> hashes;
369 
370  BEGIN_KV_SERIALIZE_MAP()
371  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(hashes)
372  END_KV_SERIALIZE_MAP()
373  };
374  typedef epee::misc_utils::struct_init<request_t> request;
375  };
376 
377 }
cryptonote::NOTIFY_GET_TXPOOL_COMPLEMENT::request_t
Definition: cryptonote_protocol_defs.h:367
cryptonote::NOTIFY_NEW_TRANSACTIONS::request_t::dandelionpp_fluff
bool dandelionpp_fluff
Definition: cryptonote_protocol_defs.h:200
cryptonote_basic.h
cryptonote::NOTIFY_NEW_BLOCK::request_t::current_blockchain_height
uint64_t current_blockchain_height
Definition: cryptonote_protocol_defs.h:179
cryptonote::connection_info::rpc_port
uint16_t rpc_port
Definition: cryptonote_protocol_defs.h:58
cryptonote::tx_blob_entry
Definition: cryptonote_protocol_defs.h:122
cryptonote::NOTIFY_REQUEST_CHAIN::request_t
Definition: cryptonote_protocol_defs.h:277
cryptonote::connection_info::avg_download
uint64_t avg_download
Definition: cryptonote_protocol_defs.h:73
cryptonote::connection_info::recv_count
uint64_t recv_count
Definition: cryptonote_protocol_defs.h:63
cryptonote::NOTIFY_NEW_TRANSACTIONS
Definition: cryptonote_protocol_defs.h:193
cryptonote::block_complete_entry
Definition: cryptonote_protocol_defs.h:133
cryptonote::NOTIFY_REQUEST_GET_OBJECTS::request
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:227
cryptonote::NOTIFY_REQUEST_FLUFFY_MISSING_TX::request_t::block_hash
crypto::hash block_hash
Definition: cryptonote_protocol_defs.h:346
cryptonote::connection_info::incoming
bool incoming
Definition: cryptonote_protocol_defs.h:49
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request_t::total_height
uint64_t total_height
Definition: cryptonote_protocol_defs.h:296
cryptonote::NOTIFY_REQUEST_CHAIN::request_t::prune
bool prune
Definition: cryptonote_protocol_defs.h:279
cryptonote::connection_info::pruning_seed
uint32_t pruning_seed
Definition: cryptonote_protocol_defs.h:85
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request_t::m_block_weights
std::vector< uint64_t > m_block_weights
Definition: cryptonote_protocol_defs.h:300
cryptonote::NOTIFY_GET_TXPOOL_COMPLEMENT
Definition: cryptonote_protocol_defs.h:363
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY
Definition: cryptonote_protocol_defs.h:290
cryptonote::NOTIFY_REQUEST_FLUFFY_MISSING_TX::request_t::missing_tx_indices
std::vector< uint64_t > missing_tx_indices
Definition: cryptonote_protocol_defs.h:348
cryptonote::NOTIFY_NEW_BLOCK
Definition: cryptonote_protocol_defs.h:173
cryptonote::connection_info
Definition: cryptonote_protocol_defs.h:48
cryptonote::NOTIFY_NEW_FLUFFY_BLOCK::request_t::current_blockchain_height
uint64_t current_blockchain_height
Definition: cryptonote_protocol_defs.h:327
cryptonote::CORE_SYNC_DATA::top_version
uint8_t top_version
Definition: cryptonote_protocol_defs.h:256
cryptonote::connection_info::state
std::string state
Definition: cryptonote_protocol_defs.h:69
cryptonote::connection_info::address
std::string address
Definition: cryptonote_protocol_defs.h:54
cryptonote::connection_info::peer_id
std::string peer_id
Definition: cryptonote_protocol_defs.h:61
cryptonote::connection_info::recv_idle_time
uint64_t recv_idle_time
Definition: cryptonote_protocol_defs.h:64
cryptonote::NOTIFY_NEW_FLUFFY_BLOCK
Definition: cryptonote_protocol_defs.h:321
build_protob.const
const
Definition: build_protob.py:9
cryptonote::NOTIFY_REQUEST_GET_OBJECTS::request_t::prune
bool prune
Definition: cryptonote_protocol_defs.h:220
cryptonote::connection_info::rpc_credits_per_hash
uint32_t rpc_credits_per_hash
Definition: cryptonote_protocol_defs.h:59
if
if(APPLE) if(DEPENDS) list(APPEND EXTRA_LIBRARIES "-framework Foundation -framework ApplicationServices -framework AppKit -framework IOKit") else() find_library(IOKIT_LIBRARY IOKit) mark_as_advanced(IOKIT_LIBRARY) list(APPEND EXTRA_LIBRARIES $
Definition: CMakeLists.txt:29
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request_t::start_height
uint64_t start_height
Definition: cryptonote_protocol_defs.h:295
base.b
int b
Definition: base.py:1
cryptonote::block_complete_entry::block
blobdata block
Definition: cryptonote_protocol_defs.h:135
cryptonote::NOTIFY_RESPONSE_GET_OBJECTS
Definition: cryptonote_protocol_defs.h:231
cryptonote::CORE_SYNC_DATA::top_id
crypto::hash top_id
Definition: cryptonote_protocol_defs.h:255
cryptonote::NOTIFY_REQUEST_GET_OBJECTS::request_t
Definition: cryptonote_protocol_defs.h:218
cryptonote::CORE_SYNC_DATA::cumulative_difficulty
uint64_t cumulative_difficulty
Definition: cryptonote_protocol_defs.h:253
cryptonote::tx_blob_entry::prunable_hash
crypto::hash prunable_hash
Definition: cryptonote_protocol_defs.h:124
cryptonote::NOTIFY_RESPONSE_GET_OBJECTS::request_t
Definition: cryptonote_protocol_defs.h:235
blocks
Definition: blocks.cpp:13
cryptonote::NOTIFY_NEW_TRANSACTIONS::request_t
Definition: cryptonote_protocol_defs.h:197
cryptonote::connection_info::host
std::string host
Definition: cryptonote_protocol_defs.h:55
cryptonote::block
Definition: cryptonote_basic.h:464
cryptonote::NOTIFY_REQUEST_FLUFFY_MISSING_TX::request_t::current_blockchain_height
uint64_t current_blockchain_height
Definition: cryptonote_protocol_defs.h:347
cryptonote::CORE_SYNC_DATA::pruning_seed
uint32_t pruning_seed
Definition: cryptonote_protocol_defs.h:257
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request_t::m_block_ids
std::vector< crypto::hash > m_block_ids
Definition: cryptonote_protocol_defs.h:299
cryptonote::connection_info::port
std::string port
Definition: cryptonote_protocol_defs.h:57
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:314
cryptonote::NOTIFY_REQUEST_GET_OBJECTS
Definition: cryptonote_protocol_defs.h:214
cryptonote
Holds cryptonote related classes and helpers.
Definition: blockchain_db.cpp:45
boost::serialization::serialize
void serialize(Archive &a, std::unordered_map< h_key, hval > &x, const boost::serialization::version_type ver)
Definition: unordered_containers_boost_serialization.h:126
cryptonote::block_complete_entry::txs
std::vector< tx_blob_entry > txs
Definition: cryptonote_protocol_defs.h:137
cryptonote::NOTIFY_GET_TXPOOL_COMPLEMENT::request_t::hashes
std::vector< crypto::hash > hashes
Definition: cryptonote_protocol_defs.h:368
cryptonote::NOTIFY_REQUEST_FLUFFY_MISSING_TX::request
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:356
cryptonote::connection_info::support_flags
uint32_t support_flags
Definition: cryptonote_protocol_defs.h:79
blobdatatype.h
false
#define false
Definition: stdbool.h:37
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request_t::cumulative_difficulty_top64
uint64_t cumulative_difficulty_top64
Definition: cryptonote_protocol_defs.h:298
cryptonote::CORE_SYNC_DATA::current_height
uint64_t current_height
Definition: cryptonote_protocol_defs.h:252
cryptonote::NOTIFY_REQUEST_FLUFFY_MISSING_TX::request_t
Definition: cryptonote_protocol_defs.h:345
crypto::null_hash
constexpr static crypto::hash null_hash
Definition: hash.h:92
cryptonote::NOTIFY_RESPONSE_GET_OBJECTS::request_t::missed_ids
std::vector< crypto::hash > missed_ids
Definition: cryptonote_protocol_defs.h:237
cryptonote::connection_info::current_upload
uint64_t current_upload
Definition: cryptonote_protocol_defs.h:77
cryptonote::CORE_SYNC_DATA
Definition: cryptonote_protocol_defs.h:251
cryptonote::NOTIFY_GET_TXPOOL_COMPLEMENT::request
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:374
cryptonote::CORE_SYNC_DATA::cumulative_difficulty_top64
uint64_t cumulative_difficulty_top64
Definition: cryptonote_protocol_defs.h:254
cryptonote::block_complete_entry::pruned
bool pruned
Definition: cryptonote_protocol_defs.h:134
cryptonote::connection_info::height
uint64_t height
Definition: cryptonote_protocol_defs.h:83
cryptonote::blobdata
std::string blobdata
Definition: blobdatatype.h:39
cryptonote::NOTIFY_NEW_TRANSACTIONS::request_t::txs
std::vector< blobdata > txs
Definition: cryptonote_protocol_defs.h:198
cryptonote::tx_blob_entry::blob
blobdata blob
Definition: cryptonote_protocol_defs.h:123
cryptonote::NOTIFY_NEW_BLOCK::request_t::b
block_complete_entry b
Definition: cryptonote_protocol_defs.h:178
cryptonote::NOTIFY_RESPONSE_GET_OBJECTS::request_t::blocks
std::vector< block_complete_entry > blocks
Definition: cryptonote_protocol_defs.h:236
cryptonote::connection_info::address_type
uint8_t address_type
Definition: cryptonote_protocol_defs.h:87
cryptonote::connection_info::avg_upload
uint64_t avg_upload
Definition: cryptonote_protocol_defs.h:76
cryptonote::NOTIFY_REQUEST_CHAIN::request
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:286
state
Definition: blake256.h:36
cryptonote::connection_info::localhost
bool localhost
Definition: cryptonote_protocol_defs.h:50
cryptonote::NOTIFY_NEW_BLOCK::request
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:186
cryptonote::connection_info::local_ip
bool local_ip
Definition: cryptonote_protocol_defs.h:51
cryptonote::connection_info::send_count
uint64_t send_count
Definition: cryptonote_protocol_defs.h:66
prune
static void prune(MDB_env *env0, MDB_env *env1)
Definition: blockchain_prune.cpp:246
cryptonote::NOTIFY_REQUEST_CHAIN::request_t::block_ids
std::list< crypto::hash > block_ids
Definition: cryptonote_protocol_defs.h:278
cryptonote::connection_info::current_download
uint64_t current_download
Definition: cryptonote_protocol_defs.h:74
cryptonote::NOTIFY_NEW_FLUFFY_BLOCK::request_t
Definition: cryptonote_protocol_defs.h:325
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request_t::cumulative_difficulty
uint64_t cumulative_difficulty
Definition: cryptonote_protocol_defs.h:297
cryptonote::NOTIFY_REQUEST_FLUFFY_MISSING_TX
Definition: cryptonote_protocol_defs.h:341
cryptonote::NOTIFY_REQUEST_CHAIN
Definition: cryptonote_protocol_defs.h:273
cryptonote::NOTIFY_NEW_TRANSACTIONS::request_t::_
std::string _
Definition: cryptonote_protocol_defs.h:199
cryptonote::connection_info::live_time
uint64_t live_time
Definition: cryptonote_protocol_defs.h:71
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request_t
Definition: cryptonote_protocol_defs.h:294
cryptonote::NOTIFY_RESPONSE_GET_OBJECTS::request
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:246
cryptonote::NOTIFY_NEW_BLOCK::request_t
Definition: cryptonote_protocol_defs.h:177
true
#define true
Definition: stdbool.h:36
cryptonote::connection_info::ip
std::string ip
Definition: cryptonote_protocol_defs.h:56
cryptonote::connection_info::ssl
bool ssl
Definition: cryptonote_protocol_defs.h:52
cryptonote::block_complete_entry::block_weight
uint64_t block_weight
Definition: cryptonote_protocol_defs.h:136
cryptonote::NOTIFY_NEW_TRANSACTIONS::request
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:208
cryptonote::connection_info::connection_id
std::string connection_id
Definition: cryptonote_protocol_defs.h:81
cryptonote::connection_info::send_idle_time
uint64_t send_idle_time
Definition: cryptonote_protocol_defs.h:67
epee
Definition: cryptonote_format_utils.h:44
BC_COMMANDS_POOL_BASE
#define BC_COMMANDS_POOL_BASE
Definition: cryptonote_protocol_defs.h:42
cryptonote::NOTIFY_REQUEST_GET_OBJECTS::request_t::blocks
std::vector< crypto::hash > blocks
Definition: cryptonote_protocol_defs.h:219
cryptonote::NOTIFY_NEW_FLUFFY_BLOCK::request
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:334
cryptonote::NOTIFY_NEW_FLUFFY_BLOCK::request_t::b
block_complete_entry b
Definition: cryptonote_protocol_defs.h:326
cryptonote::NOTIFY_RESPONSE_GET_OBJECTS::request_t::current_blockchain_height
uint64_t current_blockchain_height
Definition: cryptonote_protocol_defs.h:238
crypto::hash
POD_CLASS hash
Definition: hash.h:48