35 #include <boost/program_options/options_description.hpp> 36 #include <boost/program_options/variables_map.hpp> 47 #undef MONERO_DEFAULT_LOG_CATEGORY 48 #define MONERO_DEFAULT_LOG_CATEGORY "daemon.rpc" 91 const boost::program_options::variables_map&
vm,
92 const bool restricted,
94 bool allow_rpc_payment,
271 bool check_core_busy();
272 bool check_core_ready();
273 bool add_host_fail(
const connection_context *ctx,
unsigned int score = 1);
278 std::map<
std::
string,
bool> get_public_nodes(
uint32_t credits_per_hash_threshold = 0);
279 bool set_bootstrap_daemon(
281 const std::
string &username_password,
283 bool set_bootstrap_daemon(
288 template <
typename COMMAND_TYPE>
289 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);
290 bool get_block_template(
const account_public_address &
address,
const crypto::hash *prev_block,
const cryptonote::blobdata &extra_nonce,
size_t &reserved_offset,
cryptonote::difficulty_type &
difficulty,
uint64_t &height,
uint64_t &expected_reward,
block &
b,
uint64_t &seed_height,
crypto::hash &seed_hash,
crypto::hash &next_seed_hash,
epee::json_rpc::error &error_resp);
const char * res
Definition: hmac_keccak.cpp:42
static const command_line::arg_descriptor< std::vector< std::string > > arg_rpc_ssl_allowed_fingerprints
Definition: core_rpc_server.h:71
Definition: core_rpc_server_commands_defs.h:1066
std::unique_ptr< bootstrap_daemon > m_bootstrap_daemon
Definition: core_rpc_server.h:296
def difficulty()
Definition: gen_wide_data.py:11
boost::shared_mutex m_bootstrap_daemon_mutex
Definition: core_rpc_server.h:295
std::string m_bootstrap_daemon_proxy
Definition: core_rpc_server.h:297
bool disable_rpc_ban
Definition: core_rpc_server.h:305
static int init(int argc, char **argv, struct runtime_vars *v)
Definition: miniupnpd.c:1149
Definition: core_rpc_server_commands_defs.h:162
#define BEGIN_URI_MAP2()
Definition: http_server_handlers_map2.h:60
static const command_line::arg_descriptor< bool > arg_rpc_payment_allow_free_loopback
Definition: core_rpc_server.h:79
static const command_line::arg_descriptor< bool > arg_public_node
Definition: core_rpc_server.h:63
void init_options(boost::program_options::options_description &hidden_options, boost::program_options::options_description &normal_options)
Definition: posix_daemonizer.inl:56
Definition: portable_binary_archive.hpp:29
Definition: core_rpc_server_commands_defs.h:2067
static const command_line::arg_descriptor< std::string > arg_rpc_payment_address
Definition: core_rpc_server.h:76
#define MAP_URI_AUTO_JON2_IF(s_pattern, callback_f, command_type, cond)
Definition: http_server_handlers_map2.h:70
Definition: core_rpc_server_commands_defs.h:2277
Definition: jsonrpc_structs.h:31
::std::string string
Definition: gtest-port.h:1097
#define MAP_JON_RPC_WE(method_name, callback_f, command_type)
Definition: http_server_handlers_map2.h:226
Definition: cryptonote_basic.h:474
bool m_was_bootstrap_ever_used
Definition: core_rpc_server.h:300
Definition: core_rpc_server_commands_defs.h:1492
Definition: core_rpc_server_commands_defs.h:1212
Definition: core_rpc_server_commands_defs.h:264
Definition: core_rpc_server_commands_defs.h:2580
Definition: core_rpc_server_commands_defs.h:2094
epee::critical_section m_host_fails_score_lock
Definition: core_rpc_server.h:302
Definition: core_rpc_server_commands_defs.h:1956
int pop_blocks(cryptonote::core &core, int num_blocks)
Definition: blockchain_import.cpp:95
std::unique_ptr< rpc_payment > m_rpc_payment
Definition: core_rpc_server.h:304
Definition: core_rpc_server_commands_defs.h:2693
Definition: net_utils_base.h:364
static const command_line::arg_descriptor< uint64_t > arg_rpc_payment_difficulty
Definition: core_rpc_server.h:77
crypto namespace.
Definition: crypto.cpp:60
Definition: core_rpc_server_commands_defs.h:1613
invoke_http_mode
Definition: core_rpc_server.h:287
Definition: core_rpc_server_commands_defs.h:309
Definition: core_rpc_server_commands_defs.h:454
static const command_line::arg_descriptor< std::string > arg_bootstrap_daemon_address
Definition: core_rpc_server.h:73
std::chrono::system_clock::time_point m_bootstrap_height_check_time
Definition: core_rpc_server.h:299
Definition: core_rpc_server_commands_defs.h:2359
Definition: core_rpc_server_commands_defs.h:1783
Definition: abstract_http_client.h:59
Definition: core_rpc_server_commands_defs.h:1470
Definition: core_rpc_server_commands_defs.h:1112
network_type nettype() const
Definition: core_rpc_server.h:97
Definition: core_rpc_server_commands_defs.h:2116
static const command_line::arg_descriptor< std::string > arg_rpc_ssl_ca_certificates
Definition: core_rpc_server.h:70
desc
Definition: pymoduletest.py:79
Definition: core_rpc_server_commands_defs.h:933
Definition: core_rpc_server_commands_defs.h:2745
#define END_JSON_RPC_MAP()
Definition: http_server_handlers_map2.h:270
Definition: core_rpc_server_commands_defs.h:1642
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:74
Holds cryptonote related classes and helpers.
Definition: blockchain_db.cpp:44
#define MAP_JON_RPC_WE_IF(method_name, callback_f, command_type, cond)
Definition: http_server_handlers_map2.h:206
#define END_URI_MAP2()
Definition: http_server_handlers_map2.h:144
Definition: core_rpc_server_commands_defs.h:844
bool m_restricted
Definition: core_rpc_server.h:301
Definition: http_server_impl_base.h:47
Definition: core_rpc_server_commands_defs.h:2604
bool m_rpc_payment_allow_free_loopback
Definition: core_rpc_server.h:306
Definition: core_rpc_server_commands_defs.h:523
static const command_line::arg_descriptor< std::string > arg_rpc_ssl_certificate
Definition: core_rpc_server.h:69
static const command_line::arg_descriptor< std::string > arg_rpc_restricted_bind_port
Definition: core_rpc_server.h:65
Definition: core_rpc_server_commands_defs.h:2168
static const command_line::arg_descriptor< std::string > arg_rpc_ssl
Definition: core_rpc_server.h:67
rpc
Definition: console.py:53
Definition: core_rpc_server_commands_defs.h:2381
static const command_line::arg_descriptor< uint64_t > arg_rpc_payment_credits
Definition: core_rpc_server.h:78
#define MAP_JON_RPC(method_name, callback_f, command_type)
Definition: http_server_handlers_map2.h:248
unsigned int uint32_t
Definition: stdint.h:126
Definition: core_rpc_server_commands_defs.h:791
Definition: core_rpc_server_commands_defs.h:663
Definition: core_rpc_server_commands_defs.h:1448
Definition: core_rpc_server_commands_defs.h:1269
handles core cryptonote functionality
Definition: cryptonote_core.h:86
bool get_block_reward(size_t median_weight, size_t current_block_weight, uint64_t already_generated_coins, uint64_t &reward, uint8_t version)
Definition: cryptonote_basic_impl.cpp:83
unsigned __int64 uint64_t
Definition: stdint.h:136
get_version
Definition: console.py:54
Definition: core_rpc_server_commands_defs.h:1732
Definition: core_rpc_server_commands_defs.h:1567
static const command_line::arg_descriptor< std::string > arg_rpc_ssl_private_key
Definition: core_rpc_server.h:68
Definition: core_rpc_server_commands_defs.h:1874
core & m_core
Definition: core_rpc_server.h:293
Definition: core_rpc_server_commands_defs.h:1812
Definition: core_rpc_server_commands_defs.h:896
Definition: core_rpc_server_commands_defs.h:487
Definition: core_rpc_server_commands_defs.h:1238
std::map< std::string, uint64_t > m_host_fails_score
Definition: core_rpc_server.h:303
Definition: core_rpc_server_commands_defs.h:2443
Definition: core_rpc_server_commands_defs.h:917
Definition: core_rpc_server_commands_defs.h:941
#define BEGIN_JSON_RPC_MAP(uri)
Definition: http_server_handlers_map2.h:147
Definition: core_rpc_server_commands_defs.h:288
enum modes mode
Definition: minihttptestserver.c:268
Definition: core_rpc_server_commands_defs.h:1367
Definition: core_rpc_server_commands_defs.h:2644
#define MAP_URI_AUTO_BIN2(s_pattern, callback_f, command_type)
Definition: http_server_handlers_map2.h:106
This is the original cryptonote protocol network-events handler, modified by us.
#define CHAIN_HTTP_TO_MAP2(context_type)
Definition: http_server_handlers_map2.h:38
boost::endian::big_uint16_t port
Definition: socks.cpp:59
Definition: core_rpc_server_commands_defs.h:823
r
Definition: testupnpigd.py:61
Definition: core_rpc_server_commands_defs.h:1710
std::string blobdata
Definition: blobdatatype.h:39
Definition: core_rpc_server_commands_defs.h:1296
Definition: get_output_distribution.py:1
static const command_line::arg_descriptor< std::string > arg_bootstrap_daemon_proxy
Definition: core_rpc_server.h:75
Definition: core_rpc_server_commands_defs.h:2556
Definition: core_rpc_server_commands_defs.h:1044
network_type
Definition: cryptonote_config.h:295
randomx_vm * vm
Definition: tests.cpp:20
TODO: (mj-xmr) This will be reduced in an another PR.
Definition: byte_slice.h:39
uint32_t address
Definition: getifaddr.c:269
Definition: core_rpc_server_commands_defs.h:1128
Definition: core_rpc_server_commands_defs.h:2520
Definition: cryptonote_basic.h:511
Definition: core_rpc_server_commands_defs.h:1930
nodetool::node_server< cryptonote::t_cryptonote_protocol_handler< cryptonote::core > > & m_p2p
Definition: core_rpc_server.h:294
boost::multiprecision::uint128_t difficulty_type
Definition: difficulty.h:41
Definition: core_rpc_server_commands_defs.h:691
Definition: core_rpc_server_commands_defs.h:138
Definition: core_rpc_server_commands_defs.h:994
Definition: core_rpc_server_commands_defs.h:1995
bool m_should_use_bootstrap_daemon
Definition: core_rpc_server.h:298
epee::net_utils::connection_context_base connection_context
Definition: core_rpc_server.h:81
static const command_line::arg_descriptor< bool > arg_rpc_ssl_allow_any_cert
Definition: core_rpc_server.h:72
Definition: core_rpc_server_commands_defs.h:370
Definition: core_rpc_server_commands_defs.h:1903
Definition: core_rpc_server_commands_defs.h:1417
Definition: core_rpc_server_commands_defs.h:611
Definition: core_rpc_server_commands_defs.h:2030
Definition: core_rpc_server_commands_defs.h:1754
Definition: core_rpc_server_commands_defs.h:2211
Definition: core_rpc_server.h:59
#define MAP_URI_AUTO_JON2(s_pattern, callback_f, command_type)
Definition: http_server_handlers_map2.h:104
static const command_line::arg_descriptor< std::string, false, true, 2 > arg_rpc_bind_port
Definition: core_rpc_server.h:64
POD_CLASS hash
Definition: hash.h:48
Definition: core_rpc_server_commands_defs.h:567
Definition: core_rpc_server_commands_defs.h:2772
Definition: core_rpc_server_commands_defs.h:1591
Definition: core_rpc_server_commands_defs.h:2248
static const command_line::arg_descriptor< bool > arg_restricted_rpc
Definition: core_rpc_server.h:66
Definition: core_rpc_server_commands_defs.h:1850
error
Tracks LMDB error codes.
Definition: error.h:44
tuple message
Definition: gtest_output_test.py:331
#define const
Definition: ipfrdr.c:80
Definition: core_rpc_server_commands_defs.h:2322
Definition: core_rpc_server_commands_defs.h:2720
cryptonote::block b
Definition: block.cpp:40
static epee::net_utils::http::http_simple_client_template< dummy_client > client
Definition: http-client.cpp:62