BitShares-Core  7.0.2
BitShares blockchain node software and command-line wallet software
core_messages.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Cryptonomex, Inc., and contributors.
3  *
4  * The MIT License
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in
14  * all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22  * THE SOFTWARE.
23  */
24 #pragma once
25 
26 #include <graphene/net/config.hpp>
27 
28 #include <fc/crypto/ripemd160.hpp>
29 #include <fc/crypto/elliptic.hpp>
30 #include <fc/crypto/sha256.hpp>
31 #include <fc/network/ip.hpp>
32 #include <fc/time.hpp>
33 #include <fc/variant_object.hpp>
35 #include <fc/io/enum_type.hpp>
36 
38 
39 #include <vector>
40 
41 namespace graphene { namespace net {
46 
49  struct item_id
50  {
51  uint32_t item_type;
53 
54  item_id() {}
55  item_id(uint32_t type, const item_hash_t& hash) :
56  item_type(type),
57  item_hash(hash)
58  {}
59  bool operator==(const item_id& other) const
60  {
61  return item_type == other.item_type &&
62  item_hash == other.item_hash;
63  }
64  };
65 
67  {
89  };
90 
92 
93  struct trx_message
94  {
96 
98  trx_message() = default;
100  trx(signed_trx)
101  {}
102  };
103 
105  {
107 
110  :block(blk),block_id(blk.id()){}
111 
114 
115  };
116 
118  {
120 
121  uint32_t item_type;
122  std::vector<item_hash_t> item_hashes_available;
123 
125  item_ids_inventory_message(uint32_t item_type, const std::vector<item_hash_t>& item_hashes_available) :
128  {}
129  };
130 
132  {
134 
136  uint32_t item_type;
137  std::vector<item_hash_t> item_hashes_available;
138 
141  uint32_t item_type,
142  const std::vector<item_hash_t>& item_hashes_available) :
146  {}
147  };
148 
150  {
152 
153  uint32_t item_type;
154  std::vector<item_hash_t> blockchain_synopsis;
155 
157  fetch_blockchain_item_ids_message(uint32_t item_type, const std::vector<item_hash_t>& blockchain_synopsis) :
160  {}
161  };
162 
164  {
166 
167  uint32_t item_type;
168  std::vector<item_hash_t> items_to_fetch;
169 
171  fetch_items_message(uint32_t item_type, const std::vector<item_hash_t>& items_to_fetch) :
174  {}
175  };
176 
178  {
180 
182 
186  {}
187  };
188 
190  {
192 
193  std::string user_agent;
196  uint16_t inbound_port;
197  uint16_t outbound_port;
202 
204  hello_message(const std::string& user_agent,
205  uint32_t core_protocol_version,
207  uint16_t inbound_port,
208  uint16_t outbound_port,
209  const node_id_t& node_public_key,
211  const fc::sha256& chain_id_arg,
212  const fc::variant_object& user_data ) :
220  chain_id(chain_id_arg),
222  {}
223  };
224 
226  {
228 
230  };
231 
237  blocked,
239  client_too_old };
240 
242  {
244 
245  std::string user_agent;
249  std::string reason_string;
250 
254  const std::string& reason_string) :
260  {}
261  };
262 
264  {
266 
268  };
269 
272 
274  {
281 
286  const node_id_t& node_id,
291  latency(latency),
292  node_id(node_id),
295  {}
296  };
297 
299  {
301 
302  std::vector<address_info> addresses;
303  };
304 
306  {
308 
309  std::string reason_for_closing;
312 
315  bool closing_due_to_error = false,
316  const fc::oexception& error = fc::oexception()) :
319  error(error)
320  {}
321  };
322 
324  {
327 
331  {}
332  };
333 
335  {
340 
348  {}
349  };
350 
352  {
356  };
357 
359  {
363  };
364 
366  {
371  };
372 
374  {
376  };
377 
379  {
380  uint32_t connection_duration; // in seconds
388  };
389 
391  {
399  std::vector<current_connection_data> current_connections;
400  };
401 
402 } } // graphene::net
403 
427  (different_chain)
428  (already_connected)
429  (connected_to_self)
430  (not_accepting_connections)
431  (blocked)
432  (invalid_hello_message)
433  (client_too_old))
435  (inbound)
436  (outbound))
438  (firewalled)
439  (not_firewalled))
441  (unable_to_connect)
442  (connection_successful))
443 
466 
489 
490 #include <unordered_map>
491 #include <fc/crypto/city.hpp>
492 #include <fc/crypto/sha224.hpp>
493 namespace std
494 {
495  template<>
496  struct hash<graphene::net::item_id>
497  {
498  size_t operator()(const graphene::net::item_id& item_to_hash) const
499  {
500  return fc::city_hash_size_t((char*)&item_to_hash, sizeof(item_to_hash));
501  }
502  };
503 }
graphene::net::closing_connection_message::closing_connection_message
closing_connection_message()
Definition: core_messages.hpp:313
graphene::protocol::precomputable_transaction
Definition: transaction.hpp:233
graphene::net::block_message
Definition: core_messages.hpp:104
graphene::net::get_current_connections_reply_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:392
fc::variant_object
An order-perserving dictionary of variant's.
Definition: variant_object.hpp:20
graphene::net::hello_message::hello_message
hello_message(const std::string &user_agent, uint32_t core_protocol_version, const fc::ip::address &inbound_address, uint16_t inbound_port, uint16_t outbound_port, const node_id_t &node_public_key, const fc::ecc::compact_signature &signed_shared_secret, const fc::sha256 &chain_id_arg, const fc::variant_object &user_data)
Definition: core_messages.hpp:204
graphene::net::item_id::item_hash
item_hash_t item_hash
Definition: core_messages.hpp:52
ip.hpp
graphene::net::rejection_reason_code::unspecified
@ unspecified
graphene::net::current_time_reply_message::reply_transmitted_time
fc::time_point reply_transmitted_time
Definition: core_messages.hpp:339
graphene::net::blockchain_item_ids_inventory_message::blockchain_item_ids_inventory_message
blockchain_item_ids_inventory_message(uint32_t total_remaining_item_count, uint32_t item_type, const std::vector< item_hash_t > &item_hashes_available)
Definition: core_messages.hpp:140
graphene::net::firewalled_state::unknown
@ unknown
graphene::net::address_info::direction
fc::enum_type< uint8_t, peer_connection_direction > direction
Definition: core_messages.hpp:279
graphene::net::item_ids_inventory_message_type
@ item_ids_inventory_message_type
Definition: core_messages.hpp:71
graphene::net::item_not_available_message::item_not_available_message
item_not_available_message()
Definition: core_messages.hpp:183
graphene::net::get_current_connections_request_message_type
@ get_current_connections_request_message_type
Definition: core_messages.hpp:86
graphene::net::trx_message::trx_message
trx_message(const graphene::protocol::signed_transaction &signed_trx)
Definition: core_messages.hpp:99
graphene::net::hello_message::user_agent
std::string user_agent
Definition: core_messages.hpp:193
graphene::net::hello_message::chain_id
fc::sha256 chain_id
Definition: core_messages.hpp:200
graphene::net::hello_message::signed_shared_secret
fc::ecc::compact_signature signed_shared_secret
Definition: core_messages.hpp:199
graphene::net::get_current_connections_reply_message::download_rate_fifteen_minutes
uint32_t download_rate_fifteen_minutes
Definition: core_messages.hpp:396
graphene::net::node_id_t
fc::ecc::public_key_data node_id_t
Definition: core_messages.hpp:47
graphene::net::closing_connection_message::reason_for_closing
std::string reason_for_closing
Definition: core_messages.hpp:309
graphene::net::address_info
Definition: core_messages.hpp:273
graphene::net::connection_rejected_message::core_protocol_version
uint32_t core_protocol_version
Definition: core_messages.hpp:246
graphene::net::block_message_type
@ block_message_type
Definition: core_messages.hpp:69
graphene::net::firewall_check_result
firewall_check_result
Definition: core_messages.hpp:358
FC_REFLECT_TYPENAME
FC_REFLECT_TYPENAME(fc::log_message)
graphene::net::core_protocol_version
const uint32_t core_protocol_version
Definition: core_messages.hpp:91
graphene::protocol::transaction_id_type
fc::ripemd160 transaction_id_type
Definition: types.hpp:306
graphene::net::fetch_blockchain_item_ids_message::fetch_blockchain_item_ids_message
fetch_blockchain_item_ids_message(uint32_t item_type, const std::vector< item_hash_t > &blockchain_synopsis)
Definition: core_messages.hpp:157
graphene::net::fetch_blockchain_item_ids_message::fetch_blockchain_item_ids_message
fetch_blockchain_item_ids_message()
Definition: core_messages.hpp:156
graphene::net::firewall_check_result::unable_to_connect
@ unable_to_connect
graphene::net::check_firewall_message::node_id
node_id_t node_id
Definition: core_messages.hpp:354
graphene::net::current_connection_data
Definition: core_messages.hpp:378
graphene::net::address_message
Definition: core_messages.hpp:298
graphene::net::trx_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:95
graphene::net::hello_message::inbound_port
uint16_t inbound_port
Definition: core_messages.hpp:196
graphene::net::item_ids_inventory_message::item_ids_inventory_message
item_ids_inventory_message(uint32_t item_type, const std::vector< item_hash_t > &item_hashes_available)
Definition: core_messages.hpp:125
graphene::net::blockchain_item_ids_inventory_message_type
@ blockchain_item_ids_inventory_message_type
Definition: core_messages.hpp:72
graphene::net::peer_connection_direction::outbound
@ outbound
graphene::net::get_current_connections_reply_message::upload_rate_one_minute
uint32_t upload_rate_one_minute
Definition: core_messages.hpp:393
graphene::net::blockchain_item_ids_inventory_message
Definition: core_messages.hpp:131
fc::ip::address
Definition: ip.hpp:10
graphene::net::address_message::addresses
std::vector< address_info > addresses
Definition: core_messages.hpp:302
graphene::net::fetch_items_message::item_type
uint32_t item_type
Definition: core_messages.hpp:167
graphene::net::firewalled_state
firewalled_state
Definition: core_messages.hpp:271
block.hpp
graphene::net::check_firewall_reply_message
Definition: core_messages.hpp:365
graphene::net::blockchain_item_ids_inventory_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:133
graphene::net::current_time_request_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:325
graphene::net::address_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:300
graphene::net::hello_message_type
@ hello_message_type
Definition: core_messages.hpp:76
graphene::net::block_message::block_id
block_id_type block_id
Definition: core_messages.hpp:113
graphene::net::connection_accepted_message::connection_accepted_message
connection_accepted_message()
Definition: core_messages.hpp:229
variant_object.hpp
fc::sha256
Definition: sha256.hpp:10
graphene::net::current_connection_data::round_trip_delay
fc::microseconds round_trip_delay
Definition: core_messages.hpp:384
graphene::net::hello_message::inbound_address
fc::ip::address inbound_address
Definition: core_messages.hpp:195
graphene::net::connection_rejected_message::remote_endpoint
fc::ip::endpoint remote_endpoint
Definition: core_messages.hpp:247
fc::enum_type< uint8_t, rejection_reason_code >
graphene::net::block_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:106
graphene::net::get_current_connections_reply_message_type
@ get_current_connections_reply_message_type
Definition: core_messages.hpp:87
fc::zero_initialized_array
Definition: zeroed_array.hpp:30
graphene::net::closing_connection_message_type
@ closing_connection_message_type
Definition: core_messages.hpp:81
graphene::net::closing_connection_message::error
fc::oexception error
Definition: core_messages.hpp:311
graphene::net::item_hash_t
fc::ripemd160 item_hash_t
Definition: core_messages.hpp:48
graphene::net::connection_rejected_message::user_agent
std::string user_agent
Definition: core_messages.hpp:245
graphene::net::firewall_check_result::connection_successful
@ connection_successful
graphene::net::closing_connection_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:307
graphene::net::fetch_blockchain_item_ids_message_type
@ fetch_blockchain_item_ids_message_type
Definition: core_messages.hpp:73
graphene::net::connection_accepted_message_type
@ connection_accepted_message_type
Definition: core_messages.hpp:77
graphene::net::item_ids_inventory_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:119
graphene::net::item_ids_inventory_message::item_ids_inventory_message
item_ids_inventory_message()
Definition: core_messages.hpp:124
graphene::net::check_firewall_reply_message::endpoint_checked
fc::ip::endpoint endpoint_checked
Definition: core_messages.hpp:369
graphene::net::address_request_message
Definition: core_messages.hpp:263
graphene::net::current_connection_data::node_id
node_id_t node_id
Definition: core_messages.hpp:382
sha224.hpp
graphene::net::hello_message::core_protocol_version
uint32_t core_protocol_version
Definition: core_messages.hpp:194
graphene::net::fetch_items_message::items_to_fetch
std::vector< item_hash_t > items_to_fetch
Definition: core_messages.hpp:168
graphene::net::get_current_connections_reply_message::download_rate_one_hour
uint32_t download_rate_one_hour
Definition: core_messages.hpp:398
fc::ip::endpoint
Definition: ip.hpp:65
graphene::net::get_current_connections_reply_message::current_connections
std::vector< current_connection_data > current_connections
Definition: core_messages.hpp:399
graphene::net::connection_rejected_message::connection_rejected_message
connection_rejected_message(const std::string &user_agent, uint32_t core_protocol_version, const fc::ip::endpoint &remote_endpoint, rejection_reason_code reason_code, const std::string &reason_string)
Definition: core_messages.hpp:252
graphene::net::firewall_check_result::unable_to_check
@ unable_to_check
graphene::net::connection_rejected_message
Definition: core_messages.hpp:241
graphene::net::firewalled_state::firewalled
@ firewalled
graphene::net::current_time_request_message
Definition: core_messages.hpp:323
graphene::net::get_current_connections_reply_message::upload_rate_fifteen_minutes
uint32_t upload_rate_fifteen_minutes
Definition: core_messages.hpp:395
graphene::net::connection_accepted_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:227
graphene::protocol::signed_transaction
adds a signature to a transaction
Definition: transaction.hpp:134
graphene::net::check_firewall_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:353
graphene::net::current_time_request_message_type
@ current_time_request_message_type
Definition: core_messages.hpp:82
graphene::net::get_current_connections_request_message
Definition: core_messages.hpp:373
graphene::net::item_id
Definition: core_messages.hpp:49
graphene::net::hello_message
Definition: core_messages.hpp:189
graphene::net::blockchain_item_ids_inventory_message::blockchain_item_ids_inventory_message
blockchain_item_ids_inventory_message()
Definition: core_messages.hpp:139
graphene::net::core_message_type_first
@ core_message_type_first
Definition: core_messages.hpp:70
graphene::net::fetch_items_message::fetch_items_message
fetch_items_message()
Definition: core_messages.hpp:170
graphene::net::address_request_message_type
@ address_request_message_type
Definition: core_messages.hpp:79
graphene::net::get_current_connections_reply_message::upload_rate_one_hour
uint32_t upload_rate_one_hour
Definition: core_messages.hpp:397
graphene::net::current_time_reply_message_type
@ current_time_reply_message_type
Definition: core_messages.hpp:83
graphene::net::item_not_available_message::item_not_available_message
item_not_available_message(const item_id &requested_item)
Definition: core_messages.hpp:184
graphene::net::fetch_items_message
Definition: core_messages.hpp:163
graphene::net::hello_message::node_public_key
node_id_t node_public_key
Definition: core_messages.hpp:198
graphene::net::get_current_connections_request_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:375
graphene::net::check_firewall_message::endpoint_to_check
fc::ip::endpoint endpoint_to_check
Definition: core_messages.hpp:355
graphene::net::current_connection_data::connection_duration
uint32_t connection_duration
Definition: core_messages.hpp:380
graphene::net::check_firewall_reply_message::node_id
node_id_t node_id
Definition: core_messages.hpp:368
graphene::net::rejection_reason_code::connected_to_self
@ connected_to_self
graphene::net::rejection_reason_code::client_too_old
@ client_too_old
graphene::net::item_not_available_message::requested_item
item_id requested_item
Definition: core_messages.hpp:181
graphene::net::trx_message::trx_message
trx_message()=default
graphene::net::peer_connection_direction::inbound
@ inbound
graphene::net::connection_accepted_message
Definition: core_messages.hpp:225
graphene::net::current_connection_data::clock_offset
fc::microseconds clock_offset
Definition: core_messages.hpp:383
graphene::net::current_time_reply_message
Definition: core_messages.hpp:334
graphene::net::block_message::block_message
block_message()
Definition: core_messages.hpp:108
graphene::net::connection_rejected_message::reason_code
fc::enum_type< uint8_t, rejection_reason_code > reason_code
Definition: core_messages.hpp:248
graphene::net::get_current_connections_reply_message
Definition: core_messages.hpp:390
graphene::net::hello_message::hello_message
hello_message()
Definition: core_messages.hpp:203
graphene::net::check_firewall_message
Definition: core_messages.hpp:351
fc::time_point_sec
Definition: time.hpp:74
graphene::net::current_time_reply_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:336
graphene::net::address_info::node_id
node_id_t node_id
Definition: core_messages.hpp:278
graphene::net::fetch_blockchain_item_ids_message::item_type
uint32_t item_type
Definition: core_messages.hpp:153
graphene::net::blockchain_item_ids_inventory_message::total_remaining_item_count
uint32_t total_remaining_item_count
Definition: core_messages.hpp:135
graphene::net::rejection_reason_code::invalid_hello_message
@ invalid_hello_message
graphene::net::item_ids_inventory_message::item_type
uint32_t item_type
Definition: core_messages.hpp:121
fc::ripemd160
Definition: ripemd160.hpp:11
graphene::net::item_id::operator==
bool operator==(const item_id &other) const
Definition: core_messages.hpp:59
graphene::net::fetch_items_message::fetch_items_message
fetch_items_message(uint32_t item_type, const std::vector< item_hash_t > &items_to_fetch)
Definition: core_messages.hpp:171
graphene::net::current_time_reply_message::request_received_time
fc::time_point request_received_time
Definition: core_messages.hpp:338
graphene::net::closing_connection_message::closing_connection_message
closing_connection_message(const std::string &reason_for_closing, bool closing_due_to_error=false, const fc::oexception &error=fc::oexception())
Definition: core_messages.hpp:314
graphene::protocol::block_id_type
fc::ripemd160 block_id_type
Definition: types.hpp:304
graphene::net::current_connection_data::firewalled
fc::enum_type< uint8_t, firewalled_state > firewalled
Definition: core_messages.hpp:386
graphene::net::address_request_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:265
GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION
#define GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION(type)
Definition: types.hpp:85
graphene::net::item_id::item_type
uint32_t item_type
Definition: core_messages.hpp:51
graphene::net::connection_rejected_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:243
graphene::net::closing_connection_message::closing_due_to_error
bool closing_due_to_error
Definition: core_messages.hpp:310
graphene::net::address_info::last_seen_time
fc::time_point_sec last_seen_time
Definition: core_messages.hpp:276
graphene::net::connection_rejected_message_type
@ connection_rejected_message_type
Definition: core_messages.hpp:78
graphene::net::peer_connection_direction
peer_connection_direction
Definition: core_messages.hpp:270
graphene::net::current_time_reply_message::current_time_reply_message
current_time_reply_message(const fc::time_point request_sent_time, const fc::time_point request_received_time, const fc::time_point reply_transmitted_time=fc::time_point())
Definition: core_messages.hpp:342
fc::city_hash_size_t
size_t city_hash_size_t(const char *buf, size_t len)
Definition: city.hpp:59
graphene::net::item_not_available_message_type
@ item_not_available_message_type
Definition: core_messages.hpp:75
graphene::net::current_time_request_message::current_time_request_message
current_time_request_message(const fc::time_point request_sent_time)
Definition: core_messages.hpp:329
graphene::net::block_message::block_message
block_message(const signed_block &blk)
Definition: core_messages.hpp:109
graphene::net::item_id::item_id
item_id(uint32_t type, const item_hash_t &hash)
Definition: core_messages.hpp:55
graphene::net::item_not_available_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:179
graphene::net::blockchain_item_ids_inventory_message::item_hashes_available
std::vector< item_hash_t > item_hashes_available
Definition: core_messages.hpp:137
fc::microseconds
Definition: time.hpp:12
ripemd160.hpp
graphene::net::block_message::block
signed_block block
Definition: core_messages.hpp:112
city.hpp
FC_REFLECT_ENUM
FC_REFLECT_ENUM(graphene::net::core_message_type_enum,(trx_message_type)(block_message_type)(core_message_type_first)(item_ids_inventory_message_type)(blockchain_item_ids_inventory_message_type)(fetch_blockchain_item_ids_message_type)(fetch_items_message_type)(item_not_available_message_type)(hello_message_type)(connection_accepted_message_type)(connection_rejected_message_type)(address_request_message_type)(address_message_type)(closing_connection_message_type)(current_time_request_message_type)(current_time_reply_message_type)(check_firewall_message_type)(check_firewall_reply_message_type)(get_current_connections_request_message_type)(get_current_connections_reply_message_type)(core_message_type_last))(different_chain)(already_connected)(connected_to_self)(not_accepting_connections)(blocked)(invalid_hello_message)(client_too_old))(inbound)(outbound))(firewalled)(not_firewalled))(unable_to_connect)(connection_successful)) namespace std
Definition: core_messages.hpp:404
graphene::net::current_connection_data::connection_direction
fc::enum_type< uint8_t, peer_connection_direction > connection_direction
Definition: core_messages.hpp:385
graphene::net::hello_message::user_data
fc::variant_object user_data
Definition: core_messages.hpp:201
fc::time_point
Definition: time.hpp:44
graphene::net::rejection_reason_code
rejection_reason_code
Definition: core_messages.hpp:232
graphene::net::connection_rejected_message::reason_string
std::string reason_string
Definition: core_messages.hpp:249
graphene::net::fetch_blockchain_item_ids_message::blockchain_synopsis
std::vector< item_hash_t > blockchain_synopsis
Definition: core_messages.hpp:154
graphene::net::hello_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:191
exception.hpp
Defines exception's used by fc.
graphene::net::current_time_reply_message::request_sent_time
fc::time_point request_sent_time
Definition: core_messages.hpp:337
std
Definition: zeroed_array.hpp:76
graphene::net::address_info::remote_endpoint
fc::ip::endpoint remote_endpoint
Definition: core_messages.hpp:275
graphene::net::current_connection_data::remote_endpoint
fc::ip::endpoint remote_endpoint
Definition: core_messages.hpp:381
graphene::net::blockchain_item_ids_inventory_message::item_type
uint32_t item_type
Definition: core_messages.hpp:136
graphene::net::current_time_reply_message::current_time_reply_message
current_time_reply_message()
Definition: core_messages.hpp:341
graphene::net::current_time_request_message::current_time_request_message
current_time_request_message()
Definition: core_messages.hpp:328
enum_type.hpp
graphene::net::address_info::firewalled
fc::enum_type< uint8_t, firewalled_state > firewalled
Definition: core_messages.hpp:280
graphene::net::hello_message::outbound_port
uint16_t outbound_port
Definition: core_messages.hpp:197
graphene::net::rejection_reason_code::not_accepting_connections
@ not_accepting_connections
elliptic.hpp
graphene::net::address_info::address_info
address_info()
Definition: core_messages.hpp:282
graphene::net::current_time_request_message::request_sent_time
fc::time_point request_sent_time
Definition: core_messages.hpp:326
graphene::net::closing_connection_message
Definition: core_messages.hpp:305
graphene::net::trx_message
Definition: core_messages.hpp:93
graphene::net::core_message_type_last
@ core_message_type_last
Definition: core_messages.hpp:88
graphene::net::rejection_reason_code::already_connected
@ already_connected
graphene::net::address_request_message::address_request_message
address_request_message()
Definition: core_messages.hpp:267
graphene::net::connection_rejected_message::connection_rejected_message
connection_rejected_message()
Definition: core_messages.hpp:251
graphene::net::rejection_reason_code::blocked
@ blocked
graphene::net::check_firewall_reply_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:367
graphene::net::fetch_items_message_type
@ fetch_items_message_type
Definition: core_messages.hpp:74
fc::optional
provides stack-based nullable value similar to boost::optional
Definition: optional.hpp:20
time.hpp
graphene::net::address_info::address_info
address_info(const fc::ip::endpoint &remote_endpoint, const fc::time_point_sec last_seen_time, const fc::microseconds latency, const node_id_t &node_id, peer_connection_direction direction, firewalled_state firewalled)
Definition: core_messages.hpp:283
graphene::net::check_firewall_reply_message::result
fc::enum_type< uint8_t, firewall_check_result > result
Definition: core_messages.hpp:370
graphene::net::item_id::item_id
item_id()
Definition: core_messages.hpp:54
graphene::net::current_connection_data::user_data
fc::variant_object user_data
Definition: core_messages.hpp:387
graphene::net::fetch_blockchain_item_ids_message
Definition: core_messages.hpp:149
graphene::protocol::signed_block
Definition: block.hpp:64
graphene::net::rejection_reason_code::different_chain
@ different_chain
graphene::net::get_current_connections_reply_message::download_rate_one_minute
uint32_t download_rate_one_minute
Definition: core_messages.hpp:394
GRAPHENE_NET_PROTOCOL_VERSION
#define GRAPHENE_NET_PROTOCOL_VERSION
Definition: config.hpp:28
graphene::net::check_firewall_message_type
@ check_firewall_message_type
Definition: core_messages.hpp:84
graphene::net::fetch_items_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:165
graphene::net::address_message_type
@ address_message_type
Definition: core_messages.hpp:80
graphene::net::item_ids_inventory_message::item_hashes_available
std::vector< item_hash_t > item_hashes_available
Definition: core_messages.hpp:122
graphene::net::address_info::latency
fc::microseconds latency
Definition: core_messages.hpp:277
config.hpp
graphene
Definition: api.cpp:48
graphene::net::fetch_blockchain_item_ids_message::type
static const core_message_type_enum type
Definition: core_messages.hpp:151
graphene::net::core_message_type_enum
core_message_type_enum
Definition: core_messages.hpp:66
graphene::net::item_not_available_message
Definition: core_messages.hpp:177
graphene::net::trx_message_type
@ trx_message_type
Definition: core_messages.hpp:68
graphene::net::peer_connection_direction::unknown
@ unknown
graphene::net::firewalled_state::not_firewalled
@ not_firewalled
graphene::net::item_ids_inventory_message
Definition: core_messages.hpp:117
sha256.hpp
graphene::net::trx_message::trx
graphene::protocol::precomputable_transaction trx
Definition: core_messages.hpp:97
graphene::net::check_firewall_reply_message_type
@ check_firewall_reply_message_type
Definition: core_messages.hpp:85