23 std::vector<BlockStats>
processStats(
const PeriodData& current_blk,
const std::vector<gas_t>& trxs_gas_used,
29 void clear(uint64_t current_period);
53 std::shared_ptr<DbStorage>
db_;
Definition: block_stats.hpp:14
class that is managing rewards stats processing and hardforks(intervals changes) So intermediate bloc...
Definition: rewards_stats.hpp:13
std::vector< BlockStats > processStats(const PeriodData ¤t_blk, const std::vector< gas_t > &trxs_gas_used, Batch &write_batch)
processing passed block and returns stats that should be processed at this block
Definition: rewards_stats.cpp:69
void saveBlockStats(uint64_t number, const BlockStats &stats, Batch &write_batch)
saves stats to database to not lose this data in case of node restart
Definition: rewards_stats.cpp:30
std::unordered_map< PbftPeriod, BlockStats > blocks_stats_
Definition: rewards_stats.hpp:55
uint32_t getCurrentDistributionFrequency(uint64_t current_period) const
returns rewards distribution frequency for specified period
Definition: rewards_stats.cpp:36
void recoverFromDb(EthBlockNumber last_blk_num)
recover current interval stats from database
Definition: rewards_stats.cpp:17
Stats(uint32_t committee_size, const HardforksConfig &hardforks, std::shared_ptr< DbStorage > db, std::function< uint64_t(EthBlockNumber)> &&dpos_eligible_total_vote_count, EthBlockNumber last_blk_num=0)
Definition: rewards_stats.cpp:8
const uint32_t kCommitteeSize
Definition: rewards_stats.hpp:51
std::shared_ptr< DbStorage > db_
Definition: rewards_stats.hpp:53
void clear(uint64_t current_period)
called on start of new rewards interval. clears blocks_stats_ collection and removes all data saved i...
Definition: rewards_stats.cpp:45
BlockStats getBlockStats(const PeriodData ¤t_blk, const std::vector< gas_t > &trxs_fees)
Definition: rewards_stats.cpp:54
const std::function< uint64_t(EthBlockNumber)> dpos_eligible_total_vote_count_
Definition: rewards_stats.hpp:54
const HardforksConfig kHardforksConfig
Definition: rewards_stats.hpp:52
PeriodData class is for block execution, that includes PBFT block, certify votes, DAG blocks,...
Definition: period_data.hpp:25
Definition: block_stats.hpp:8
rocksdb::WriteBatch Batch
Definition: storage.hpp:73
uint64_t EthBlockNumber
Definition: types.hpp:23
Definition: hardfork.hpp:93