diff options
author | Riccardo Spagni <ric@spagni.net> | 2016-02-08 19:52:36 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2016-02-08 19:52:36 +0200 |
commit | 24ccdb9b6e674fa8b41e76b0f9c956b81f2e075a (patch) | |
tree | 498d7056b539a76605d40c952002c336187a42fd /src/blockchain_db/blockchain_db.cpp | |
parent | Merge pull request #644 (diff) | |
parent | Blockchain: Update comments on removing block (diff) | |
download | monero-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.cpp | 16 |
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) |