mirror of
https://github.com/monero-project/monero.git
synced 2025-07-31 22:58:41 -04:00
Steps toward multiple dbs available -- working
There will need to be some more refactoring for these changes to be considered complete/correct, but for now it's working. new daemon cli argument "--db-type", works for LMDB and BerkeleyDB. A good deal of refactoring is also present in this commit, namely Blockchain no longer instantiates BlockchainDB, but rather is passed a pointer to an already-instantiated BlockchainDB on init().
This commit is contained in:
parent
874f48bc82
commit
7b14d4a17f
13 changed files with 146 additions and 58 deletions
|
@ -70,6 +70,11 @@ namespace daemon_args
|
|||
, "checkpoints from DNS server will be enforced"
|
||||
, false
|
||||
};
|
||||
const command_line::arg_descriptor<std::string> arg_db_type = {
|
||||
"db-type"
|
||||
, "Specify database type"
|
||||
, "lmdb"
|
||||
};
|
||||
|
||||
} // namespace daemon_args
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "rpc/core_rpc_server.h"
|
||||
#include <boost/program_options.hpp>
|
||||
#include "daemon/command_line_args.h"
|
||||
#include "blockchain_db/db_types.h"
|
||||
|
||||
namespace po = boost::program_options;
|
||||
namespace bf = boost::filesystem;
|
||||
|
@ -78,6 +79,7 @@ int main(int argc, char const * argv[])
|
|||
command_line::add_arg(core_settings, daemon_args::arg_log_level);
|
||||
command_line::add_arg(core_settings, daemon_args::arg_testnet_on);
|
||||
command_line::add_arg(core_settings, daemon_args::arg_dns_checkpoints);
|
||||
command_line::add_arg(core_settings, daemon_args::arg_db_type);
|
||||
daemonizer::init_options(hidden_options, visible_options);
|
||||
daemonize::t_executor::init_options(core_settings);
|
||||
|
||||
|
@ -128,6 +130,19 @@ int main(int argc, char const * argv[])
|
|||
return 0;
|
||||
}
|
||||
|
||||
std::string db_type = command_line::get_arg(vm, daemon_args::arg_db_type);
|
||||
|
||||
// verify that blockchaindb type is valid
|
||||
if(cryptonote::blockchain_db_types.count(db_type) == 0)
|
||||
{
|
||||
std::cout << "Invalid database type (" << db_type << "), available types are:" << std::endl;
|
||||
for (const auto& type : cryptonote::blockchain_db_types)
|
||||
{
|
||||
std::cout << "\t" << type << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool testnet_mode = command_line::get_arg(vm, daemon_args::arg_testnet_on);
|
||||
|
||||
auto data_dir_arg = testnet_mode ? command_line::arg_testnet_data_dir : command_line::arg_data_dir;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue