mirror of
https://codeberg.org/anoncontributorxmr/monero.git
synced 2024-11-22 23:42:24 +00:00
move cryptonote command line options to cryptonote_core
Those have no reason to be in a generic module
This commit is contained in:
parent
f48aeab5c4
commit
082db75f28
16 changed files with 113 additions and 114 deletions
|
@ -30,6 +30,7 @@
|
||||||
#include "blocksdat_file.h"
|
#include "blocksdat_file.h"
|
||||||
#include "common/command_line.h"
|
#include "common/command_line.h"
|
||||||
#include "cryptonote_core/tx_pool.h"
|
#include "cryptonote_core/tx_pool.h"
|
||||||
|
#include "cryptonote_core/cryptonote_core.h"
|
||||||
#include "blockchain_db/blockchain_db.h"
|
#include "blockchain_db/blockchain_db.h"
|
||||||
#include "blockchain_db/db_types.h"
|
#include "blockchain_db/db_types.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
@ -66,21 +67,16 @@ int main(int argc, char* argv[])
|
||||||
const command_line::arg_descriptor<std::string> arg_output_file = {"output-file", "Specify output file", "", true};
|
const command_line::arg_descriptor<std::string> arg_output_file = {"output-file", "Specify output file", "", true};
|
||||||
const command_line::arg_descriptor<std::string> arg_log_level = {"log-level", "0-4 or categories", ""};
|
const command_line::arg_descriptor<std::string> arg_log_level = {"log-level", "0-4 or categories", ""};
|
||||||
const command_line::arg_descriptor<uint64_t> arg_block_stop = {"block-stop", "Stop at block number", block_stop};
|
const command_line::arg_descriptor<uint64_t> arg_block_stop = {"block-stop", "Stop at block number", block_stop};
|
||||||
const command_line::arg_descriptor<bool> arg_testnet_on = {
|
|
||||||
"testnet"
|
|
||||||
, "Run on testnet."
|
|
||||||
, false
|
|
||||||
};
|
|
||||||
const command_line::arg_descriptor<std::string> arg_database = {
|
const command_line::arg_descriptor<std::string> arg_database = {
|
||||||
"database", available_dbs.c_str(), default_db_type
|
"database", available_dbs.c_str(), default_db_type
|
||||||
};
|
};
|
||||||
const command_line::arg_descriptor<bool> arg_blocks_dat = {"blocksdat", "Output in blocks.dat format", blocks_dat};
|
const command_line::arg_descriptor<bool> arg_blocks_dat = {"blocksdat", "Output in blocks.dat format", blocks_dat};
|
||||||
|
|
||||||
|
|
||||||
command_line::add_arg(desc_cmd_sett, command_line::arg_data_dir, default_data_path.string());
|
command_line::add_arg(desc_cmd_sett, cryptonote::arg_data_dir, default_data_path.string());
|
||||||
command_line::add_arg(desc_cmd_sett, command_line::arg_testnet_data_dir, default_testnet_data_path.string());
|
command_line::add_arg(desc_cmd_sett, cryptonote::arg_testnet_data_dir, default_testnet_data_path.string());
|
||||||
command_line::add_arg(desc_cmd_sett, arg_output_file);
|
command_line::add_arg(desc_cmd_sett, arg_output_file);
|
||||||
command_line::add_arg(desc_cmd_sett, arg_testnet_on);
|
command_line::add_arg(desc_cmd_sett, cryptonote::arg_testnet_on);
|
||||||
command_line::add_arg(desc_cmd_sett, arg_log_level);
|
command_line::add_arg(desc_cmd_sett, arg_log_level);
|
||||||
command_line::add_arg(desc_cmd_sett, arg_database);
|
command_line::add_arg(desc_cmd_sett, arg_database);
|
||||||
command_line::add_arg(desc_cmd_sett, arg_block_stop);
|
command_line::add_arg(desc_cmd_sett, arg_block_stop);
|
||||||
|
@ -117,12 +113,12 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
LOG_PRINT_L0("Starting...");
|
LOG_PRINT_L0("Starting...");
|
||||||
|
|
||||||
bool opt_testnet = command_line::get_arg(vm, arg_testnet_on);
|
bool opt_testnet = command_line::get_arg(vm, cryptonote::arg_testnet_on);
|
||||||
bool opt_blocks_dat = command_line::get_arg(vm, arg_blocks_dat);
|
bool opt_blocks_dat = command_line::get_arg(vm, arg_blocks_dat);
|
||||||
|
|
||||||
std::string m_config_folder;
|
std::string m_config_folder;
|
||||||
|
|
||||||
auto data_dir_arg = opt_testnet ? command_line::arg_testnet_data_dir : command_line::arg_data_dir;
|
auto data_dir_arg = opt_testnet ? cryptonote::arg_testnet_data_dir : cryptonote::arg_data_dir;
|
||||||
m_config_folder = command_line::get_arg(vm, data_dir_arg);
|
m_config_folder = command_line::get_arg(vm, data_dir_arg);
|
||||||
|
|
||||||
std::string db_type = command_line::get_arg(vm, arg_database);
|
std::string db_type = command_line::get_arg(vm, arg_database);
|
||||||
|
|
|
@ -585,11 +585,6 @@ int main(int argc, char* argv[])
|
||||||
const command_line::arg_descriptor<uint64_t> arg_batch_size = {"batch-size", "", db_batch_size};
|
const command_line::arg_descriptor<uint64_t> arg_batch_size = {"batch-size", "", db_batch_size};
|
||||||
const command_line::arg_descriptor<uint64_t> arg_pop_blocks = {"pop-blocks", "Remove blocks from end of blockchain", num_blocks};
|
const command_line::arg_descriptor<uint64_t> arg_pop_blocks = {"pop-blocks", "Remove blocks from end of blockchain", num_blocks};
|
||||||
const command_line::arg_descriptor<bool> arg_drop_hf = {"drop-hard-fork", "Drop hard fork subdbs", false};
|
const command_line::arg_descriptor<bool> arg_drop_hf = {"drop-hard-fork", "Drop hard fork subdbs", false};
|
||||||
const command_line::arg_descriptor<bool> arg_testnet_on = {
|
|
||||||
"testnet"
|
|
||||||
, "Run on testnet."
|
|
||||||
, false
|
|
||||||
};
|
|
||||||
const command_line::arg_descriptor<bool> arg_count_blocks = {
|
const command_line::arg_descriptor<bool> arg_count_blocks = {
|
||||||
"count-blocks"
|
"count-blocks"
|
||||||
, "Count blocks in bootstrap file and exit"
|
, "Count blocks in bootstrap file and exit"
|
||||||
|
@ -674,8 +669,8 @@ int main(int argc, char* argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
opt_testnet = command_line::get_arg(vm, arg_testnet_on);
|
opt_testnet = command_line::get_arg(vm, cryptonote::arg_testnet_on);
|
||||||
auto data_dir_arg = opt_testnet ? command_line::arg_testnet_data_dir : command_line::arg_data_dir;
|
auto data_dir_arg = opt_testnet ? cryptonote::arg_testnet_data_dir : cryptonote::arg_data_dir;
|
||||||
m_config_folder = command_line::get_arg(vm, data_dir_arg);
|
m_config_folder = command_line::get_arg(vm, data_dir_arg);
|
||||||
db_arg_str = command_line::get_arg(vm, arg_database);
|
db_arg_str = command_line::get_arg(vm, arg_database);
|
||||||
|
|
||||||
|
|
|
@ -94,49 +94,4 @@ namespace command_line
|
||||||
|
|
||||||
const arg_descriptor<bool> arg_help = {"help", "Produce help message"};
|
const arg_descriptor<bool> arg_help = {"help", "Produce help message"};
|
||||||
const arg_descriptor<bool> arg_version = {"version", "Output version information"};
|
const arg_descriptor<bool> arg_version = {"version", "Output version information"};
|
||||||
const arg_descriptor<std::string> arg_data_dir = {"data-dir", "Specify data directory"};
|
|
||||||
const arg_descriptor<std::string> arg_testnet_data_dir = {"testnet-data-dir", "Specify testnet data directory"};
|
|
||||||
const arg_descriptor<bool> arg_test_drop_download = {"test-drop-download", "For net tests: in download, discard ALL blocks instead checking/saving them (very fast)"};
|
|
||||||
const arg_descriptor<uint64_t> arg_test_drop_download_height = {"test-drop-download-height", "Like test-drop-download but disards only after around certain height", 0};
|
|
||||||
const arg_descriptor<int> arg_test_dbg_lock_sleep = {"test-dbg-lock-sleep", "Sleep time in ms, defaults to 0 (off), used to debug before/after locking mutex. Values 100 to 1000 are good for tests."};
|
|
||||||
const arg_descriptor<bool, false> arg_testnet_on = {
|
|
||||||
"testnet"
|
|
||||||
, "Run on testnet. The wallet must be launched with --testnet flag."
|
|
||||||
, false
|
|
||||||
};
|
|
||||||
const arg_descriptor<bool> arg_dns_checkpoints = {
|
|
||||||
"enforce-dns-checkpointing"
|
|
||||||
, "checkpoints from DNS server will be enforced"
|
|
||||||
, false
|
|
||||||
};
|
|
||||||
const command_line::arg_descriptor<uint64_t> arg_fast_block_sync = {
|
|
||||||
"fast-block-sync"
|
|
||||||
, "Sync up most of the way by using embedded, known block hashes."
|
|
||||||
, 1
|
|
||||||
};
|
|
||||||
const command_line::arg_descriptor<uint64_t> arg_prep_blocks_threads = {
|
|
||||||
"prep-blocks-threads"
|
|
||||||
, "Max number of threads to use when preparing block hashes in groups."
|
|
||||||
, 4
|
|
||||||
};
|
|
||||||
const command_line::arg_descriptor<uint64_t> arg_show_time_stats = {
|
|
||||||
"show-time-stats"
|
|
||||||
, "Show time-stats when processing blocks/txs and disk synchronization."
|
|
||||||
, 0
|
|
||||||
};
|
|
||||||
const command_line::arg_descriptor<size_t> arg_block_sync_size = {
|
|
||||||
"block-sync-size"
|
|
||||||
, "How many blocks to sync at once during chain synchronization (0 = adaptive)."
|
|
||||||
, 0
|
|
||||||
};
|
|
||||||
const command_line::arg_descriptor<std::string> arg_check_updates = {
|
|
||||||
"check-updates"
|
|
||||||
, "Check for new versions of monero: [disabled|notify|download|update]"
|
|
||||||
, "notify"
|
|
||||||
};
|
|
||||||
const arg_descriptor<bool> arg_fluffy_blocks = {
|
|
||||||
"fluffy-blocks"
|
|
||||||
, "Relay blocks as fluffy blocks where possible (automatic on testnet)"
|
|
||||||
, false
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,17 +213,4 @@ namespace command_line
|
||||||
|
|
||||||
extern const arg_descriptor<bool> arg_help;
|
extern const arg_descriptor<bool> arg_help;
|
||||||
extern const arg_descriptor<bool> arg_version;
|
extern const arg_descriptor<bool> arg_version;
|
||||||
extern const arg_descriptor<std::string> arg_data_dir;
|
|
||||||
extern const arg_descriptor<std::string> arg_testnet_data_dir;
|
|
||||||
extern const arg_descriptor<bool> arg_test_drop_download;
|
|
||||||
extern const arg_descriptor<uint64_t> arg_test_drop_download_height;
|
|
||||||
extern const arg_descriptor<int> arg_test_dbg_lock_sleep;
|
|
||||||
extern const arg_descriptor<bool, false> arg_testnet_on;
|
|
||||||
extern const arg_descriptor<bool> arg_dns_checkpoints;
|
|
||||||
extern const arg_descriptor<uint64_t> arg_fast_block_sync;
|
|
||||||
extern const arg_descriptor<uint64_t> arg_prep_blocks_threads;
|
|
||||||
extern const arg_descriptor<uint64_t> arg_show_time_stats;
|
|
||||||
extern const arg_descriptor<size_t> arg_block_sync_size;
|
|
||||||
extern const arg_descriptor<std::string> arg_check_updates;
|
|
||||||
extern const arg_descriptor<bool> arg_fluffy_blocks;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ using namespace epee;
|
||||||
#include "common/updates.h"
|
#include "common/updates.h"
|
||||||
#include "common/download.h"
|
#include "common/download.h"
|
||||||
#include "common/threadpool.h"
|
#include "common/threadpool.h"
|
||||||
|
#include "common/command_line.h"
|
||||||
#include "warnings.h"
|
#include "warnings.h"
|
||||||
#include "crypto/crypto.h"
|
#include "crypto/crypto.h"
|
||||||
#include "cryptonote_config.h"
|
#include "cryptonote_config.h"
|
||||||
|
@ -61,6 +62,69 @@ DISABLE_VS_WARNINGS(4355)
|
||||||
|
|
||||||
namespace cryptonote
|
namespace cryptonote
|
||||||
{
|
{
|
||||||
|
const command_line::arg_descriptor<std::string> arg_data_dir = {
|
||||||
|
"data-dir"
|
||||||
|
, "Specify data directory"
|
||||||
|
};
|
||||||
|
const command_line::arg_descriptor<std::string> arg_testnet_data_dir = {
|
||||||
|
"testnet-data-dir"
|
||||||
|
, "Specify testnet data directory"
|
||||||
|
};
|
||||||
|
const command_line::arg_descriptor<bool, false> arg_testnet_on = {
|
||||||
|
"testnet"
|
||||||
|
, "Run on testnet. The wallet must be launched with --testnet flag."
|
||||||
|
, false
|
||||||
|
};
|
||||||
|
|
||||||
|
static const command_line::arg_descriptor<bool> arg_test_drop_download = {
|
||||||
|
"test-drop-download"
|
||||||
|
, "For net tests: in download, discard ALL blocks instead checking/saving them (very fast)"
|
||||||
|
};
|
||||||
|
static const command_line::arg_descriptor<uint64_t> arg_test_drop_download_height = {
|
||||||
|
"test-drop-download-height"
|
||||||
|
, "Like test-drop-download but disards only after around certain height"
|
||||||
|
, 0
|
||||||
|
};
|
||||||
|
static const command_line::arg_descriptor<int> arg_test_dbg_lock_sleep = {
|
||||||
|
"test-dbg-lock-sleep"
|
||||||
|
, "Sleep time in ms, defaults to 0 (off), used to debug before/after locking mutex. Values 100 to 1000 are good for tests."
|
||||||
|
, 0
|
||||||
|
};
|
||||||
|
static const command_line::arg_descriptor<bool> arg_dns_checkpoints = {
|
||||||
|
"enforce-dns-checkpointing"
|
||||||
|
, "checkpoints from DNS server will be enforced"
|
||||||
|
, false
|
||||||
|
};
|
||||||
|
static const command_line::arg_descriptor<uint64_t> arg_fast_block_sync = {
|
||||||
|
"fast-block-sync"
|
||||||
|
, "Sync up most of the way by using embedded, known block hashes."
|
||||||
|
, 1
|
||||||
|
};
|
||||||
|
static const command_line::arg_descriptor<uint64_t> arg_prep_blocks_threads = {
|
||||||
|
"prep-blocks-threads"
|
||||||
|
, "Max number of threads to use when preparing block hashes in groups."
|
||||||
|
, 4
|
||||||
|
};
|
||||||
|
static const command_line::arg_descriptor<uint64_t> arg_show_time_stats = {
|
||||||
|
"show-time-stats"
|
||||||
|
, "Show time-stats when processing blocks/txs and disk synchronization."
|
||||||
|
, 0
|
||||||
|
};
|
||||||
|
static const command_line::arg_descriptor<size_t> arg_block_sync_size = {
|
||||||
|
"block-sync-size"
|
||||||
|
, "How many blocks to sync at once during chain synchronization (0 = adaptive)."
|
||||||
|
, 0
|
||||||
|
};
|
||||||
|
static const command_line::arg_descriptor<std::string> arg_check_updates = {
|
||||||
|
"check-updates"
|
||||||
|
, "Check for new versions of monero: [disabled|notify|download|update]"
|
||||||
|
, "notify"
|
||||||
|
};
|
||||||
|
static const command_line::arg_descriptor<bool> arg_fluffy_blocks = {
|
||||||
|
"fluffy-blocks"
|
||||||
|
, "Relay blocks as fluffy blocks where possible (automatic on testnet)"
|
||||||
|
, false
|
||||||
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------
|
||||||
core::core(i_cryptonote_protocol* pprotocol):
|
core::core(i_cryptonote_protocol* pprotocol):
|
||||||
|
@ -148,20 +212,21 @@ namespace cryptonote
|
||||||
//-----------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------
|
||||||
void core::init_options(boost::program_options::options_description& desc)
|
void core::init_options(boost::program_options::options_description& desc)
|
||||||
{
|
{
|
||||||
command_line::add_arg(desc, command_line::arg_data_dir, tools::get_default_data_dir());
|
command_line::add_arg(desc, arg_data_dir, tools::get_default_data_dir());
|
||||||
command_line::add_arg(desc, command_line::arg_testnet_data_dir, (boost::filesystem::path(tools::get_default_data_dir()) / "testnet").string());
|
command_line::add_arg(desc, arg_testnet_data_dir, (boost::filesystem::path(tools::get_default_data_dir()) / "testnet").string());
|
||||||
|
|
||||||
command_line::add_arg(desc, command_line::arg_test_drop_download);
|
command_line::add_arg(desc, arg_test_drop_download);
|
||||||
command_line::add_arg(desc, command_line::arg_test_drop_download_height);
|
command_line::add_arg(desc, arg_test_drop_download_height);
|
||||||
|
|
||||||
command_line::add_arg(desc, command_line::arg_testnet_on);
|
command_line::add_arg(desc, arg_testnet_on);
|
||||||
command_line::add_arg(desc, command_line::arg_dns_checkpoints);
|
command_line::add_arg(desc, arg_dns_checkpoints);
|
||||||
command_line::add_arg(desc, command_line::arg_prep_blocks_threads);
|
command_line::add_arg(desc, arg_prep_blocks_threads);
|
||||||
command_line::add_arg(desc, command_line::arg_fast_block_sync);
|
command_line::add_arg(desc, arg_fast_block_sync);
|
||||||
command_line::add_arg(desc, command_line::arg_show_time_stats);
|
command_line::add_arg(desc, arg_show_time_stats);
|
||||||
command_line::add_arg(desc, command_line::arg_block_sync_size);
|
command_line::add_arg(desc, arg_block_sync_size);
|
||||||
command_line::add_arg(desc, command_line::arg_check_updates);
|
command_line::add_arg(desc, arg_check_updates);
|
||||||
command_line::add_arg(desc, command_line::arg_fluffy_blocks);
|
command_line::add_arg(desc, arg_fluffy_blocks);
|
||||||
|
command_line::add_arg(desc, arg_test_dbg_lock_sleep);
|
||||||
|
|
||||||
// we now also need some of net_node's options (p2p bind arg, for separate data dir)
|
// we now also need some of net_node's options (p2p bind arg, for separate data dir)
|
||||||
command_line::add_arg(desc, nodetool::arg_testnet_p2p_bind_port, false);
|
command_line::add_arg(desc, nodetool::arg_testnet_p2p_bind_port, false);
|
||||||
|
@ -173,9 +238,9 @@ namespace cryptonote
|
||||||
//-----------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------
|
||||||
bool core::handle_command_line(const boost::program_options::variables_map& vm)
|
bool core::handle_command_line(const boost::program_options::variables_map& vm)
|
||||||
{
|
{
|
||||||
m_testnet = command_line::get_arg(vm, command_line::arg_testnet_on);
|
m_testnet = command_line::get_arg(vm, arg_testnet_on);
|
||||||
|
|
||||||
auto data_dir_arg = m_testnet ? command_line::arg_testnet_data_dir : command_line::arg_data_dir;
|
auto data_dir_arg = m_testnet ? arg_testnet_data_dir : arg_data_dir;
|
||||||
m_config_folder = command_line::get_arg(vm, data_dir_arg);
|
m_config_folder = command_line::get_arg(vm, data_dir_arg);
|
||||||
|
|
||||||
auto data_dir = boost::filesystem::path(m_config_folder);
|
auto data_dir = boost::filesystem::path(m_config_folder);
|
||||||
|
@ -196,13 +261,15 @@ namespace cryptonote
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
set_enforce_dns_checkpoints(command_line::get_arg(vm, command_line::arg_dns_checkpoints));
|
set_enforce_dns_checkpoints(command_line::get_arg(vm, arg_dns_checkpoints));
|
||||||
test_drop_download_height(command_line::get_arg(vm, command_line::arg_test_drop_download_height));
|
test_drop_download_height(command_line::get_arg(vm, arg_test_drop_download_height));
|
||||||
m_fluffy_blocks_enabled = m_testnet || get_arg(vm, command_line::arg_fluffy_blocks);
|
m_fluffy_blocks_enabled = m_testnet || get_arg(vm, arg_fluffy_blocks);
|
||||||
|
|
||||||
if (command_line::get_arg(vm, command_line::arg_test_drop_download) == true)
|
if (command_line::get_arg(vm, arg_test_drop_download) == true)
|
||||||
test_drop_download();
|
test_drop_download();
|
||||||
|
|
||||||
|
epee::debug::g_test_dbg_lock_sleep() = command_line::get_arg(vm, arg_test_dbg_lock_sleep);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------
|
||||||
|
@ -268,7 +335,7 @@ namespace cryptonote
|
||||||
|
|
||||||
m_fakechain = test_options != NULL;
|
m_fakechain = test_options != NULL;
|
||||||
bool r = handle_command_line(vm);
|
bool r = handle_command_line(vm);
|
||||||
bool testnet = command_line::get_arg(vm, command_line::arg_testnet_on);
|
bool testnet = command_line::get_arg(vm, arg_testnet_on);
|
||||||
auto p2p_bind_arg = testnet ? nodetool::arg_testnet_p2p_bind_port : nodetool::arg_p2p_bind_port;
|
auto p2p_bind_arg = testnet ? nodetool::arg_testnet_p2p_bind_port : nodetool::arg_p2p_bind_port;
|
||||||
std::string m_port = command_line::get_arg(vm, p2p_bind_arg);
|
std::string m_port = command_line::get_arg(vm, p2p_bind_arg);
|
||||||
std::string m_config_folder_mempool = m_config_folder;
|
std::string m_config_folder_mempool = m_config_folder;
|
||||||
|
@ -281,9 +348,9 @@ namespace cryptonote
|
||||||
std::string db_type = command_line::get_arg(vm, cryptonote::arg_db_type);
|
std::string db_type = command_line::get_arg(vm, cryptonote::arg_db_type);
|
||||||
std::string db_sync_mode = command_line::get_arg(vm, cryptonote::arg_db_sync_mode);
|
std::string db_sync_mode = command_line::get_arg(vm, cryptonote::arg_db_sync_mode);
|
||||||
bool db_salvage = command_line::get_arg(vm, cryptonote::arg_db_salvage) != 0;
|
bool db_salvage = command_line::get_arg(vm, cryptonote::arg_db_salvage) != 0;
|
||||||
bool fast_sync = command_line::get_arg(vm, command_line::arg_fast_block_sync) != 0;
|
bool fast_sync = command_line::get_arg(vm, arg_fast_block_sync) != 0;
|
||||||
uint64_t blocks_threads = command_line::get_arg(vm, command_line::arg_prep_blocks_threads);
|
uint64_t blocks_threads = command_line::get_arg(vm, arg_prep_blocks_threads);
|
||||||
std::string check_updates_string = command_line::get_arg(vm, command_line::arg_check_updates);
|
std::string check_updates_string = command_line::get_arg(vm, arg_check_updates);
|
||||||
|
|
||||||
boost::filesystem::path folder(m_config_folder);
|
boost::filesystem::path folder(m_config_folder);
|
||||||
if (m_fakechain)
|
if (m_fakechain)
|
||||||
|
@ -409,11 +476,11 @@ namespace cryptonote
|
||||||
// transactions in the pool that do not conform to the current fork
|
// transactions in the pool that do not conform to the current fork
|
||||||
m_mempool.validate(m_blockchain_storage.get_current_hard_fork_version());
|
m_mempool.validate(m_blockchain_storage.get_current_hard_fork_version());
|
||||||
|
|
||||||
bool show_time_stats = command_line::get_arg(vm, command_line::arg_show_time_stats) != 0;
|
bool show_time_stats = command_line::get_arg(vm, arg_show_time_stats) != 0;
|
||||||
m_blockchain_storage.set_show_time_stats(show_time_stats);
|
m_blockchain_storage.set_show_time_stats(show_time_stats);
|
||||||
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize blockchain storage");
|
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize blockchain storage");
|
||||||
|
|
||||||
block_sync_size = command_line::get_arg(vm, command_line::arg_block_sync_size);
|
block_sync_size = command_line::get_arg(vm, arg_block_sync_size);
|
||||||
|
|
||||||
MGINFO("Loading checkpoints");
|
MGINFO("Loading checkpoints");
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "storages/portable_storage_template_helper.h"
|
#include "storages/portable_storage_template_helper.h"
|
||||||
#include "common/download.h"
|
#include "common/download.h"
|
||||||
#include "common/threadpool.h"
|
#include "common/threadpool.h"
|
||||||
|
#include "common/command_line.h"
|
||||||
#include "tx_pool.h"
|
#include "tx_pool.h"
|
||||||
#include "blockchain.h"
|
#include "blockchain.h"
|
||||||
#include "cryptonote_basic/miner.h"
|
#include "cryptonote_basic/miner.h"
|
||||||
|
@ -58,6 +59,10 @@ namespace cryptonote
|
||||||
const std::pair<uint8_t, uint64_t> *hard_forks;
|
const std::pair<uint8_t, uint64_t> *hard_forks;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern const command_line::arg_descriptor<std::string> arg_data_dir;
|
||||||
|
extern const command_line::arg_descriptor<std::string> arg_testnet_data_dir;
|
||||||
|
extern const command_line::arg_descriptor<bool, false> arg_testnet_on;
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
|
@ -88,7 +88,7 @@ t_daemon::t_daemon(
|
||||||
)
|
)
|
||||||
: mp_internals{new t_internals{vm}}
|
: mp_internals{new t_internals{vm}}
|
||||||
{
|
{
|
||||||
bool testnet = command_line::get_arg(vm, command_line::arg_testnet_on);
|
bool testnet = command_line::get_arg(vm, cryptonote::arg_testnet_on);
|
||||||
if (testnet)
|
if (testnet)
|
||||||
{
|
{
|
||||||
zmq_rpc_bind_port = command_line::get_arg(vm, daemon_args::arg_zmq_testnet_rpc_bind_port);
|
zmq_rpc_bind_port = command_line::get_arg(vm, daemon_args::arg_zmq_testnet_rpc_bind_port);
|
||||||
|
|
|
@ -82,7 +82,6 @@ int main(int argc, char const * argv[])
|
||||||
command_line::add_arg(visible_options, daemon_args::arg_os_version);
|
command_line::add_arg(visible_options, daemon_args::arg_os_version);
|
||||||
bf::path default_conf = default_data_dir / std::string(CRYPTONOTE_NAME ".conf");
|
bf::path default_conf = default_data_dir / std::string(CRYPTONOTE_NAME ".conf");
|
||||||
command_line::add_arg(visible_options, daemon_args::arg_config_file, default_conf.string());
|
command_line::add_arg(visible_options, daemon_args::arg_config_file, default_conf.string());
|
||||||
command_line::add_arg(visible_options, command_line::arg_test_dbg_lock_sleep);
|
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
bf::path default_log = default_data_dir / std::string(CRYPTONOTE_NAME ".log");
|
bf::path default_log = default_data_dir / std::string(CRYPTONOTE_NAME ".log");
|
||||||
|
@ -144,8 +143,6 @@ int main(int argc, char const * argv[])
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
epee::debug::g_test_dbg_lock_sleep() = command_line::get_arg(vm, command_line::arg_test_dbg_lock_sleep);
|
|
||||||
|
|
||||||
std::string db_type = command_line::get_arg(vm, cryptonote::arg_db_type);
|
std::string db_type = command_line::get_arg(vm, cryptonote::arg_db_type);
|
||||||
|
|
||||||
// verify that blockchaindb type is valid
|
// verify that blockchaindb type is valid
|
||||||
|
@ -156,9 +153,9 @@ int main(int argc, char const * argv[])
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool testnet_mode = command_line::get_arg(vm, command_line::arg_testnet_on);
|
bool testnet_mode = command_line::get_arg(vm, cryptonote::arg_testnet_on);
|
||||||
|
|
||||||
auto data_dir_arg = testnet_mode ? command_line::arg_testnet_data_dir : command_line::arg_data_dir;
|
auto data_dir_arg = testnet_mode ? cryptonote::arg_testnet_data_dir : cryptonote::arg_data_dir;
|
||||||
|
|
||||||
// data_dir
|
// data_dir
|
||||||
// default: e.g. ~/.bitmonero/ or ~/.bitmonero/testnet
|
// default: e.g. ~/.bitmonero/ or ~/.bitmonero/testnet
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#include "net/local_ip.h"
|
#include "net/local_ip.h"
|
||||||
#include "crypto/crypto.h"
|
#include "crypto/crypto.h"
|
||||||
#include "storages/levin_abstract_invoke2.h"
|
#include "storages/levin_abstract_invoke2.h"
|
||||||
|
#include "cryptonote_core/cryptonote_core.h"
|
||||||
|
|
||||||
// We have to look for miniupnpc headers in different places, dependent on if its compiled or external
|
// We have to look for miniupnpc headers in different places, dependent on if its compiled or external
|
||||||
#ifdef UPNP_STATIC
|
#ifdef UPNP_STATIC
|
||||||
|
@ -434,7 +435,7 @@ namespace nodetool
|
||||||
bool node_server<t_payload_net_handler>::init(const boost::program_options::variables_map& vm)
|
bool node_server<t_payload_net_handler>::init(const boost::program_options::variables_map& vm)
|
||||||
{
|
{
|
||||||
std::set<std::string> full_addrs;
|
std::set<std::string> full_addrs;
|
||||||
m_testnet = command_line::get_arg(vm, command_line::arg_testnet_on);
|
m_testnet = command_line::get_arg(vm, cryptonote::arg_testnet_on);
|
||||||
|
|
||||||
if (m_testnet)
|
if (m_testnet)
|
||||||
{
|
{
|
||||||
|
@ -535,7 +536,7 @@ namespace nodetool
|
||||||
bool res = handle_command_line(vm);
|
bool res = handle_command_line(vm);
|
||||||
CHECK_AND_ASSERT_MES(res, false, "Failed to handle command line");
|
CHECK_AND_ASSERT_MES(res, false, "Failed to handle command line");
|
||||||
|
|
||||||
auto config_arg = m_testnet ? command_line::arg_testnet_data_dir : command_line::arg_data_dir;
|
auto config_arg = m_testnet ? cryptonote::arg_testnet_data_dir : cryptonote::arg_data_dir;
|
||||||
m_config_folder = command_line::get_arg(vm, config_arg);
|
m_config_folder = command_line::get_arg(vm, config_arg);
|
||||||
|
|
||||||
if ((!m_testnet && m_port != std::to_string(::config::P2P_DEFAULT_PORT))
|
if ((!m_testnet && m_port != std::to_string(::config::P2P_DEFAULT_PORT))
|
||||||
|
|
|
@ -85,7 +85,7 @@ namespace cryptonote
|
||||||
const boost::program_options::variables_map& vm
|
const boost::program_options::variables_map& vm
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
m_testnet = command_line::get_arg(vm, command_line::arg_testnet_on);
|
m_testnet = command_line::get_arg(vm, cryptonote::arg_testnet_on);
|
||||||
m_net_server.set_threads_prefix("RPC");
|
m_net_server.set_threads_prefix("RPC");
|
||||||
|
|
||||||
auto p2p_bind_arg = m_testnet ? arg_testnet_rpc_bind_port : arg_rpc_bind_port;
|
auto p2p_bind_arg = m_testnet ? arg_testnet_rpc_bind_port : arg_rpc_bind_port;
|
||||||
|
|
|
@ -81,7 +81,7 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
po::options_description desc("Allowed options");
|
po::options_description desc("Allowed options");
|
||||||
// tools::get_default_data_dir() can't be called during static initialization
|
// tools::get_default_data_dir() can't be called during static initialization
|
||||||
command_line::add_arg(desc, command_line::arg_data_dir, tools::get_default_data_dir());
|
command_line::add_arg(desc, cryptonote::arg_data_dir, tools::get_default_data_dir());
|
||||||
nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<tests::proxy_core> >::init_options(desc);
|
nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<tests::proxy_core> >::init_options(desc);
|
||||||
|
|
||||||
po::variables_map vm;
|
po::variables_map vm;
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#include "include_base_utils.h"
|
#include "include_base_utils.h"
|
||||||
#include "common/command_line.h"
|
|
||||||
#include "file_io_utils.h"
|
#include "file_io_utils.h"
|
||||||
#include "cryptonote_protocol/blobdatatype.h"
|
#include "cryptonote_protocol/blobdatatype.h"
|
||||||
#include "cryptonote_basic/cryptonote_basic.h"
|
#include "cryptonote_basic/cryptonote_basic.h"
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#include "include_base_utils.h"
|
#include "include_base_utils.h"
|
||||||
#include "common/command_line.h"
|
|
||||||
#include "file_io_utils.h"
|
#include "file_io_utils.h"
|
||||||
#include "cryptonote_protocol/blobdatatype.h"
|
#include "cryptonote_protocol/blobdatatype.h"
|
||||||
#include "cryptonote_basic/cryptonote_basic.h"
|
#include "cryptonote_basic/cryptonote_basic.h"
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#include "include_base_utils.h"
|
#include "include_base_utils.h"
|
||||||
#include "common/command_line.h"
|
|
||||||
#include "file_io_utils.h"
|
#include "file_io_utils.h"
|
||||||
#include "cryptonote_protocol/blobdatatype.h"
|
#include "cryptonote_protocol/blobdatatype.h"
|
||||||
#include "cryptonote_basic/cryptonote_basic.h"
|
#include "cryptonote_basic/cryptonote_basic.h"
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#include "include_base_utils.h"
|
#include "include_base_utils.h"
|
||||||
#include "common/command_line.h"
|
|
||||||
#include "file_io_utils.h"
|
#include "file_io_utils.h"
|
||||||
#include "cryptonote_protocol/blobdatatype.h"
|
#include "cryptonote_protocol/blobdatatype.h"
|
||||||
#include "cryptonote_basic/cryptonote_basic.h"
|
#include "cryptonote_basic/cryptonote_basic.h"
|
||||||
|
|
|
@ -53,7 +53,7 @@ int main(int argc, char** argv)
|
||||||
|
|
||||||
po::options_description desc_options("Command line options");
|
po::options_description desc_options("Command line options");
|
||||||
const command_line::arg_descriptor<std::string> arg_data_dir = {"data-dir", "Data files directory", "", true};
|
const command_line::arg_descriptor<std::string> arg_data_dir = {"data-dir", "Data files directory", "", true};
|
||||||
command_line::add_arg(desc_options, command_line::arg_data_dir, "");
|
command_line::add_arg(desc_options, arg_data_dir, "");
|
||||||
|
|
||||||
po::variables_map vm;
|
po::variables_map vm;
|
||||||
bool r = command_line::handle_error_helper(desc_options, [&]()
|
bool r = command_line::handle_error_helper(desc_options, [&]()
|
||||||
|
|
Loading…
Reference in a new issue