save some database calls when getting top block hash and height
This commit is contained in:
@@ -1052,9 +1052,11 @@ public:
|
||||
*
|
||||
* The subclass should return the hash of the most recent block
|
||||
*
|
||||
* @param block_height if non NULL, returns the height of that block (ie, the blockchain height minus 1)
|
||||
*
|
||||
* @return the top block's hash
|
||||
*/
|
||||
virtual crypto::hash top_block_hash() const = 0;
|
||||
virtual crypto::hash top_block_hash(uint64_t *block_height = NULL) const = 0;
|
||||
|
||||
/**
|
||||
* @brief fetch the top block
|
||||
|
||||
@@ -2582,11 +2582,13 @@ std::vector<crypto::hash> BlockchainLMDB::get_hashes_range(const uint64_t& h1, c
|
||||
return v;
|
||||
}
|
||||
|
||||
crypto::hash BlockchainLMDB::top_block_hash() const
|
||||
crypto::hash BlockchainLMDB::top_block_hash(uint64_t *block_height) const
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||
check_open();
|
||||
uint64_t m_height = height();
|
||||
if (block_height)
|
||||
*block_height = m_height - 1;
|
||||
if (m_height != 0)
|
||||
{
|
||||
return get_block_hash_from_height(m_height - 1);
|
||||
|
||||
@@ -233,7 +233,7 @@ public:
|
||||
|
||||
virtual std::vector<crypto::hash> get_hashes_range(const uint64_t& h1, const uint64_t& h2) const;
|
||||
|
||||
virtual crypto::hash top_block_hash() const;
|
||||
virtual crypto::hash top_block_hash(uint64_t *block_height = NULL) const;
|
||||
|
||||
virtual block get_top_block() const;
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ public:
|
||||
virtual crypto::hash get_block_hash_from_height(const uint64_t& height) const { return crypto::hash(); }
|
||||
virtual std::vector<cryptonote::block> get_blocks_range(const uint64_t& h1, const uint64_t& h2) const { return std::vector<cryptonote::block>(); }
|
||||
virtual std::vector<crypto::hash> get_hashes_range(const uint64_t& h1, const uint64_t& h2) const { return std::vector<crypto::hash>(); }
|
||||
virtual crypto::hash top_block_hash() const { return crypto::hash(); }
|
||||
virtual crypto::hash top_block_hash(uint64_t *block_height = NULL) const { if (block_height) *block_height = 0; return crypto::hash(); }
|
||||
virtual cryptonote::block get_top_block() const { return cryptonote::block(); }
|
||||
virtual uint64_t height() const { return 1; }
|
||||
virtual bool tx_exists(const crypto::hash& h) const { return false; }
|
||||
|
||||
Reference in New Issue
Block a user