TARAXA
taraxa::DbStorage Class Reference

#include <storage.hpp>

Collaboration diagram for taraxa::DbStorage:

Classes

class  Column
 
class  Columns
 

Public Member Functions

auto handle (Column const &col) const
 
 DbStorage (fs::path const &base_path, uint32_t db_snapshot_each_n_pbft_block=0, uint32_t max_open_files=0, uint32_t db_max_snapshots=0, PbftPeriod db_revert_to_period=0, addr_t node_addr=addr_t(), bool rebuild=false)
 
 ~DbStorage ()
 
 DbStorage (const DbStorage &)=delete
 
 DbStorage (DbStorage &&)=delete
 
DbStorageoperator= (const DbStorage &)=delete
 
DbStorageoperator= (DbStorage &&)=delete
 
auto const & path () const
 
auto dbStoragePath () const
 
auto stateDbStoragePath () const
 
void commitWriteBatch (Batch &write_batch, rocksdb::WriteOptions const &opts)
 
void commitWriteBatch (Batch &write_batch)
 
void rebuildColumns (const rocksdb::Options &options)
 
bool createSnapshot (PbftPeriod period)
 
void deleteSnapshot (PbftPeriod period)
 
void recoverToPeriod (PbftPeriod period)
 
void loadSnapshots ()
 
void disableSnapshots ()
 
void enableSnapshots ()
 
void updateDbVersions ()
 
void deleteColumnData (const Column &c)
 
void replaceColumn (const Column &to_be_replaced_col, std::unique_ptr< rocksdb::ColumnFamilyHandle > &&replacing_col)
 
std::unique_ptr< rocksdb::ColumnFamilyHandle > copyColumn (rocksdb::ColumnFamilyHandle *orig_column, const std::string &new_col_name, bool move_data=false)
 
void removeTempFiles () const
 
void removeFilesWithPattern (const std::string &directory, const std::regex &pattern) const
 
void deleteTmpDirectories (const std::string &path) const
 
uint32_t getMajorVersion () const
 
std::unique_ptr< rocksdb::Iterator > getColumnIterator (const Column &c)
 
std::unique_ptr< rocksdb::Iterator > getColumnIterator (rocksdb::ColumnFamilyHandle *c)
 
void setGenesisHash (const h256 &genesis_hash)
 
std::optional< h256getGenesisHash ()
 
void savePeriodData (const PeriodData &period_data, Batch &write_batch)
 
void clearPeriodDataHistory (PbftPeriod period, uint64_t dag_level_to_keep)
 
dev::bytes getPeriodDataRaw (PbftPeriod period) const
 
std::optional< PbftBlockgetPbftBlock (PbftPeriod period) const
 
std::vector< std::shared_ptr< PbftVote > > getPeriodCertVotes (PbftPeriod period) const
 
blk_hash_t getPeriodBlockHash (PbftPeriod period) const
 
std::optional< SharedTransactionsgetPeriodTransactions (PbftPeriod period) const
 
std::vector< std::shared_ptr< PillarVote > > getPeriodPillarVotes (PbftPeriod period) const
 
void savePillarBlock (const std::shared_ptr< pillar_chain::PillarBlock > &pillar_block)
 
std::shared_ptr< pillar_chain::PillarBlockgetPillarBlock (PbftPeriod period) const
 
std::shared_ptr< pillar_chain::PillarBlockgetLatestPillarBlock () const
 
void saveOwnPillarBlockVote (const std::shared_ptr< PillarVote > &vote)
 
std::shared_ptr< PillarVotegetOwnPillarBlockVote () const
 
void saveCurrentPillarBlockData (const pillar_chain::CurrentPillarBlockDataDb &current_pillar_block_data)
 
std::optional< pillar_chain::CurrentPillarBlockDataDbgetCurrentPillarBlockData () const
 
void saveDagBlock (DagBlock const &blk, Batch *write_batch_p=nullptr)
 
std::shared_ptr< DagBlockgetDagBlock (blk_hash_t const &hash)
 
bool dagBlockInDb (blk_hash_t const &hash)
 
std::set< blk_hash_tgetBlocksByLevel (level_t level)
 
level_t getLastBlocksLevel () const
 
std::vector< std::shared_ptr< DagBlock > > getDagBlocksAtLevel (level_t level, int number_of_levels)
 
void updateDagBlockCounters (std::vector< DagBlock > blks)
 
std::map< level_t, std::vector< DagBlock > > getNonfinalizedDagBlocks ()
 
void removeDagBlockBatch (Batch &write_batch, blk_hash_t const &hash)
 
void removeDagBlock (blk_hash_t const &hash)
 
void saveSortitionParamsChange (PbftPeriod period, const SortitionParamsChange &params, Batch &batch)
 
std::deque< SortitionParamsChangegetLastSortitionParams (size_t count)
 
