aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core
diff options
context:
space:
mode:
authorThomas Winget <tewinget@gmail.com>2015-01-29 17:10:53 -0500
committerThomas Winget <tewinget@gmail.com>2015-02-24 00:05:19 -0500
commit9193d6fb5be92df732af18b08b1e052f84cc2f9d (patch)
treedfe58f501122beec786322d30d04efacf8c90259 /src/cryptonote_core
parentMerge pull request #221 (diff)
downloadmonero-9193d6fb5be92df732af18b08b1e052f84cc2f9d.tar.xz
Daemonize changes pulled in -- daemon builds
many RPC functions added by the daemonize changes (and related changes on the upstream dev branch that were not merged) were commented out (apart from return). Other than that, this *should* work...at any rate, it builds, and that's something.
Diffstat (limited to 'src/cryptonote_core')
-rw-r--r--src/cryptonote_core/cryptonote_core.cpp36
-rw-r--r--src/cryptonote_core/cryptonote_core.h5
2 files changed, 33 insertions, 8 deletions
diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp
index b8b5dc008..39c7fe925 100644
--- a/src/cryptonote_core/cryptonote_core.cpp
+++ b/src/cryptonote_core/cryptonote_core.cpp
@@ -42,6 +42,8 @@ using namespace epee;
#include "cryptonote_format_utils.h"
#include "misc_language.h"
#include <csignal>
+#include "daemon/command_line_args.h"
+#include "cryptonote_core/checkpoints_create.h"
DISABLE_VS_WARNINGS(4355)
@@ -112,10 +114,32 @@ namespace cryptonote
{
}
//-----------------------------------------------------------------------------------------------
- bool core::handle_command_line(const boost::program_options::variables_map& vm, bool testnet)
+ bool core::handle_command_line(const boost::program_options::variables_map& vm)
{
- auto data_dir_arg = testnet ? command_line::arg_testnet_data_dir : command_line::arg_data_dir;
+ m_testnet = command_line::get_arg(vm, daemon_args::arg_testnet_on);
+
+ auto data_dir_arg = m_testnet ? command_line::arg_testnet_data_dir : command_line::arg_data_dir;
m_config_folder = command_line::get_arg(vm, data_dir_arg);
+
+ auto data_dir = boost::filesystem::path(m_config_folder);
+
+ if (!m_testnet)
+ {
+ cryptonote::checkpoints checkpoints;
+ if (!cryptonote::create_checkpoints(checkpoints))
+ {
+ throw std::runtime_error("Failed to initialize checkpoints");
+ }
+ set_checkpoints(std::move(checkpoints));
+
+ boost::filesystem::path json(JSON_HASH_FILE_NAME);
+ boost::filesystem::path checkpoint_json_hashfile_fullpath = data_dir / json;
+
+ set_checkpoints_file_path(checkpoint_json_hashfile_fullpath.string());
+ }
+
+
+ set_enforce_dns_checkpoints(command_line::get_arg(vm, daemon_args::arg_dns_checkpoints));
return true;
}
//-----------------------------------------------------------------------------------------------
@@ -154,21 +178,21 @@ namespace cryptonote
return m_blockchain_storage.get_alternative_blocks_count();
}
//-----------------------------------------------------------------------------------------------
- bool core::init(const boost::program_options::variables_map& vm, bool testnet)
+ bool core::init(const boost::program_options::variables_map& vm)
{
- bool r = handle_command_line(vm, testnet);
+ bool r = handle_command_line(vm);
r = m_mempool.init(m_config_folder);
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize memory pool");
- r = m_blockchain_storage.init(m_config_folder, testnet);
+ r = m_blockchain_storage.init(m_config_folder, m_testnet);
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize blockchain storage");
// load json & DNS checkpoints, and verify them
// with respect to what blocks we already have
CHECK_AND_ASSERT_MES(update_checkpoints(), false, "One or more checkpoints loaded from json or dns conflicted with existing checkpoints.");
- r = m_miner.init(vm, testnet);
+ r = m_miner.init(vm, m_testnet);
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize blockchain storage");
return load_state_data();
diff --git a/src/cryptonote_core/cryptonote_core.h b/src/cryptonote_core/cryptonote_core.h
index 748f2b665..12405e080 100644
--- a/src/cryptonote_core/cryptonote_core.h
+++ b/src/cryptonote_core/cryptonote_core.h
@@ -72,7 +72,7 @@ namespace cryptonote
miner& get_miner(){return m_miner;}
static void init_options(boost::program_options::options_description& desc);
- bool init(const boost::program_options::variables_map& vm, bool testnet);
+ bool init(const boost::program_options::variables_map& vm);
bool set_genesis_block(const block& b);
bool deinit();
uint64_t get_current_blockchain_height();
@@ -142,7 +142,7 @@ namespace cryptonote
bool check_tx_ring_signature(const txin_to_key& tx, const crypto::hash& tx_prefix_hash, const std::vector<crypto::signature>& sig);
bool is_tx_spendtime_unlocked(uint64_t unlock_time);
bool update_miner_block_template();
- bool handle_command_line(const boost::program_options::variables_map& vm, bool testnet);
+ bool handle_command_line(const boost::program_options::variables_map& vm);
bool on_update_blocktemplate_interval();
bool check_tx_inputs_keyimages_diff(const transaction& tx);
void graceful_exit();
@@ -163,6 +163,7 @@ namespace cryptonote
uint64_t m_target_blockchain_height;
+ bool m_testnet;
std::string m_checkpoints_path;
time_t m_last_dns_checkpoints_update;
time_t m_last_json_checkpoints_update;