diff options
author | Riccardo Spagni <ric@spagni.net> | 2016-02-08 18:55:58 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2016-02-08 18:55:58 +0200 |
commit | 50197b62a333b51fcbd318cf2e53220a9c7d744f (patch) | |
tree | d7f2a08aa4cccbb8d9e038ff047e5ca3bea8eae2 /src/blockchain_db/lmdb/db_lmdb.cpp | |
parent | Merge pull request #648 (diff) | |
parent | blockchain_import: Add hard fork data for each block when verify mode is off (diff) | |
download | monero-50197b62a333b51fcbd318cf2e53220a9c7d744f.tar.xz |
Merge pull request #644
9d62c16 blockchain_import: Add hard fork data for each block when verify mode is off (warptangent)
7006b2e blockchain_utilities: Have fake_core create HardFork object (warptangent)
8f863e7 Blockchain: Optionally pass in HardFork object (warptangent)
f7e337e fake_core: Check if hard fork subdbs need reset at start (warptangent)
c657e77 blockchain_import: Add --drop-hard-fork command (warptangent)
4122439 blockchain_import: Add exception to log output (warptangent)
Diffstat (limited to 'src/blockchain_db/lmdb/db_lmdb.cpp')
-rw-r--r-- | src/blockchain_db/lmdb/db_lmdb.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/blockchain_db/lmdb/db_lmdb.cpp b/src/blockchain_db/lmdb/db_lmdb.cpp index c18db7724..5982b9d9a 100644 --- a/src/blockchain_db/lmdb/db_lmdb.cpp +++ b/src/blockchain_db/lmdb/db_lmdb.cpp @@ -2450,13 +2450,32 @@ void BlockchainLMDB::check_hard_fork_info() throw0(DB_ERROR("Failed to query m_hf_starting_heights")); if (db_stat1.ms_entries != db_stat2.ms_entries) { - mdb_drop(*txn_ptr, m_hf_starting_heights, 1); - mdb_drop(*txn_ptr, m_hf_versions, 1); + // Empty, but don't delete. This allows this function to be called after + // startup, after the subdbs have already been created, and rest of startup + // can proceed. If these don't exist, hard fork's init() will fail. + // + // If these are empty, hard fork's init() will repopulate the hard fork + // data. + mdb_drop(*txn_ptr, m_hf_starting_heights, 0); + mdb_drop(*txn_ptr, m_hf_versions, 0); } TXN_POSTFIX_SUCCESS(); } +void BlockchainLMDB::drop_hard_fork_info() +{ + LOG_PRINT_L3("BlockchainLMDB::" << __func__); + check_open(); + + TXN_PREFIX(0); + + mdb_drop(*txn_ptr, m_hf_starting_heights, 1); + mdb_drop(*txn_ptr, m_hf_versions, 1); + + TXN_POSTFIX_SUCCESS(); +} + void BlockchainLMDB::set_hard_fork_starting_height(uint8_t version, uint64_t height) { LOG_PRINT_L3("BlockchainLMDB::" << __func__); |