Merge pull request #531
cbded43core_tests: fix ring_signature_1 tests (moneromooo-monero)c3d208fcore_tests: bump default test fee to 0.02 monero (moneromooo-monero)10da0a0add a --fakechain argument for tests (moneromooo-monero)eee44e6unit_tests: fix block reward test using post hard fork settings (moneromooo-monero)595893fblockchain: log block (not chain) height in "BLOCK SUCCESFULLY ADDED" (moneromooo-monero)2369968blockchain: fix off by one in get_blocks (moneromooo-monero)8af913adb_lmdb: implement BlockchainLMDB::reset (moneromooo-monero)4833f4fdb_bdb: implement BlockchainBDB::reset (moneromooo-monero)18bf06etx_pool: fix "minumim" typo in message (moneromooo-monero)44f1267tests: fix a typo in test name (moneromooo-monero)1494557db_lmdb: create all needed directories, not just the leaf one (moneromooo-monero)015b68adb_bdb: create all needed directories, not just the leaf one (moneromooo-monero)f141869tests: remove data-dir argument registration (moneromooo-monero)
This commit is contained in:
@@ -759,7 +759,7 @@ void BlockchainBDB::open(const std::string& filename, const int db_flags)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!boost::filesystem::create_directory(direc))
|
||||
if (!boost::filesystem::create_directories(direc))
|
||||
throw0(DB_OPEN_FAILURE(std::string("Failed to create directory ").append(filename).c_str()));
|
||||
}
|
||||
|
||||
@@ -1042,7 +1042,46 @@ void BlockchainBDB::sync()
|
||||
void BlockchainBDB::reset()
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainBDB::" << __func__);
|
||||
// TODO: this
|
||||
check_open();
|
||||
|
||||
bdb_txn_safe txn;
|
||||
if (m_env->txn_begin(NULL, txn, 0))
|
||||
throw0(DB_ERROR("Failed to create a transaction for the db"));
|
||||
m_write_txn = &txn;
|
||||
try
|
||||
{
|
||||
uint32_t count;
|
||||
|
||||
m_blocks->truncate(*m_write_txn, &count, 0);
|
||||
m_block_heights->truncate(*m_write_txn, &count, 0);
|
||||
m_block_hashes->truncate(*m_write_txn, &count, 0);
|
||||
m_block_timestamps->truncate(*m_write_txn, &count, 0);
|
||||
m_block_sizes->truncate(*m_write_txn, &count, 0);
|
||||
m_block_diffs->truncate(*m_write_txn, &count, 0);
|
||||
m_block_coins->truncate(*m_write_txn, &count, 0);
|
||||
|
||||
m_txs->truncate(*m_write_txn, &count, 0);
|
||||
m_tx_unlocks->truncate(*m_write_txn, &count, 0);
|
||||
m_tx_heights->truncate(*m_write_txn, &count, 0);
|
||||
m_tx_outputs->truncate(*m_write_txn, &count, 0);
|
||||
|
||||
m_output_txs->truncate(*m_write_txn, &count, 0);
|
||||
m_output_indices->truncate(*m_write_txn, &count, 0);
|
||||
m_output_amounts->truncate(*m_write_txn, &count, 0);
|
||||
m_output_keys->truncate(*m_write_txn, &count, 0);
|
||||
|
||||
m_spent_keys->truncate(*m_write_txn, &count, 0);
|
||||
|
||||
m_hf_starting_heights->truncate(*m_write_txn, &count, 0);
|
||||
m_hf_versions->truncate(*m_write_txn, &count, 0);
|
||||
|
||||
m_properties->truncate(*m_write_txn, &count, 0);
|
||||
}
|
||||
catch (const std::exception& e)
|
||||
{
|
||||
throw0(DB_ERROR(std::string("Failed to reset database: ").append(e.what()).c_str()));
|
||||
}
|
||||
m_write_txn = NULL;
|
||||
}
|
||||
|
||||
std::vector<std::string> BlockchainBDB::get_filenames() const
|
||||
|
||||
@@ -943,7 +943,7 @@ void BlockchainLMDB::open(const std::string& filename, const int mdb_flags)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!boost::filesystem::create_directory(direc))
|
||||
if (!boost::filesystem::create_directories(direc))
|
||||
throw0(DB_OPEN_FAILURE(std::string("Failed to create directory ").append(filename).c_str()));
|
||||
}
|
||||
|
||||
@@ -1159,7 +1159,33 @@ void BlockchainLMDB::sync()
|
||||
void BlockchainLMDB::reset()
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||
// TODO: this
|
||||
check_open();
|
||||
|
||||
mdb_txn_safe txn;
|
||||
if (mdb_txn_begin(m_env, NULL, 0, txn))
|
||||
throw0(DB_ERROR("Failed to create a transaction for the db"));
|
||||
mdb_drop(txn, m_blocks, 0);
|
||||
mdb_drop(txn, m_block_timestamps, 0);
|
||||
mdb_drop(txn, m_block_heights, 0);
|
||||
mdb_drop(txn, m_block_hashes, 0);
|
||||
mdb_drop(txn, m_block_sizes, 0);
|
||||
mdb_drop(txn, m_block_diffs, 0);
|
||||
mdb_drop(txn, m_block_coins, 0);
|
||||
mdb_drop(txn, m_txs, 0);
|
||||
mdb_drop(txn, m_tx_unlocks, 0);
|
||||
mdb_drop(txn, m_tx_heights, 0);
|
||||
mdb_drop(txn, m_tx_outputs, 0);
|
||||
mdb_drop(txn, m_output_txs, 0);
|
||||
mdb_drop(txn, m_output_indices, 0);
|
||||
mdb_drop(txn, m_output_amounts, 0);
|
||||
mdb_drop(txn, m_output_keys, 0);
|
||||
mdb_drop(txn, m_spent_keys, 0);
|
||||
mdb_drop(txn, m_hf_starting_heights, 0);
|
||||
mdb_drop(txn, m_hf_versions, 0);
|
||||
mdb_drop(txn, m_properties, 0);
|
||||
txn.commit();
|
||||
m_height = 0;
|
||||
m_num_outputs = 0;
|
||||
}
|
||||
|
||||
std::vector<std::string> BlockchainLMDB::get_filenames() const
|
||||
|
||||
Reference in New Issue
Block a user