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 | 50197b62a333b51fcbd318cf2e53220a9c7d744f (diff) | |
| parent | e298b14a55c7f5792481a488104e6358127b6aa3 (diff) | |
| download | monzero-core-24ccdb9b6e674fa8b41e76b0f9c956b81f2e075a.tar.gz monzero-core-24ccdb9b6e674fa8b41e76b0f9c956b81f2e075a.tar.xz monzero-core-24ccdb9b6e674fa8b41e76b0f9c956b81f2e075a.zip | |
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) |