std::optional< SortitionParamsChangegetParamsChangeForPeriod (PbftPeriod period)
 
std::shared_ptr< TransactiongetTransaction (trx_hash_t const &hash)
 
SharedTransactions getAllNonfinalizedTransactions ()
 
bool transactionInDb (trx_hash_t const &hash)
 
bool transactionFinalized (trx_hash_t const &hash)
 
std::vector< bool > transactionsInDb (std::vector< trx_hash_t > const &trx_hashes)
 
std::vector< bool > transactionsFinalized (std::vector< trx_hash_t > const &trx_hashes)
 
void addTransactionToBatch (Transaction const &trx, Batch &write_batch)
 
void removeTransactionToBatch (trx_hash_t const &trx, Batch &write_batch)
 
void addTransactionLocationToBatch (Batch &write_batch, trx_hash_t const &trx, PbftPeriod period, uint32_t position, bool is_system=false)
 
std::optional< final_chain::TransactionLocationgetTransactionLocation (trx_hash_t const &hash) const
 
std::unordered_map< trx_hash_t, PbftPeriodgetAllTransactionPeriod ()
 
uint64_t getTransactionCount (PbftPeriod period) const
 
SharedTransactions getFinalizedTransactions (std::vector< trx_hash_t > const &trx_hashes) const
 Gets finalized transactions from provided hashes. More...
 
void addSystemTransactionToBatch (Batch &write_batch, SharedTransaction trx)
 
std::shared_ptr< TransactiongetSystemTransaction (const trx_hash_t &hash) const
 
void addPeriodSystemTransactions (Batch &write_batch, SharedTransactions trxs, PbftPeriod period)
 
std::vector< trx_hash_tgetPeriodSystemTransactionsHashes (PbftPeriod period) const
 
SharedTransactions getPeriodSystemTransactions (PbftPeriod period) const
 
uint32_t getPbftMgrField (PbftMgrField field)
 
void savePbftMgrField (PbftMgrField field, uint32_t value)
 
void addPbftMgrFieldToBatch (PbftMgrField field, uint32_t value, Batch &write_batch)
 
bool getPbftMgrStatus (PbftMgrStatus field)
 
void savePbftMgrStatus (PbftMgrStatus field, bool const &value)
 
void addPbftMgrStatusToBatch (PbftMgrStatus field, bool const &value, Batch &write_batch)
 
void saveCertVotedBlockInRound (PbftRound round, const std::shared_ptr< PbftBlock > &block)
 
std::optional< std::pair< PbftRound, std::shared_ptr< PbftBlock > > > getCertVotedBlockInRound () const
 
void removeCertVotedBlockInRound (Batch &write_batch)
 
std::optional< PbftBlockgetPbftBlock (blk_hash_t const &hash)
 
bool pbftBlockInDb (blk_hash_t const &hash)
 
void saveProposedPbftBlock (const std::shared_ptr< PbftBlock > &block)
 
void removeProposedPbftBlock (const blk_hash_t &block_hash, Batch &write_batch)
 
std::vector< std::shared_ptr< PbftBlock > > getProposedPbftBlocks ()
 
string getPbftHead (blk_hash_t const &hash)
 
void savePbftHead (blk_hash_t const &hash, string const &pbft_chain_head_str)
 
void addPbftHeadToBatch (taraxa::blk_hash_t const &head_hash, std::string const &head_str, Batch &write_batch)
 
uint64_t getStatusField (StatusDbField const &field)
 
void saveStatusField (StatusDbField const &field, uint64_t value)
 
void addStatusFieldToBatch (StatusDbField const &field, uint64_t value, Batch &write_batch)
 
void saveOwnVerifiedVote (const std::shared_ptr< PbftVote > &vote)
 
std::vector< std::shared_ptr< PbftVote > > getOwnVerifiedVotes ()
 
void clearOwnVerifiedVotes (Batch &write_batch, const std::vector< std::shared_ptr< PbftVote >> &own_verified_votes)
 
void replaceTwoTPlusOneVotes (TwoTPlusOneVotedBlockType type, const std::vector< std::shared_ptr< PbftVote >> &votes)
 
void replaceTwoTPlusOneVotesToBatch (TwoTPlusOneVotedBlockType type, const std::vector< std::shared_ptr< PbftVote >> &votes, Batch &write_batch)
 
std::vector< std::shared_ptr< PbftVote > > getAllTwoTPlusOneVotes ()
 
void removeExtraRewardVotes (const std::vector< vote_hash_t > &votes, Batch &write_batch)
 
void saveExtraRewardVote (const std::shared_ptr< PbftVote > &vote)
 
std::vector< std::shared_ptr< PbftVote > > getRewardVotes ()
 
void addPbftBlockPeriodToBatch (PbftPeriod period, taraxa::blk_hash_t const &pbft_block_hash, Batch &write_batch)
 
