34 #include <boost/program_options/options_description.hpp> 35 #include <boost/program_options/variables_map.hpp> 37 #include "net/http_server_impl_base.h" 38 #include "net/http_client.h" 44 #undef ELECTRONEUM_DEFAULT_LOG_CATEGORY 45 #define ELECTRONEUM_DEFAULT_LOG_CATEGORY "daemon.rpc" 80 static void init_options(boost::program_options::options_description& desc);
82 const boost::program_options::variables_map& vm,
83 const bool restricted,
84 const std::string& port
88 CHAIN_HTTP_TO_MAP2(connection_context);
133 BEGIN_JSON_RPC_MAP("/json_rpc")
247 bool check_core_busy();
248 bool check_core_ready();
254 template <
typename COMMAND_TYPE>
255 bool use_bootstrap_daemon_if_necessary(
const invoke_http_mode &mode,
const std::string &command_name,
const typename COMMAND_TYPE::request& req,
typename COMMAND_TYPE::response& res,
bool &r);
static const command_line::arg_descriptor< std::vector< std::string > > arg_rpc_ssl_allowed_fingerprints
Definition: core_rpc_server.h:68
boost::shared_mutex m_bootstrap_daemon_mutex
Definition: core_rpc_server.h:261
Definition: core_rpc_server_commands_defs.h:118
static const command_line::arg_descriptor< bool > arg_public_node
Definition: core_rpc_server.h:60
void init_options(boost::program_options::options_description &hidden_options, boost::program_options::options_description &normal_options)
Definition: posix_daemonizer.inl:57
Definition: core_rpc_server_commands_defs.h:2049
static void init(std::string cache_filename)
Definition: blockchain_blackball.cpp:224
Definition: cryptonote_basic.h:409
bool m_was_bootstrap_ever_used
Definition: core_rpc_server.h:264
Definition: core_rpc_server_commands_defs.h:1294
Definition: core_rpc_server_commands_defs.h:1072
Definition: core_rpc_server_commands_defs.h:175
uint64_t height
Definition: blockchain.cpp:91
Definition: core_rpc_server_commands_defs.h:1890
Definition: core_rpc_server_commands_defs.h:1776
int pop_blocks(cryptonote::core &core, int num_blocks)
Definition: blockchain_import.cpp:137
crypto namespace.
Definition: crypto.cpp:58
Definition: core_rpc_server_commands_defs.h:1419
invoke_http_mode
Definition: core_rpc_server.h:253
Definition: core_rpc_server_commands_defs.h:224
Definition: core_rpc_server_commands_defs.h:419
std::string m_bootstrap_daemon_address
Definition: core_rpc_server.h:259
const
Definition: build_protob.py:9
static const command_line::arg_descriptor< std::string > arg_bootstrap_daemon_address
Definition: core_rpc_server.h:70
std::chrono::system_clock::time_point m_bootstrap_height_check_time
Definition: core_rpc_server.h:263
Definition: core_rpc_server_commands_defs.h:2131
Definition: core_rpc_server_commands_defs.h:2394
Definition: core_rpc_server_commands_defs.h:1272
Definition: core_rpc_server_commands_defs.h:973
network_type nettype() const
Definition: core_rpc_server.h:86
Definition: core_rpc_server_commands_defs.h:1913
static const command_line::arg_descriptor< std::string > arg_rpc_ssl_ca_certificates
Definition: core_rpc_server.h:67
Definition: core_rpc_server_commands_defs.h:918
Definition: core_rpc_server_commands_defs.h:2320
Definition: core_rpc_server_commands_defs.h:1450
BOOST_CLASS_VERSION(nodetool::node_server< cryptonote::t_cryptonote_protocol_handler< cryptonote::core > >, 1)
static const command_line::arg_descriptor< std::string > arg_bootstrap_daemon_login
Definition: core_rpc_server.h:71
Holds cryptonote related classes and helpers.
Definition: db_bdb.cpp:225
Definition: core_rpc_server_commands_defs.h:825
bool m_restricted
Definition: core_rpc_server.h:266
Definition: core_rpc_server_commands_defs.h:2347
Definition: core_rpc_server_commands_defs.h:491
static const command_line::arg_descriptor< std::string > arg_rpc_ssl_certificate
Definition: core_rpc_server.h:66
static const command_line::arg_descriptor< std::string > arg_rpc_restricted_bind_port
Definition: core_rpc_server.h:62
Definition: core_rpc_server_commands_defs.h:1967
static const command_line::arg_descriptor< std::string > arg_rpc_ssl
Definition: core_rpc_server.h:64
Definition: core_rpc_server_commands_defs.h:2154
Definition: core_rpc_server_commands_defs.h:769
Definition: core_rpc_server_commands_defs.h:635
Definition: core_rpc_server_commands_defs.h:1250
Definition: core_rpc_server_commands_defs.h:1129
Definition: core_rpc_server_commands_defs.h:1736
handles core cryptonote functionality
Definition: cryptonote_core.h:85
Definition: core_rpc_server_commands_defs.h:1544
Definition: core_rpc_server_commands_defs.h:1369
static const command_line::arg_descriptor< std::string > arg_rpc_ssl_private_key
Definition: core_rpc_server.h:65
Definition: core_rpc_server_commands_defs.h:1663
core & m_core
Definition: core_rpc_server.h:257
Definition: core_rpc_server_commands_defs.h:1597
Definition: core_rpc_server_commands_defs.h:878
Definition: core_rpc_server_commands_defs.h:454
Definition: core_rpc_server_commands_defs.h:2370
Definition: core_rpc_server_commands_defs.h:1100
Definition: core_rpc_server_commands_defs.h:2216
Definition: core_rpc_server_commands_defs.h:901
Definition: core_rpc_server_commands_defs.h:926
Definition: core_rpc_server_commands_defs.h:201
Definition: core_rpc_server_commands_defs.h:1226
This is the orginal cryptonote protocol network-events handler, modified by us.
Definition: core_rpc_server_commands_defs.h:802
Definition: core_rpc_server_commands_defs.h:1520
Definition: core_rpc_server_commands_defs.h:1158
network_type
Definition: cryptonote_config.h:242
Definition: cryptonote_format_utils.h:43
Definition: core_rpc_server_commands_defs.h:988
Definition: core_rpc_server_commands_defs.h:1714
nodetool::node_server< cryptonote::t_cryptonote_protocol_handler< cryptonote::core > > & m_p2p
Definition: core_rpc_server.h:258
Definition: core_rpc_server_commands_defs.h:664
epee::net_utils::http::http_simple_client m_http_client
Definition: core_rpc_server.h:260
Definition: core_rpc_server_commands_defs.h:92
Definition: core_rpc_server_commands_defs.h:1817
bool m_should_use_bootstrap_daemon
Definition: core_rpc_server.h:262
epee::net_utils::connection_context_base connection_context
Definition: core_rpc_server.h:73
static const command_line::arg_descriptor< bool > arg_rpc_ssl_allow_any_cert
Definition: core_rpc_server.h:69
Definition: core_rpc_server_commands_defs.h:337
Definition: core_rpc_server_commands_defs.h:1756
Definition: core_rpc_server_commands_defs.h:1692
Definition: core_rpc_server_commands_defs.h:583
Definition: core_rpc_server_commands_defs.h:1852
Definition: core_rpc_server_commands_defs.h:1566
Definition: core_rpc_server_commands_defs.h:1991
Definition: core_rpc_server.h:56
static const command_line::arg_descriptor< std::string, false, true, 2 > arg_rpc_bind_port
Definition: core_rpc_server.h:61
POD_CLASS hash
Definition: hash.h:50
Definition: core_rpc_server_commands_defs.h:537
bool get_block_reward(size_t median_weight, size_t current_block_weight, uint64_t already_generated_coins, uint64_t &reward, uint8_t version, uint64_t current_block_height, network_type nettype)
Definition: cryptonote_basic_impl.cpp:89
std::string sign_message(const std::string &message, const std::string &privateKey)
Definition: crypto.h:352
Definition: core_rpc_server_commands_defs.h:1395
Definition: core_rpc_server_commands_defs.h:2020
Definition: core_rpc_server_commands_defs.h:2421
static const command_line::arg_descriptor< bool > arg_restricted_rpc
Definition: core_rpc_server.h:63
Definition: core_rpc_server_commands_defs.h:1637
error
Tracks LMDB error codes.
Definition: error.h:44
Definition: core_rpc_server_commands_defs.h:2094
Definition: core_rpc_server_commands_defs.h:2295
network_type m_nettype
Definition: core_rpc_server.h:265