74 std::shared_ptr<DbStorage>
db_;
std::deque< uint16_t > dag_efficiencies_
Definition sortition_params_manager.hpp:75
SortitionParams getSortitionParams(std::optional< PbftPeriod > for_period={}) const
Definition sortition_params_manager.cpp:66
SortitionParamsChange()=default
SortitionParamsChange calculateChange(PbftPeriod period)
Definition sortition_params_manager.cpp:221
uint16_t calculateDagEfficiency(const PeriodData &block) const
Definition sortition_params_manager.cpp:79
VrfParams vrf_params
Definition sortition_params_manager.hpp:20
int32_t getNewUpperRange(uint16_t efficiency) const
Definition sortition_params_manager.cpp:179
void cleanup()
Definition sortition_params_manager.cpp:96
std::shared_ptr< DbStorage > db_
Definition sortition_params_manager.hpp:74
std::deque< SortitionParamsChange > params_changes_
Definition sortition_params_manager.hpp:77
uint16_t interval_efficiency
Definition sortition_params_manager.hpp:21
void pbftBlockPushed(const PeriodData &block, Batch &batch, PbftPeriod non_empty_pbft_chain_size)
Definition sortition_params_manager.cpp:103
bytes rlp() const
Definition sortition_params_manager.cpp:8
uint32_t ignored_efficiency_counter_
Definition sortition_params_manager.hpp:76
PbftPeriod period
Definition sortition_params_manager.hpp:19
static SortitionParamsChange from_rlp(const dev::RLP &rlp)
Definition sortition_params_manager.cpp:18
SortitionConfig config_
Definition sortition_params_manager.hpp:73
uint16_t averageDagEfficiency()
Definition sortition_params_manager.cpp:91
logger::Logger logger_
Definition sortition_params_manager.hpp:83
EfficienciesMap getEfficienciesToUpperRange(uint16_t efficiency, int32_t threshold) const
Definition sortition_params_manager.cpp:163
const std::deque< SortitionParamsChange > & getParamsChanges() const
Definition sortition_params_manager.hpp:70
SortitionParamsManager class calculates DAG efficiency and makes VDF difficulty adjustments.
Definition sortition_params_manager.hpp:36
Changing vrf params for DAG blocks generation.
Definition sortition_params_manager.hpp:18
PeriodData class is for block execution, that includes PBFT block, certify votes, DAG blocks,...
Definition period_data.hpp:26
std::shared_ptr< spdlog::logger > Logger
Definition logging.hpp:12
rocksdb::WriteBatch Batch
Definition storage.hpp:70
std::vector< byte > bytes
Definition types.hpp:53
EthBlockNumber PbftPeriod
Definition types.hpp:25
std::map< uint16_t, int32_t > EfficienciesMap
Definition sortition_params_manager.hpp:9