std::pair< bool, PbftPeriodgetPeriodFromPbftHash (taraxa::blk_hash_t const &pbft_block_hash)
 
std::shared_ptr< std::pair< PbftPeriod, uint32_t > > getDagBlockPeriod (blk_hash_t const &hash)
 
void addDagBlockPeriodToBatch (blk_hash_t const &hash, PbftPeriod period, uint32_t position, Batch &write_batch)
 
uint64_t getDagBlocksCount () const
 
uint64_t getDagEdgeCount () const
 
auto getNumTransactionExecuted ()
 
auto getNumTransactionInDag ()
 
auto getNumBlockExecuted ()
 
std::vector< blk_hash_tgetFinalizedDagBlockHashesByPeriod (PbftPeriod period)
 
std::vector< std::shared_ptr< DagBlock > > getFinalizedDagBlockByPeriod (PbftPeriod period)
 
std::pair< blk_hash_t, std::vector< std::shared_ptr< DagBlock > > > getLastPbftBlockHashAndFinalizedDagBlockByPeriod (PbftPeriod period)
 
std::optional< uint64_t > getProposalPeriodForDagLevel (uint64_t level)
 
void saveProposalPeriodDagLevelsMap (uint64_t level, PbftPeriod period)
 
void addProposalPeriodDagLevelsMapToBatch (uint64_t level, PbftPeriod period, Batch &write_batch)
 
bool hasMinorVersionChanged ()
 
bool hasMajorVersionChanged ()
 
void compactColumn (Column const &column)
 
template<typename K >
std::string lookup (K const &key, Column const &column) const
 
template<typename Int , typename K >
auto lookup_int (K const &key, Column const &column) -> std::enable_if_t< std::is_integral_v< Int >, std::optional< Int >>
 
template<typename K >
bool exist (K const &key, Column const &column)
 
template<typename K , typename V >
void insert (rocksdb::ColumnFamilyHandle *col, const K &k, const V &v)
 
template<typename K , typename V >
void insert (Column const &col, K const &k, V const &v)
 
template<typename K , typename V >
void insert (Batch &batch, Column const &col, K const &k, V const &v)
 
template<typename K , typename V >
void insert (Batch &batch, rocksdb::ColumnFamilyHandle *col, K const &k, V const &v)
 
template<typename K >
void remove (Column const &col, K const &k)
 
template<typename K >
void remove (Batch &batch, Column const &col, K const &k)
 
void forEach (Column const &col, OnEntry const &f)
 

Static Public Member Functions

static Batch createWriteBatch ()
 
static bytes asBytes (string const &b)
 
template<typename T >
static Slice make_slice (T const *begin, size_t size)
 
static Slice toSlice (dev::bytesConstRef const &b)
 
template<unsigned N>
static Slice toSlice (dev::FixedHash< N > const &h)
 
static Slice toSlice (dev::bytes const &b)
 
template<class N >
static auto toSlice (N const &n) -> std::enable_if_t< std::is_integral_v< N >||std::is_enum_v< N >, Slice >
 
static Slice toSlice (string const &str)
 
static auto const & toSlice (Slice const &s)
 
template<typename T >
static auto toSlices (std::vector< T > const &keys)
 
static auto const & toSlices (std::vector< Slice > const &ss)
 
static void checkStatus (rocksdb::Status const &status)
 

Private Attributes

fs::path path_
 
fs::path db_path_
 
fs::path state_db_path_
 
const std::string kDbDir = "db"
 
const std::string kStateDbDir = "state_db"
 
std::unique_ptr< rocksdb::DB > db_
 
std::vector< rocksdb::ColumnFamilyHandle * > handles_
 
rocksdb::ReadOptions read_options_
 
rocksdb::WriteOptions write_options_
 
std::mutex dag_blocks_mutex_
 
std::atomic< uint64_t > dag_blocks_count_
 
std::atomic< uint64_t > dag_edge_count_
 
const uint32_t kDbSnapshotsEachNblock = 0
 
std::atomic< bool > snapshots_enabled_ = true
 
const uint32_t kDbSnapshotsMaxCount = 0
 
std::set< PbftPeriodsnapshots_
 
uint32_t kMajorVersion_
 
bool major_version_changed_ = false
 
bool minor_version_changed_ = false
 

Constructor & Destructor Documentation

◆ DbStorage() [1/3]

taraxa::DbStorage::DbStorage ( fs::path const &  base_path,
uint32_t  db_snapshot_each_n_pbft_block = 0,
uint32_t  max_open_files = 0,
uint32_t  db_max_snapshots = 0,
PbftPeriod  db_revert_to_period = 0,
addr_t  node_addr = addr_t(),
bool  rebuild = false 
)
explicit

◆ ~DbStorage()

taraxa::DbStorage::~DbStorage ( )

◆ DbStorage() [2/3]

taraxa::DbStorage::DbStorage ( const DbStorage )
delete

◆ DbStorage() [3/3]

