aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2018-01-17 10:47:05 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2018-01-17 11:12:26 +0000
commit42f86624a301854ea2b5902637c89ffdcfdf770f (patch)
treebe52bddc839ee2c977aded5b55647a44c9e68528 /src/cryptonote_core
parentMerge pull request #3091 (diff)
downloadmonero-42f86624a301854ea2b5902637c89ffdcfdf770f.tar.xz
rpc: expose recent median block size in getinfo
Diffstat (limited to 'src/cryptonote_core')
-rw-r--r--src/cryptonote_core/blockchain.cpp9
-rw-r--r--src/cryptonote_core/blockchain.h8
2 files changed, 16 insertions, 1 deletions
diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp
index 4af987c3b..c3e0a0c60 100644
--- a/src/cryptonote_core/blockchain.cpp
+++ b/src/cryptonote_core/blockchain.cpp
@@ -133,7 +133,7 @@ static const uint64_t testnet_hard_fork_version_1_till = 624633;
//------------------------------------------------------------------
Blockchain::Blockchain(tx_memory_pool& tx_pool) :
- m_db(), m_tx_pool(tx_pool), m_hardfork(NULL), m_timestamps_and_difficulties_height(0), m_current_block_cumul_sz_limit(0),
+ m_db(), m_tx_pool(tx_pool), m_hardfork(NULL), m_timestamps_and_difficulties_height(0), m_current_block_cumul_sz_limit(0), m_current_block_cumul_sz_median(0),
m_enforce_dns_checkpoints(false), m_max_prepare_blocks_threads(4), m_db_blocks_per_sync(1), m_db_sync_mode(db_async), m_db_default_sync(false), m_fast_sync(true), m_show_time_stats(false), m_sync_counter(0), m_cancel(false)
{
LOG_PRINT_L3("Blockchain::" << __func__);
@@ -1101,6 +1101,12 @@ uint64_t Blockchain::get_current_cumulative_blocksize_limit() const
return m_current_block_cumul_sz_limit;
}
//------------------------------------------------------------------
+uint64_t Blockchain::get_current_cumulative_blocksize_median() const
+{
+ LOG_PRINT_L3("Blockchain::" << __func__);
+ return m_current_block_cumul_sz_median;
+}
+//------------------------------------------------------------------
//TODO: This function only needed minor modification to work with BlockchainDB,
// and *works*. As such, to reduce the number of things that might break
// in moving to BlockchainDB, this function will remain otherwise
@@ -3518,6 +3524,7 @@ bool Blockchain::update_next_cumulative_size_limit()
get_last_n_blocks_sizes(sz, CRYPTONOTE_REWARD_BLOCKS_WINDOW);
uint64_t median = epee::misc_utils::median(sz);
+ m_current_block_cumul_sz_median = median;
if(median <= full_reward_zone)
median = full_reward_zone;
diff --git a/src/cryptonote_core/blockchain.h b/src/cryptonote_core/blockchain.h
index 25e573a2c..113c0bf3e 100644
--- a/src/cryptonote_core/blockchain.h
+++ b/src/cryptonote_core/blockchain.h
@@ -637,6 +637,13 @@ namespace cryptonote
uint64_t get_current_cumulative_blocksize_limit() const;
/**
+ * @brief gets the blocksize median based on recent blocks (same window as for the limit)
+ *
+ * @return the median
+ */
+ uint64_t get_current_cumulative_blocksize_median() const;
+
+ /**
* @brief gets the difficulty of the block with a given height
*
* @param i the height
@@ -962,6 +969,7 @@ namespace cryptonote
// main chain
transactions_container m_transactions;
size_t m_current_block_cumul_sz_limit;
+ size_t m_current_block_cumul_sz_median;
// metadata containers
std::unordered_map<crypto::hash, std::unordered_map<crypto::key_image, std::vector<output_data_t>>> m_scan_table;