|
|
|
@ -1073,8 +1073,10 @@ void BlockchainBDB::sync()
|
|
|
|
|
|
|
|
|
|
m_spent_keys->sync(0);
|
|
|
|
|
|
|
|
|
|
m_hf_starting_heights->sync(0);
|
|
|
|
|
m_hf_versions->sync(0);
|
|
|
|
|
if (m_hf_starting_heights != nullptr)
|
|
|
|
|
m_hf_starting_heights->sync(0);
|
|
|
|
|
if (m_hf_versions != nullptr)
|
|
|
|
|
m_hf_versions->sync(0);
|
|
|
|
|
|
|
|
|
|
m_properties->sync(0);
|
|
|
|
|
}
|
|
|
|
@ -2213,7 +2215,37 @@ void BlockchainBDB::check_hard_fork_info()
|
|
|
|
|
|
|
|
|
|
void BlockchainBDB::drop_hard_fork_info()
|
|
|
|
|
{
|
|
|
|
|
/* TODO */
|
|
|
|
|
LOG_PRINT_L3("BlockchainBDB::" << __func__);
|
|
|
|
|
check_open();
|
|
|
|
|
|
|
|
|
|
bdb_txn_safe txn;
|
|
|
|
|
bdb_txn_safe* txn_ptr = &txn;
|
|
|
|
|
if (m_write_txn)
|
|
|
|
|
txn_ptr = m_write_txn;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (m_env->txn_begin(NULL, txn, 0))
|
|
|
|
|
throw0(DB_ERROR("Failed to create a transaction for the db"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
m_hf_starting_heights->close(0);
|
|
|
|
|
m_hf_versions->close(0);
|
|
|
|
|
m_hf_starting_heights = nullptr;
|
|
|
|
|
m_hf_versions = nullptr;
|
|
|
|
|
if (m_env->dbremove(*txn_ptr, BDB_HF_STARTING_HEIGHTS, NULL, 0) != 0)
|
|
|
|
|
LOG_ERROR("Error removing hf_starting_heights");
|
|
|
|
|
if (m_env->dbremove(*txn_ptr, BDB_HF_VERSIONS, NULL, 0) != 0)
|
|
|
|
|
LOG_ERROR("Error removing hf_versions");
|
|
|
|
|
|
|
|
|
|
if (!m_write_txn)
|
|
|
|
|
txn.commit();
|
|
|
|
|
}
|
|
|
|
|
catch (const std::exception& e)
|
|
|
|
|
{
|
|
|
|
|
throw0(DB_ERROR(std::string("Failed to drop hard fork info: ").append(e.what()).c_str()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void BlockchainBDB::set_hard_fork_version(uint64_t height, uint8_t version)
|
|
|
|
|