taraxa::DbStorage::DbStorage ( DbStorage &&  )
delete

Member Function Documentation

◆ addDagBlockPeriodToBatch()

void taraxa::DbStorage::addDagBlockPeriodToBatch ( blk_hash_t const &  hash,
PbftPeriod  period,
uint32_t  position,
Batch write_batch 
)

◆ addPbftBlockPeriodToBatch()

void taraxa::DbStorage::addPbftBlockPeriodToBatch ( PbftPeriod  period,
taraxa::blk_hash_t const &  pbft_block_hash,
Batch write_batch 
)

◆ addPbftHeadToBatch()

void taraxa::DbStorage::addPbftHeadToBatch ( taraxa::blk_hash_t const &  head_hash,
std::string const &  head_str,
Batch write_batch 
)

◆ addPbftMgrFieldToBatch()

void taraxa::DbStorage::addPbftMgrFieldToBatch ( PbftMgrField  field,
uint32_t  value,
Batch write_batch 
)

◆ addPbftMgrStatusToBatch()

void taraxa::DbStorage::addPbftMgrStatusToBatch ( PbftMgrStatus  field,
bool const &  value,
Batch write_batch 
)

◆ addPeriodSystemTransactions()

void taraxa::DbStorage::addPeriodSystemTransactions ( Batch write_batch,
SharedTransactions  trxs,
PbftPeriod  period 
)

◆ addProposalPeriodDagLevelsMapToBatch()

void taraxa::DbStorage::addProposalPeriodDagLevelsMapToBatch ( uint64_t  level,
PbftPeriod  period,
Batch write_batch 
)

◆ addStatusFieldToBatch()

void taraxa::DbStorage::addStatusFieldToBatch ( StatusDbField const &  field,
uint64_t  value,
Batch write_batch 
)

◆ addSystemTransactionToBatch()

void taraxa::DbStorage::addSystemTransactionToBatch ( Batch write_batch,
SharedTransaction  trx 
)

◆ addTransactionLocationToBatch()

void taraxa::DbStorage::addTransactionLocationToBatch ( Batch write_batch,
trx_hash_t const &  trx,
PbftPeriod  period,
uint32_t  position,
bool  is_system = false 
)

◆ addTransactionToBatch()

void taraxa::DbStorage::addTransactionToBatch ( Transaction const &  trx,
Batch write_batch 
)

◆ asBytes()

static bytes taraxa::DbStorage::asBytes ( string const &  b)
inlinestatic

◆ checkStatus()

void taraxa::DbStorage::checkStatus ( rocksdb::Status const &  status)
static

◆ clearOwnVerifiedVotes()

void taraxa::DbStorage::clearOwnVerifiedVotes ( Batch write_batch,
const std::vector< std::shared_ptr< PbftVote >> &  own_verified_votes 
)

◆ clearPeriodDataHistory()

void taraxa::DbStorage::clearPeriodDataHistory ( PbftPeriod  period,
uint64_t  dag_level_to_keep 
)

◆ commitWriteBatch() [1/2]

void taraxa::DbStorage::commitWriteBatch ( Batch write_batch)
inline

◆ commitWriteBatch() [2/2]

void taraxa::DbStorage::commitWriteBatch ( Batch write_batch,
rocksdb::WriteOptions const &  opts 
)

◆ compactColumn()

void taraxa::DbStorage::compactColumn ( Column const &  column)
inline

◆ copyColumn()

std::unique_ptr< rocksdb::ColumnFamilyHandle > taraxa::DbStorage::copyColumn ( rocksdb::ColumnFamilyHandle *  orig_column,
const std::string &  new_col_name,
bool  move_data = false 
)

◆ createSnapshot()

bool taraxa::DbStorage::createSnapshot ( PbftPeriod  period)

◆ createWriteBatch()

Batch taraxa::DbStorage::createWriteBatch ( )
static

◆ dagBlockInDb()

bool taraxa::DbStorage::dagBlockInDb ( blk_hash_t const &  hash)

◆ dbStoragePath()

auto taraxa::DbStorage::dbStoragePath ( ) const
inline

◆ deleteColumnData()

void taraxa::DbStorage::deleteColumnData ( const Column c)

◆ deleteSnapshot()

void taraxa::DbStorage::deleteSnapshot ( PbftPeriod  period)

◆ deleteTmpDirectories()

void taraxa::DbStorage::deleteTmpDirectories ( const std::string &  path) const

◆ disableSnapshots()

void taraxa::DbStorage::disableSnapshots ( )

◆ enableSnapshots()

void taraxa::DbStorage::enableSnapshots ( )

◆ exist()

template<typename K >
bool taraxa::DbStorage::exist ( K const &  key,
Column const &  column 
)
inline

◆ forEach()

void taraxa::DbStorage::forEach ( Column const &  col,
OnEntry const &  f 
)

