Electroneum
Public Member Functions | Private Member Functions | Private Attributes | List of all members
electroneum::basic::Validators Class Reference

#include <validators.h>

Collaboration diagram for electroneum::basic::Validators:
Collaboration graph
[legend]

Public Member Functions

 Validators (cryptonote::BlockchainDB &db, cryptonote::i_cryptonote_protocol *pprotocol, bool testnet)
 
vector< string > getApplicablePublicKeys (uint64_t height, bool convert_to_byte=false)
 
Validator getValidatorByKey (string key)
 
bool loadValidatorsList ()
 
string getSerializedValidatorList ()
 
list_update_outcome setValidatorsList (const string &v_list, bool saveToDB, bool isEmergencyUpdate=false)
 
bool isValid ()
 
bool isEnabled ()
 
void enable ()
 
void on_idle ()
 

Private Member Functions

void add (const string &key, uint64_t startHeight, uint64_t endHeight, string name="", string domain="", string page_link="")
 
void addOrUpdate (const string &key, uint64_t startHeight, uint64_t endHeight, string name="", string domain="", string page_link="")
 
void update (const string &key, uint64_t endHeight, string name="", string domain="", string page_link="")
 
std::unique_ptr< Validatorfind (const string &key)
 
bool exists (const string &key)
 
list_update_outcome validate_and_update (v_list_struct res, bool saveToDB, bool isEmergencyUpdate=false)
 
ValidatorsState validate_expiration ()
 

Private Attributes

vector< std::unique_ptr< Validator > > list
 
uint64_t current_list_timestamp
 
epee::net_utils::http::http_simple_client http_client
 
string endpoint_addr = "vl.electroneum.com"
 
string endpoint_port = "80"
 
string testnet_endpoint_addr = "vl.thesecurityteam.rocks"
 
string testnet_endpoint_port = "80"
 
milliseconds endpoint_timeout = milliseconds(10000)
 
string serialized_v_list
 
ValidatorsState status = ValidatorsState::Invalid
 
time_t last_updated
 
uint32_t timeout = 60*60*12
 
uint32_t timeout_grace_period = this->timeout * 0.1
 
once_a_time_seconds< 60, truem_load_validators_interval
 
cryptonote::BlockchainDBm_db
 
bool testnet = false
 
cryptonote::i_cryptonote_protocolm_p2p
 

Constructor & Destructor Documentation

◆ Validators()

electroneum::basic::Validators::Validators ( cryptonote::BlockchainDB db,
cryptonote::i_cryptonote_protocol pprotocol,
bool  testnet 
)
inlineexplicit

Member Function Documentation

◆ add()

void electroneum::basic::Validators::add ( const string &  key,
uint64_t  startHeight,
uint64_t  endHeight,
string  name = "",
string  domain = "",
string  page_link = "" 
)
private

◆ addOrUpdate()

void electroneum::basic::Validators::addOrUpdate ( const string &  key,
uint64_t  startHeight,
uint64_t  endHeight,
string  name = "",
string  domain = "",
string  page_link = "" 
)
private

◆ enable()

void electroneum::basic::Validators::enable ( )
inline

◆ exists()

bool electroneum::basic::Validators::exists ( const string &  key)
private

◆ find()

std::unique_ptr< Validator > electroneum::basic::Validators::find ( const string &  key)
private

◆ getApplicablePublicKeys()

vector<string> electroneum::basic::Validators::getApplicablePublicKeys ( uint64_t  height,
bool  convert_to_byte = false 
)
inline

◆ getSerializedValidatorList()

string electroneum::basic::Validators::getSerializedValidatorList ( )
inline

◆ getValidatorByKey()

Validator electroneum::basic::Validators::getValidatorByKey ( string  key)
inline

◆ isEnabled()

bool electroneum::basic::Validators::isEnabled ( )
inline

◆ isValid()

bool electroneum::basic::Validators::isValid ( )
inline

◆ loadValidatorsList()

bool electroneum::basic::Validators::loadValidatorsList ( )
inline

◆ on_idle()

void electroneum::basic::Validators::on_idle ( )
inline

◆ setValidatorsList()

list_update_outcome electroneum::basic::Validators::setValidatorsList ( const string &  v_list,
bool  saveToDB,
bool  isEmergencyUpdate = false 
)
inline

◆ update()

void electroneum::basic::Validators::update ( const string &  key,
uint64_t  endHeight,
string  name = "",
string  domain = "",
string  page_link = "" 
)
private

◆ validate_and_update()

list_update_outcome electroneum::basic::Validators::validate_and_update ( v_list_struct  res,
bool  saveToDB,
bool  isEmergencyUpdate = false 
)
private

◆ validate_expiration()

ValidatorsState electroneum::basic::Validators::validate_expiration ( )
private

Member Data Documentation

◆ current_list_timestamp

uint64_t electroneum::basic::Validators::current_list_timestamp
private

◆ endpoint_addr

string electroneum::basic::Validators::endpoint_addr = "vl.electroneum.com"
private

◆ endpoint_port

string electroneum::basic::Validators::endpoint_port = "80"
private

◆ endpoint_timeout

milliseconds electroneum::basic::Validators::endpoint_timeout = milliseconds(10000)
private

◆ http_client

epee::net_utils::http::http_simple_client electroneum::basic::Validators::http_client
private

◆ last_updated

time_t electroneum::basic::Validators::last_updated
private

◆ list

vector<std::unique_ptr<Validator> > electroneum::basic::Validators::list
private

◆ m_db

cryptonote::BlockchainDB& electroneum::basic::Validators::m_db
private

◆ m_load_validators_interval

once_a_time_seconds<60, true> electroneum::basic::Validators::m_load_validators_interval
private

◆ m_p2p

cryptonote::i_cryptonote_protocol* electroneum::basic::Validators::m_p2p
private

◆ serialized_v_list

string electroneum::basic::Validators::serialized_v_list
private

◆ status

ValidatorsState electroneum::basic::Validators::status = ValidatorsState::Invalid
private

◆ testnet

bool electroneum::basic::Validators::testnet = false
private

◆ testnet_endpoint_addr

string electroneum::basic::Validators::testnet_endpoint_addr = "vl.thesecurityteam.rocks"
private

◆ testnet_endpoint_port

string electroneum::basic::Validators::testnet_endpoint_port = "80"
private

◆ timeout

uint32_t electroneum::basic::Validators::timeout = 60*60*12
private

◆ timeout_grace_period

uint32_t electroneum::basic::Validators::timeout_grace_period = this->timeout * 0.1
private

The documentation for this class was generated from the following files: