aboutsummaryrefslogtreecommitdiff
path: root/src/blockchain_db/blockchain_db.cpp
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2016-02-08 19:52:36 +0200
committerRiccardo Spagni <ric@spagni.net>2016-02-08 19:52:36 +0200
commit24ccdb9b6e674fa8b41e76b0f9c956b81f2e075a (patch)
tree498d7056b539a76605d40c952002c336187a42fd /src/blockchain_db/blockchain_db.cpp
parentMerge pull request #644 (diff)
parentBlockchain: Update comments on removing block (diff)
downloadmonero-24ccdb9b6e674fa8b41e76b0f9c956b81f2e075a.tar.xz
Merge pull request #650
e298b14 Blockchain: Update comments on removing block (warptangent) b368e29 blockchain_import: Get hard fork version from HardFork (warptangent) e02577f Move HardFork DB update to BlockchainDB::add_block() (warptangent) 3800875 Make HardFork object available to BlockchainDB and derived DB implementations (warptangent) fd46c96 BlockchainDB/LMDB: Refactor block-scope DB txn handling for add block (warptangent) f3a6000 BlockchainDB/LMDB/BDB: Extract DB txn functions for block add/remove (warptangent) f47d5b0 BlockchainLMDB: Allow two HardFork functions to update DB during block add (warptangent) 15ee0be BlockchainLMDB: extract txn macros used during block add/remove (warptangent)
Diffstat (limited to 'src/blockchain_db/blockchain_db.cpp')
-rw-r--r--src/blockchain_db/blockchain_db.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/blockchain_db/blockchain_db.cpp b/src/blockchain_db/blockchain_db.cpp
index 3737dfc4f..270b5399e 100644
--- a/src/blockchain_db/blockchain_db.cpp
+++ b/src/blockchain_db/blockchain_db.cpp
@@ -99,6 +99,8 @@ uint64_t BlockchainDB::add_block( const block& blk
, const std::vector<transaction>& txs
)
{
+ block_txn_start();
+
TIME_MEASURE_START(time1);
crypto::hash blk_hash = get_block_hash(blk);
TIME_MEASURE_FINISH(time1);
@@ -125,9 +127,21 @@ uint64_t BlockchainDB::add_block( const block& blk
TIME_MEASURE_FINISH(time1);
time_add_transaction += time1;
+ // DB's new height based on this added block is only incremented after this
+ // function returns, so height() here returns the new previous height.
+ uint64_t prev_height = height();
+ m_hardfork->add(blk, prev_height);
+
+ block_txn_stop();
+
++num_calls;
- return height();
+ return prev_height;
+}
+
+void BlockchainDB::set_hard_fork(HardFork*& hf)
+{
+ m_hardfork = hf;
}
void BlockchainDB::pop_block(block& blk, std::vector<transaction>& txs)