◆ getAllNonfinalizedTransactions()

SharedTransactions taraxa::DbStorage::getAllNonfinalizedTransactions ( )

◆ getAllTransactionPeriod()

std::unordered_map< trx_hash_t, PbftPeriod > taraxa::DbStorage::getAllTransactionPeriod ( )

◆ getAllTwoTPlusOneVotes()

std::vector< std::shared_ptr< PbftVote > > taraxa::DbStorage::getAllTwoTPlusOneVotes ( )

◆ getBlocksByLevel()

std::set< blk_hash_t > taraxa::DbStorage::getBlocksByLevel ( level_t  level)

◆ getCertVotedBlockInRound()

std::optional< std::pair< PbftRound, std::shared_ptr< PbftBlock > > > taraxa::DbStorage::getCertVotedBlockInRound ( ) const

◆ getColumnIterator() [1/2]

std::unique_ptr< rocksdb::Iterator > taraxa::DbStorage::getColumnIterator ( const Column c)

◆ getColumnIterator() [2/2]

std::unique_ptr< rocksdb::Iterator > taraxa::DbStorage::getColumnIterator ( rocksdb::ColumnFamilyHandle *  c)

◆ getCurrentPillarBlockData()

std::optional< pillar_chain::CurrentPillarBlockDataDb > taraxa::DbStorage::getCurrentPillarBlockData ( ) const

◆ getDagBlock()

std::shared_ptr< DagBlock > taraxa::DbStorage::getDagBlock ( blk_hash_t const &  hash)

◆ getDagBlockPeriod()

std::shared_ptr< std::pair< PbftPeriod, uint32_t > > taraxa::DbStorage::getDagBlockPeriod ( blk_hash_t const &  hash)

◆ getDagBlocksAtLevel()

std::vector< std::shared_ptr< DagBlock > > taraxa::DbStorage::getDagBlocksAtLevel ( level_t  level,
int  number_of_levels 
)

◆ getDagBlocksCount()

uint64_t taraxa::DbStorage::getDagBlocksCount ( ) const
inline

◆ getDagEdgeCount()

uint64_t taraxa::DbStorage::getDagEdgeCount ( ) const
inline

◆ getFinalizedDagBlockByPeriod()

std::vector< std::shared_ptr< DagBlock > > taraxa::DbStorage::getFinalizedDagBlockByPeriod ( PbftPeriod  period)

◆ getFinalizedDagBlockHashesByPeriod()

std::vector< blk_hash_t > taraxa::DbStorage::getFinalizedDagBlockHashesByPeriod ( PbftPeriod  period)

◆ getFinalizedTransactions()

SharedTransactions taraxa::DbStorage::getFinalizedTransactions ( std::vector< trx_hash_t > const &  trx_hashes) const

Gets finalized transactions from provided hashes.

Parameters
trx_hashes
Returns
Returns transactions

◆ getGenesisHash()

std::optional< h256 > taraxa::DbStorage::getGenesisHash ( )

◆ getLastBlocksLevel()

level_t taraxa::DbStorage::getLastBlocksLevel ( ) const

◆ getLastPbftBlockHashAndFinalizedDagBlockByPeriod()

std::pair< blk_hash_t, std::vector< std::shared_ptr< DagBlock > > > taraxa::DbStorage::getLastPbftBlockHashAndFinalizedDagBlockByPeriod ( PbftPeriod  period)

◆ getLastSortitionParams()

std::deque< SortitionParamsChange > taraxa::DbStorage::getLastSortitionParams ( size_t  count)

◆ getLatestPillarBlock()

std::shared_ptr< pillar_chain::PillarBlock > taraxa::DbStorage::getLatestPillarBlock ( ) const

◆ getMajorVersion()

uint32_t taraxa::DbStorage::getMajorVersion ( ) const

◆ getNonfinalizedDagBlocks()

std::map< level_t, std::vector< DagBlock > > taraxa::DbStorage::getNonfinalizedDagBlocks ( )

◆ getNumBlockExecuted()

auto taraxa::DbStorage::getNumBlockExecuted ( )
inline

◆ getNumTransactionExecuted()

auto taraxa::DbStorage::getNumTransactionExecuted ( )
inline

◆ getNumTransactionInDag()

auto taraxa::DbStorage::getNumTransactionInDag ( )
inline

◆ getOwnPillarBlockVote()

std::shared_ptr< PillarVote > taraxa::DbStorage::getOwnPillarBlockVote ( ) const

◆ getOwnVerifiedVotes()

std::vector< std::shared_ptr< PbftVote > > taraxa::DbStorage::getOwnVerifiedVotes ( )

◆ getParamsChangeForPeriod()

std::optional< SortitionParamsChange > taraxa::DbStorage::getParamsChangeForPeriod ( PbftPeriod  period)

◆ getPbftBlock() [1/2]

std::optional< PbftBlock > taraxa::DbStorage::getPbftBlock ( blk_hash_t const &  hash)

