aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2015-12-31 17:09:00 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2015-12-31 17:09:00 +0000
commit1e07110a7aabf7374f1b1197a1fbbac614acb386 (patch)
treef6cf40d5849796c19f27792390e979539bace840 /src
parentMerge pull request #584 (diff)
downloadmonero-1e07110a7aabf7374f1b1197a1fbbac614acb386.tar.xz
Nicer looking exit when blockchain.bin is found
Do not print the exception message, and write the important bit in red, since people will only read the last line otherwise.
Diffstat (limited to 'src')
-rw-r--r--src/cryptonote_core/cryptonote_core.cpp48
-rw-r--r--src/daemon/core.h5
-rw-r--r--src/daemon/daemon.cpp3
3 files changed, 25 insertions, 31 deletions
diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp
index 2fa339c31..29ea7c57b 100644
--- a/src/cryptonote_core/cryptonote_core.cpp
+++ b/src/cryptonote_core/cryptonote_core.cpp
@@ -231,6 +231,26 @@ namespace cryptonote
bool fast_sync = command_line::get_arg(vm, command_line::arg_fast_block_sync) != 0;
uint64_t blocks_threads = command_line::get_arg(vm, command_line::arg_prep_blocks_threads);
+ boost::filesystem::path folder(m_config_folder);
+ if (m_fakechain)
+ folder /= "fake";
+ //
+ // check for blockchain.bin
+ try
+ {
+ const boost::filesystem::path old_files = folder;
+ if (boost::filesystem::exists(old_files / "blockchain.bin"))
+ {
+ LOG_PRINT_RED_L0("Found old-style blockchain.bin in " << old_files.string());
+ LOG_PRINT_RED_L0("Monero now uses a new format. You can either remove blockchain.bin to start syncing");
+ LOG_PRINT_RED_L0("the blockchain anew, or use blockchain_export and blockchain_import to convert your");
+ LOG_PRINT_RED_L0("existing blockchain.bin to the new format. See README.md for instructions.");
+ return false;
+ }
+ }
+ // folder might not be a directory, etc, etc
+ catch (...) { }
+
BlockchainDB* db = nullptr;
uint64_t BDB_FAST_MODE = 0;
uint64_t BDB_FASTEST_MODE = 0;
@@ -257,37 +277,9 @@ namespace cryptonote
return false;
}
- boost::filesystem::path folder(m_config_folder);
-
- if (m_fakechain)
- folder /= "fake";
-
folder /= db->get_db_name();
-
LOG_PRINT_L0("Loading blockchain from folder " << folder.string() << " ...");
- // check for blockchain.bin
- bool old_blockchain_found = false;
- try
- {
- const boost::filesystem::path old_files = folder.parent_path();
- if (boost::filesystem::exists(folder.parent_path() / "blockchain.bin"))
- {
- LOG_PRINT_L0("Found old-style blockchain.bin in " << old_files.string());
- LOG_PRINT_L0("Monero now uses a new format. You can either remove blockchain.bin to start syncing");
- LOG_PRINT_L0("the blockchain anew, or use blockchain_export and blockchain_import to convert your");
- LOG_PRINT_L0("existing blockchain.bin to the new format. See README.md for instructions.");
- old_blockchain_found = true;
- }
- }
- // folder might not be a directory, etc, etc
- catch (...) {}
-
- if (old_blockchain_found)
- {
- throw DB_ERROR("Database could not be opened");
- }
-
const std::string filename = folder.string();
// temporarily default to fastest:async:1000
blockchain_db_sync_mode sync_mode = db_async;
diff --git a/src/daemon/core.h b/src/daemon/core.h
index ea76289dd..2208ef25a 100644
--- a/src/daemon/core.h
+++ b/src/daemon/core.h
@@ -66,15 +66,16 @@ public:
m_core.set_cryptonote_protocol(&protocol);
}
- void run()
+ bool run()
{
//initialize core here
LOG_PRINT_L0("Initializing core...");
if (!m_core.init(m_vm_HACK))
{
- throw std::runtime_error("Failed to initialize core");
+ return false;
}
LOG_PRINT_L0("Core initialized OK");
+ return true;
}
cryptonote::core & get()
diff --git a/src/daemon/daemon.cpp b/src/daemon/daemon.cpp
index 6093ecdf8..ed6a66722 100644
--- a/src/daemon/daemon.cpp
+++ b/src/daemon/daemon.cpp
@@ -118,7 +118,8 @@ bool t_daemon::run(bool interactive)
try
{
- mp_internals->core.run();
+ if (!mp_internals->core.run())
+ return false;
mp_internals->rpc.run();
daemonize::t_command_server* rpc_commands;