74 std::shared_ptr<DbStorage>
db_;
Definition: FixedHash.h:35
SortitionParamsManager(const addr_t &node_addr, SortitionConfig sort_conf, std::shared_ptr< DbStorage > db)
Definition: sortition_params_manager.cpp:28
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:64
SortitionParamsChange()=default
SortitionParamsChange calculateChange(PbftPeriod period)
Definition: sortition_params_manager.cpp:219
uint16_t calculateDagEfficiency(const PeriodData &block) const
Definition: sortition_params_manager.cpp:77
VrfParams vrf_params
Definition: sortition_params_manager.hpp:20
const std::deque< SortitionParamsChange > & getParamsChanges() const
Definition: sortition_params_manager.hpp:70
int32_t getNewUpperRange(uint16_t efficiency) const
Definition: sortition_params_manager.cpp:177
void cleanup()
Definition: sortition_params_manager.cpp:94
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:101
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:89
EfficienciesMap getEfficienciesToUpperRange(uint16_t efficiency, int32_t threshold) const
Definition: sortition_params_manager.cpp:161
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:25
#define LOG_OBJECTS_DEFINE
Definition: logger.hpp:60
std::vector<::byte > bytes
Definition: Common.h:46
rocksdb::WriteBatch Batch
Definition: storage.hpp:73
EthBlockNumber PbftPeriod
Definition: types.hpp:24
std::map< uint16_t, int32_t > EfficienciesMap
Definition: sortition_params_manager.hpp:9
Definition: config.hpp:42
Definition: config.hpp:23