◆ getPbftBlock() [2/2]

std::optional< PbftBlock > taraxa::DbStorage::getPbftBlock ( PbftPeriod  period) const

◆ getPbftHead()

string taraxa::DbStorage::getPbftHead ( blk_hash_t const &  hash)

◆ getPbftMgrField()

uint32_t taraxa::DbStorage::getPbftMgrField ( PbftMgrField  field)

◆ getPbftMgrStatus()

bool taraxa::DbStorage::getPbftMgrStatus ( PbftMgrStatus  field)

◆ getPeriodBlockHash()

blk_hash_t taraxa::DbStorage::getPeriodBlockHash ( PbftPeriod  period) const

◆ getPeriodCertVotes()

std::vector< std::shared_ptr< PbftVote > > taraxa::DbStorage::getPeriodCertVotes ( PbftPeriod  period) const

◆ getPeriodDataRaw()

dev::bytes taraxa::DbStorage::getPeriodDataRaw ( PbftPeriod  period) const

◆ getPeriodFromPbftHash()

std::pair< bool, PbftPeriod > taraxa::DbStorage::getPeriodFromPbftHash ( taraxa::blk_hash_t const &  pbft_block_hash)

◆ getPeriodPillarVotes()

std::vector< std::shared_ptr< PillarVote > > taraxa::DbStorage::getPeriodPillarVotes ( PbftPeriod  period) const

◆ getPeriodSystemTransactions()

SharedTransactions taraxa::DbStorage::getPeriodSystemTransactions ( PbftPeriod  period) const

◆ getPeriodSystemTransactionsHashes()

std::vector< trx_hash_t > taraxa::DbStorage::getPeriodSystemTransactionsHashes ( PbftPeriod  period) const

◆ getPeriodTransactions()

std::optional< SharedTransactions > taraxa::DbStorage::getPeriodTransactions ( PbftPeriod  period) const

◆ getPillarBlock()

std::shared_ptr< pillar_chain::PillarBlock > taraxa::DbStorage::getPillarBlock ( PbftPeriod  period) const

◆ getProposalPeriodForDagLevel()

std::optional< PbftPeriod > taraxa::DbStorage::getProposalPeriodForDagLevel ( uint64_t  level)

◆ getProposedPbftBlocks()

std::vector< std::shared_ptr< PbftBlock > > taraxa::DbStorage::getProposedPbftBlocks ( )

◆ getRewardVotes()

std::vector< std::shared_ptr< PbftVote > > taraxa::DbStorage::getRewardVotes ( )

◆ getStatusField()

uint64_t taraxa::DbStorage::getStatusField ( StatusDbField const &  field)

◆ getSystemTransaction()

std::shared_ptr< Transaction > taraxa::DbStorage::getSystemTransaction ( const trx_hash_t hash) const

◆ getTransaction()

std::shared_ptr< Transaction > taraxa::DbStorage::getTransaction ( trx_hash_t const &  hash)

◆ getTransactionCount()

uint64_t taraxa::DbStorage::getTransactionCount ( PbftPeriod  period) const

◆ getTransactionLocation()

std::optional< final_chain::TransactionLocation > taraxa::DbStorage::getTransactionLocation ( trx_hash_t const &  hash) const

◆ handle()

auto taraxa::DbStorage::handle ( Column const &  col) const
inline

◆ hasMajorVersionChanged()

bool taraxa::DbStorage::hasMajorVersionChanged ( )
inline

◆ hasMinorVersionChanged()

bool taraxa::DbStorage::hasMinorVersionChanged ( )
inline

◆ insert() [1/4]

template<typename K , typename V >
void taraxa::DbStorage::insert ( Batch batch,
Column const &  col,
K const &  k,
V const &  v 
)
inline

◆ insert() [2/4]

template<typename K , typename V >
void taraxa::DbStorage::insert ( Batch batch,
rocksdb::ColumnFamilyHandle *  col,
K const &  k,
V const &  v 
)
inline

◆ insert() [3/4]

template<typename K , typename V >
void taraxa::DbStorage::insert ( Column const &  col,
K const &  k,
V const &  v 
)
inline

◆ insert() [4/4]

template<typename K , typename V >
void taraxa::DbStorage::insert ( rocksdb::ColumnFamilyHandle *  col,
const K &  k,
const V &  v 
)
inline

◆ loadSnapshots()

void taraxa::DbStorage::loadSnapshots ( )

◆ lookup()

template<typename K >
std::string taraxa::DbStorage::lookup ( K const &  key,
Column const &  column 
) const
inline

◆ lookup_int()

template<typename Int , typename K >
auto taraxa::DbStorage::lookup_int ( K const &  key,
Column const &  column 
) -> std::enable_if_t<std::is_integral_v<Int>, std::optional<Int>>
inline

◆ make_slice()

template<typename T >
static Slice taraxa::DbStorage::make_slice ( T const *  begin,
size_t  size 
)
inlinestatic

◆ operator=() [1/2]

DbStorage& taraxa::DbStorage::operator= ( const DbStorage )
delete

◆ operator=() [2/2]

DbStorage& taraxa::DbStorage::operator= ( DbStorage &&  )
delete

◆ path()

auto const& taraxa::DbStorage::path ( ) const
inline

◆ pbftBlockInDb()

bool taraxa::DbStorage::pbftBlockInDb ( blk_hash_t const &  hash)

◆ rebuildColumns()

void taraxa::DbStorage::rebuildColumns ( const rocksdb::Options &  options)

◆ recoverToPeriod()

void taraxa::DbStorage::recoverToPeriod ( PbftPeriod  period)

◆ remove() [1/2]

template<typename K >
void taraxa::DbStorage::remove ( Batch batch,
Column const &  col,
K const &  k 
)
inline

◆ remove() [2/2]

template<typename K >
void taraxa::DbStorage::remove ( Column const &  col,
K const &  k 
)
inline

◆ removeCertVotedBlockInRound()

void taraxa::DbStorage::removeCertVotedBlockInRound ( Batch write_batch)

◆ removeDagBlock()

void taraxa::DbStorage::removeDagBlock ( blk_hash_t const &  hash)

◆ removeDagBlockBatch()

void taraxa::DbStorage::removeDagBlockBatch ( Batch write_batch,
blk_hash_t const &  hash 
)

◆ removeExtraRewardVotes()

void taraxa::DbStorage::removeExtraRewardVotes ( const std::vector< vote_hash_t > &  votes,
Batch write_batch 
)

◆ removeFilesWithPattern()

void taraxa::DbStorage::removeFilesWithPattern ( const std::string &  directory,
const std::regex &  pattern 
) const

◆ removeProposedPbftBlock()

void taraxa::DbStorage::removeProposedPbftBlock ( const blk_hash_t block_hash,
Batch write_batch 
)

◆ removeTempFiles()

void taraxa::DbStorage::removeTempFiles ( ) const

◆ removeTransactionToBatch()

void taraxa::DbStorage::removeTransactionToBatch ( trx_hash_t const &  trx,
Batch write_batch 
)

◆ replaceColumn()

void taraxa::DbStorage::replaceColumn ( const Column to_be_replaced_col,
std::unique_ptr< rocksdb::ColumnFamilyHandle > &&  replacing_col 
)

◆ replaceTwoTPlusOneVotes()

void taraxa::DbStorage::replaceTwoTPlusOneVotes ( TwoTPlusOneVotedBlockType  type,
const std::vector< std::shared_ptr< PbftVote >> &  votes 
)

◆ replaceTwoTPlusOneVotesToBatch()

void taraxa::DbStorage::replaceTwoTPlusOneVotesToBatch ( TwoTPlusOneVotedBlockType  type,
const std::vector< std::shared_ptr< PbftVote >> &  votes,
Batch write_batch 
)

◆ saveCertVotedBlockInRound()

void taraxa::DbStorage::saveCertVotedBlockInRound ( PbftRound  round,
const std::shared_ptr< PbftBlock > &  block 
)

◆ saveCurrentPillarBlockData()

void taraxa::DbStorage::saveCurrentPillarBlockData ( const pillar_chain::CurrentPillarBlockDataDb current_pillar_block_data)

◆ saveDagBlock()

void taraxa::DbStorage::saveDagBlock ( DagBlock const &  blk,
Batch write_batch_p = nullptr 
)

◆ saveExtraRewardVote()

void taraxa::DbStorage::saveExtraRewardVote ( const std::shared_ptr< PbftVote > &  vote)

◆ saveOwnPillarBlockVote()

void taraxa::DbStorage::saveOwnPillarBlockVote ( const std::shared_ptr< PillarVote > &  vote)

◆ saveOwnVerifiedVote()

void taraxa::DbStorage::saveOwnVerifiedVote ( const std::shared_ptr< PbftVote > &  vote)

◆ savePbftHead()

void taraxa::DbStorage::savePbftHead ( blk_hash_t const &  hash,
string const &  pbft_chain_head_str 
)

◆ savePbftMgrField()

void taraxa::DbStorage::savePbftMgrField ( PbftMgrField  field,
uint32_t  value 
)

◆ savePbftMgrStatus()

void taraxa::DbStorage::savePbftMgrStatus ( PbftMgrStatus  field,
bool const &  value 
)

◆ savePeriodData()

void taraxa::DbStorage::savePeriodData ( const PeriodData period_data,
Batch write_batch 
)

◆ savePillarBlock()

void taraxa::DbStorage::savePillarBlock ( const std::shared_ptr< pillar_chain::PillarBlock > &  pillar_block)

◆ saveProposalPeriodDagLevelsMap()

void taraxa::DbStorage::saveProposalPeriodDagLevelsMap ( uint64_t  level,
PbftPeriod  period 
)

◆ saveProposedPbftBlock()

void taraxa::DbStorage::saveProposedPbftBlock ( const std::shared_ptr< PbftBlock > &  block)

◆ saveSortitionParamsChange()

void taraxa::DbStorage::saveSortitionParamsChange ( PbftPeriod  period,
const SortitionParamsChange params,
Batch batch 
)

◆ saveStatusField()

void taraxa::DbStorage::saveStatusField ( StatusDbField const &  field,
uint64_t  value 
)

◆ setGenesisHash()

void taraxa::DbStorage::setGenesisHash ( const h256 genesis_hash)

◆ stateDbStoragePath()

auto taraxa::DbStorage::stateDbStoragePath ( ) const
inline

◆ toSlice() [1/6]

static Slice taraxa::DbStorage::toSlice ( dev::bytes const &  b)
inlinestatic

◆ toSlice() [2/6]

static Slice taraxa::DbStorage::toSlice ( dev::bytesConstRef const &  b)
inlinestatic

◆ toSlice() [3/6]

template<unsigned N>
static Slice taraxa::DbStorage::toSlice ( dev::FixedHash< N > const &  h)
inlinestatic

◆ toSlice() [4/6]

template<class N >
static auto taraxa::DbStorage::toSlice ( N const &  n) -> std::enable_if_t<std::is_integral_v<N> || std::is_enum_v<N>, Slice>
inlinestatic

◆ toSlice() [5/6]

static auto const& taraxa::DbStorage::toSlice ( Slice const &  s)
inlinestatic

◆ toSlice() [6/6]

static Slice taraxa::DbStorage::toSlice ( string const &  str)
inlinestatic

◆ toSlices() [1/2]

static auto const& taraxa::DbStorage::toSlices ( std::vector< Slice > const &  ss)
inlinestatic

◆ toSlices() [2/2]

template<typename T >
static auto taraxa::DbStorage::toSlices ( std::vector< T > const &  keys)
inlinestatic

◆ transactionFinalized()

bool taraxa::DbStorage::transactionFinalized ( trx_hash_t const &  hash)

◆ transactionInDb()

bool taraxa::DbStorage::transactionInDb ( trx_hash_t const &  hash)

◆ transactionsFinalized()

std::vector< bool > taraxa::DbStorage::transactionsFinalized ( std::vector< trx_hash_t > const &  trx_hashes)

◆ transactionsInDb()

std::vector< bool > taraxa::DbStorage::transactionsInDb ( std::vector< trx_hash_t > const &  trx_hashes)

◆ updateDagBlockCounters()

void taraxa::DbStorage::updateDagBlockCounters ( std::vector< DagBlock blks)

◆ updateDbVersions()

void taraxa::DbStorage::updateDbVersions ( )

Member Data Documentation

◆ dag_blocks_count_

std::atomic<uint64_t> taraxa::DbStorage::dag_blocks_count_
private

◆ dag_blocks_mutex_

std::mutex taraxa::DbStorage::dag_blocks_mutex_
private

◆ dag_edge_count_

std::atomic<uint64_t> taraxa::DbStorage::dag_edge_count_
private

◆ db_

std::unique_ptr<rocksdb::DB> taraxa::DbStorage::db_
private

◆ db_path_

fs::path taraxa::DbStorage::db_path_
private

◆ handles_

std::vector<rocksdb::ColumnFamilyHandle*> taraxa::DbStorage::handles_
private

◆ kDbDir

const std::string taraxa::DbStorage::kDbDir = "db"
private

◆ kDbSnapshotsEachNblock

const uint32_t taraxa::DbStorage::kDbSnapshotsEachNblock = 0
private

◆ kDbSnapshotsMaxCount

const uint32_t taraxa::DbStorage::kDbSnapshotsMaxCount = 0
private

◆ kMajorVersion_

uint32_t taraxa::DbStorage::kMajorVersion_
private

◆ kStateDbDir

const std::string taraxa::DbStorage::kStateDbDir = "state_db"
private

◆ major_version_changed_

bool taraxa::DbStorage::major_version_changed_ = false
private

◆ minor_version_changed_

bool taraxa::DbStorage::minor_version_changed_ = false
private

◆ path_

fs::path taraxa::DbStorage::path_
private

◆ read_options_

rocksdb::ReadOptions taraxa::DbStorage::read_options_
private

◆ snapshots_

std::set<PbftPeriod> taraxa::DbStorage::snapshots_
private

◆ snapshots_enabled_

std::atomic<bool> taraxa::DbStorage::snapshots_enabled_ = true
private

◆ state_db_path_

fs::path taraxa::DbStorage::state_db_path_
private

◆ write_options_

rocksdb::WriteOptions taraxa::DbStorage::write_options_
private

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