3 #include <rocksdb/db.h>
4 #include <rocksdb/options.h>
5 #include <rocksdb/slice.h>
6 #include <rocksdb/write_batch.h>
24 namespace fs = std::filesystem;
25 struct SortitionParamsChange;
27 namespace pillar_chain {
28 struct PillarBlockData;
32 namespace final_chain {
33 struct TransactionLocation;
67 virtual const char*
what() const noexcept {
return desc_.c_str(); }
73 using Batch = rocksdb::WriteBatch;
77 class DbStorage :
public std::enable_shared_from_this<DbStorage> {
86 Column(
string name,
size_t ordinal,
const rocksdb::Comparator* comparator)
95 static inline std::vector<Column>
all_;
100 #define COLUMN(__name__) static inline auto const __name__ = all_.emplace_back(#__name__, all_.size())
101 #define COLUMN_W_COMP(__name__, ...) \
102 static inline auto const __name__ = all_.emplace_back(#__name__, all_.size(), __VA_ARGS__)
122 COLUMN(latest_round_two_t_plus_one_votes);
161 std::unique_ptr<rocksdb::DB>
db_;
162 std::vector<rocksdb::ColumnFamilyHandle*>
handles_;
180 explicit DbStorage(fs::path
const& base_path, uint32_t db_snapshot_each_n_pbft_block = 0, uint32_t max_open_files = 0,
182 bool rebuild =
false);
207 void replaceColumn(
const Column& to_be_replaced_col, std::unique_ptr<rocksdb::ColumnFamilyHandle>&& replacing_col);
208 std::unique_ptr<rocksdb::ColumnFamilyHandle>
copyColumn(rocksdb::ColumnFamilyHandle* orig_column,
209 const std::string& new_col_name,
bool move_data =
false);
218 std::unique_ptr<rocksdb::Iterator>
getColumnIterator(rocksdb::ColumnFamilyHandle* c);
235 void savePillarBlock(
const std::shared_ptr<pillar_chain::PillarBlock>& pillar_block);
264 std::vector<bool>
transactionsInDb(std::vector<trx_hash_t>
const& trx_hashes);
270 bool is_system =
false);
330 const std::vector<std::shared_ptr<PbftVote>>& votes,
Batch& write_batch);
368 return bytes((
byte const*)b.data(), (
byte const*)(b.data() + b.size()));
371 template <
typename T>
376 return {
reinterpret_cast<char const*
>(begin), size};
381 template <
unsigned N>
389 inline static auto toSlice(N
const& n) -> std::enable_if_t<std::is_integral_v<N> || std::is_enum_v<N>,
Slice> {
397 template <
typename T>
398 inline static auto toSlices(std::vector<T>
const& keys) {
399 std::vector<Slice> ret;
400 ret.reserve(keys.size());
401 for (
auto const& k : keys) {
407 inline static auto const&
toSlices(std::vector<Slice>
const& ss) {
return ss; }
409 template <
typename K>
413 if (status.IsNotFound()) {
420 template <
typename Int,
typename K>
421 auto lookup_int(K
const& key,
Column const& column) -> std::enable_if_t<std::is_integral_v<Int>, std::optional<Int>> {
422 auto str =
lookup(key, column);
426 return *
reinterpret_cast<Int*
>(str.data());
429 template <
typename K>
435 if (status.IsNotFound()) {
439 return !value.empty();
444 static void checkStatus(rocksdb::Status
const& status);
446 template <
typename K,
typename V>
447 void insert(rocksdb::ColumnFamilyHandle* col,
const K& k,
const V& v) {
451 template <
typename K,
typename V>
456 template <
typename K,
typename V>
461 template <
typename K,
typename V>
462 void insert(
Batch& batch, rocksdb::ColumnFamilyHandle* col, K
const& k, V
const& v) {
466 template <
typename K>
471 template <
typename K>
Definition: FixedHash.h:35
::byte * data()
Definition: FixedHash.h:189
size_t size() const
Definition: vector_ref.h:82
_T * data() const
Definition: vector_ref.h:76
DagBlock class is a DAG block class which main data is a list of transaction hashes included in the b...
Definition: dag_block.hpp:16
Definition: storage.hpp:57
DbException & operator=(DbException &&)=delete
virtual ~DbException()=default
const std::string desc_
Definition: storage.hpp:70
DbException(const std::string &desc)
Definition: storage.hpp:59
DbException(const DbException &)=default
DbException(DbException &&)=default
DbException & operator=(const DbException &)=delete
virtual const char * what() const noexcept
Definition: storage.hpp:67
Definition: storage.hpp:79
const rocksdb::Comparator * comparator_
Definition: storage.hpp:84
Column(string name, size_t ordinal, const rocksdb::Comparator *comparator)
Definition: storage.hpp:86
size_t const ordinal_
Definition: storage.hpp:83
auto const & name() const
Definition: storage.hpp:91
Column(string name, size_t ordinal)
Definition: storage.hpp:89
string const name_
Definition: storage.hpp:80
Definition: storage.hpp:94
static auto const & all
Definition: storage.hpp:98
COLUMN(period_system_transactions)
COLUMN(cert_voted_block_in_round)
COLUMN_W_COMP(dag_blocks_level, getIntComparator< uint64_t >())
COLUMN(current_pillar_block_own_vote)
COLUMN_W_COMP(pillar_block, getIntComparator< PbftPeriod >())
COLUMN(final_chain_receipt_by_trx_hash)
COLUMN_W_COMP(block_rewards_stats, getIntComparator< uint64_t >())
COLUMN(final_chain_blk_by_number)
COLUMN(extra_reward_votes)
COLUMN(final_chain_blk_hash_by_number)
COLUMN(pbft_block_period)
COLUMN(latest_round_two_t_plus_one_votes)
COLUMN(system_transaction)
COLUMN(final_chain_log_blooms_index)
COLUMN(latest_round_own_votes)
COLUMN_W_COMP(proposal_period_levels_map, getIntComparator< uint64_t >())
COLUMN(pbft_mgr_round_step)
static std::vector< Column > all_
Definition: storage.hpp:95
COLUMN_W_COMP(period_data, getIntComparator< PbftPeriod >())
COLUMN(proposed_pbft_blocks)
COLUMN_W_COMP(sortition_params_change, getIntComparator< PbftPeriod >())
COLUMN(current_pillar_block_data)
COLUMN(final_chain_blk_number_by_hash)
Definition: storage.hpp:77
void addStatusFieldToBatch(StatusDbField const &field, uint64_t value, Batch &write_batch)
Definition: storage.cpp:1027
void addDagBlockPeriodToBatch(blk_hash_t const &hash, PbftPeriod period, uint32_t position, Batch &write_batch)
Definition: storage.cpp:1238
static auto const & toSlices(std::vector< Slice > const &ss)
Definition: storage.hpp:407
uint64_t getTransactionCount(PbftPeriod period) const
Definition: storage.cpp:862
std::atomic< uint64_t > dag_blocks_count_
Definition: storage.hpp:166
SharedTransactions getPeriodSystemTransactions(PbftPeriod period) const
Definition: storage.cpp:927
static auto toSlices(std::vector< T > const &keys)
Definition: storage.hpp:398
bool dagBlockInDb(blk_hash_t const &hash)
Definition: storage.cpp:449
void remove(Batch &batch, Column const &col, K const &k)
Definition: storage.hpp:472
std::shared_ptr< DagBlock > getDagBlock(blk_hash_t const &hash)
Definition: storage.cpp:432
fs::path db_path_
Definition: storage.hpp:157
void disableSnapshots()
Definition: storage.cpp:383
std::vector< std::shared_ptr< PbftVote > > getAllTwoTPlusOneVotes()
Definition: storage.cpp:1167
std::optional< uint64_t > getProposalPeriodForDagLevel(uint64_t level)
Definition: storage.cpp:1291
std::mutex dag_blocks_mutex_
Definition: storage.hpp:165
uint32_t getPbftMgrField(PbftMgrField field)
Definition: storage.cpp:1033
void saveProposedPbftBlock(const std::shared_ptr< PbftBlock > &block)
Definition: storage.cpp:807
void removeProposedPbftBlock(const blk_hash_t &block_hash, Batch &write_batch)
Definition: storage.cpp:811
void commitWriteBatch(Batch &write_batch, rocksdb::WriteOptions const &opts)
Definition: storage.cpp:426
void addProposalPeriodDagLevelsMapToBatch(uint64_t level, PbftPeriod period, Batch &write_batch)
Definition: storage.cpp:1310
void saveCertVotedBlockInRound(PbftRound round, const std::shared_ptr< PbftBlock > &block)
Definition: storage.cpp:1070
std::unordered_map< trx_hash_t, PbftPeriod > getAllTransactionPeriod()
Definition: storage.cpp:794
void saveOwnPillarBlockVote(const std::shared_ptr< PillarVote > &vote)
Definition: storage.cpp:730
rocksdb::WriteOptions write_options_
Definition: storage.hpp:164
std::shared_ptr< pillar_chain::PillarBlock > getPillarBlock(PbftPeriod period) const
Definition: storage.cpp:711
void addPbftMgrStatusToBatch(PbftMgrStatus field, bool const &value, Batch &write_batch)
Definition: storage.cpp:1066
void removeExtraRewardVotes(const std::vector< vote_hash_t > &votes, Batch &write_batch)
Definition: storage.cpp:1187
void rebuildColumns(const rocksdb::Options &options)
Definition: storage.cpp:219
void addTransactionLocationToBatch(Batch &write_batch, trx_hash_t const &trx, PbftPeriod period, uint32_t position, bool is_system=false)
Definition: storage.cpp:756
blk_hash_t getPeriodBlockHash(PbftPeriod period) const
Definition: storage.cpp:834
std::vector< std::shared_ptr< PbftBlock > > getProposedPbftBlocks()
Definition: storage.cpp:815
std::vector< std::shared_ptr< DagBlock > > getDagBlocksAtLevel(level_t level, int number_of_levels)
Definition: storage.cpp:473
std::shared_ptr< Transaction > getTransaction(trx_hash_t const &hash)
Definition: storage.cpp:842
std::shared_ptr< PillarVote > getOwnPillarBlockVote() const
Definition: storage.cpp:734
std::atomic< bool > snapshots_enabled_
Definition: storage.hpp:169
uint32_t kMajorVersion_
Definition: storage.hpp:173
const uint32_t kDbSnapshotsMaxCount
Definition: storage.hpp:170
void addPeriodSystemTransactions(Batch &write_batch, SharedTransactions trxs, PbftPeriod period)
Definition: storage.cpp:910
std::optional< h256 > getGenesisHash()
Definition: storage.cpp:393
void compactColumn(Column const &column)
Definition: storage.hpp:365
SharedTransactions getAllNonfinalizedTransactions()
Definition: storage.cpp:498
void insert(Batch &batch, Column const &col, K const &k, V const &v)
Definition: storage.hpp:457
auto stateDbStoragePath() const
Definition: storage.hpp:192
uint64_t getDagBlocksCount() const
Definition: storage.hpp:345
std::vector< blk_hash_t > getFinalizedDagBlockHashesByPeriod(PbftPeriod period)
Definition: storage.cpp:1247
bool transactionInDb(trx_hash_t const &hash)
Definition: storage.cpp:993
void saveOwnVerifiedVote(const std::shared_ptr< PbftVote > &vote)
Definition: storage.cpp:1122
bool minor_version_changed_
Definition: storage.hpp:175
bool createSnapshot(PbftPeriod period)
Definition: storage.cpp:302
SharedTransactions getFinalizedTransactions(std::vector< trx_hash_t > const &trx_hashes) const
Gets finalized transactions from provided hashes.
Definition: storage.cpp:871
void saveStatusField(StatusDbField const &field, uint64_t value)
Definition: storage.cpp:1023
void saveCurrentPillarBlockData(const pillar_chain::CurrentPillarBlockDataDb ¤t_pillar_block_data)
Definition: storage.cpp:743
rocksdb::ReadOptions read_options_
Definition: storage.hpp:163
std::unique_ptr< rocksdb::DB > db_
Definition: storage.hpp:161
bool exist(K const &key, Column const &column)
Definition: storage.hpp:430
void saveExtraRewardVote(const std::shared_ptr< PbftVote > &vote)
Definition: storage.cpp:1193
void removeDagBlock(blk_hash_t const &hash)
Definition: storage.cpp:511
fs::path path_
Definition: storage.hpp:156
void insert(Column const &col, K const &k, V const &v)
Definition: storage.hpp:452
std::vector< bool > transactionsInDb(std::vector< trx_hash_t > const &trx_hashes)
Definition: storage.cpp:1001
std::pair< blk_hash_t, std::vector< std::shared_ptr< DagBlock > > > getLastPbftBlockHashAndFinalizedDagBlockByPeriod(PbftPeriod period)
Definition: storage.cpp:1274
void savePeriodData(const PeriodData &period_data, Batch &write_batch)
Definition: storage.cpp:680
void deleteColumnData(const Column &c)
Definition: storage.cpp:208
auto const & path() const
Definition: storage.hpp:190
void recoverToPeriod(PbftPeriod period)
Definition: storage.cpp:335
fs::path state_db_path_
Definition: storage.hpp:158
static bytes asBytes(string const &b)
Definition: storage.hpp:367
std::shared_ptr< pillar_chain::PillarBlock > getLatestPillarBlock() const
Definition: storage.cpp:720
bool getPbftMgrStatus(PbftMgrStatus field)
Definition: storage.cpp:1052
bool major_version_changed_
Definition: storage.hpp:174
void savePillarBlock(const std::shared_ptr< pillar_chain::PillarBlock > &pillar_block)
Definition: storage.cpp:707
void clearPeriodDataHistory(PbftPeriod period, uint64_t dag_level_to_keep)
Definition: storage.cpp:591
void savePbftMgrField(PbftMgrField field, uint32_t value)
Definition: storage.cpp:1044
std::optional< std::pair< PbftRound, std::shared_ptr< PbftBlock > > > getCertVotedBlockInRound() const
Definition: storage.cpp:1079
static Slice make_slice(T const *begin, size_t size)
Definition: storage.hpp:372
std::vector< bool > transactionsFinalized(std::vector< trx_hash_t > const &trx_hashes)
Definition: storage.cpp:784
bool transactionFinalized(trx_hash_t const &hash)
Definition: storage.cpp:997
std::deque< SortitionParamsChange > getLastSortitionParams(size_t count)
Definition: storage.cpp:566
static Slice toSlice(string const &str)
Definition: storage.hpp:393
static auto toSlice(N const &n) -> std::enable_if_t< std::is_integral_v< N >||std::is_enum_v< N >, Slice >
Definition: storage.hpp:389
void deleteSnapshot(PbftPeriod period)
Definition: storage.cpp:367
std::shared_ptr< std::pair< PbftPeriod, uint32_t > > getDagBlockPeriod(blk_hash_t const &hash)
Definition: storage.cpp:1225
void saveDagBlock(DagBlock const &blk, Batch *write_batch_p=nullptr)
Definition: storage.cpp:534
void forEach(Column const &col, OnEntry const &f)
Definition: storage.cpp:1314
void remove(Column const &col, K const &k)
Definition: storage.hpp:467
DbStorage(DbStorage &&)=delete
std::set< PbftPeriod > snapshots_
Definition: storage.hpp:171
void updateDagBlockCounters(std::vector< DagBlock > blks)
Definition: storage.cpp:513
void removeCertVotedBlockInRound(Batch &write_batch)
Definition: storage.cpp:1095
DbStorage & operator=(DbStorage &&)=delete
string getPbftHead(blk_hash_t const &hash)
Definition: storage.cpp:1111
void savePbftMgrStatus(PbftMgrStatus field, bool const &value)
Definition: storage.cpp:1062
void replaceColumn(const Column &to_be_replaced_col, std::unique_ptr< rocksdb::ColumnFamilyHandle > &&replacing_col)
Definition: storage.cpp:190
std::optional< PbftBlock > getPbftBlock(PbftPeriod period) const
Definition: storage.cpp:824
void addPbftBlockPeriodToBatch(PbftPeriod period, taraxa::blk_hash_t const &pbft_block_hash, Batch &write_batch)
Definition: storage.cpp:1208
void addSystemTransactionToBatch(Batch &write_batch, SharedTransaction trx)
Definition: storage.cpp:897
auto lookup_int(K const &key, Column const &column) -> std::enable_if_t< std::is_integral_v< Int >, std::optional< Int >>
Definition: storage.hpp:421
auto getNumTransactionExecuted()
Definition: storage.hpp:348
void commitWriteBatch(Batch &write_batch)
Definition: storage.hpp:195
static void checkStatus(rocksdb::Status const &status)
Definition: storage.cpp:418
std::optional< SharedTransactions > getPeriodTransactions(PbftPeriod period) const
Definition: storage.cpp:953
static Batch createWriteBatch()
Definition: storage.cpp:424
void clearOwnVerifiedVotes(Batch &write_batch, const std::vector< std::shared_ptr< PbftVote >> &own_verified_votes)
Definition: storage.cpp:1137
level_t getLastBlocksLevel() const
Definition: storage.cpp:463
DbStorage & operator=(const DbStorage &)=delete
void addTransactionToBatch(Transaction const &trx, Batch &write_batch)
Definition: storage.cpp:985
std::set< blk_hash_t > getBlocksByLevel(level_t level)
Definition: storage.cpp:457
void setGenesisHash(const h256 &genesis_hash)
Definition: storage.cpp:387
auto dbStoragePath() const
Definition: storage.hpp:191
std::string lookup(K const &key, Column const &column) const
Definition: storage.hpp:410
uint32_t getMajorVersion() const
Definition: storage.cpp:408
std::vector< std::shared_ptr< DagBlock > > getFinalizedDagBlockByPeriod(PbftPeriod period)
Definition: storage.cpp:1260
const std::string kStateDbDir
Definition: storage.hpp:160
~DbStorage()
Definition: storage.cpp:401
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)
Definition: storage.cpp:30
void replaceTwoTPlusOneVotes(TwoTPlusOneVotedBlockType type, const std::vector< std::shared_ptr< PbftVote >> &votes)
Definition: storage.cpp:1144
std::vector< std::shared_ptr< PbftVote > > getOwnVerifiedVotes()
Definition: storage.cpp:1126
const std::string kDbDir
Definition: storage.hpp:159
void deleteTmpDirectories(const std::string &path) const
Definition: storage.cpp:124
std::optional< final_chain::TransactionLocation > getTransactionLocation(trx_hash_t const &hash) const
Definition: storage.cpp:768
std::map< level_t, std::vector< DagBlock > > getNonfinalizedDagBlocks()
Definition: storage.cpp:488
std::vector< std::shared_ptr< PillarVote > > getPeriodPillarVotes(PbftPeriod period) const
Definition: storage.cpp:970
dev::bytes getPeriodDataRaw(PbftPeriod period) const
Definition: storage.cpp:703
std::unique_ptr< rocksdb::ColumnFamilyHandle > copyColumn(rocksdb::ColumnFamilyHandle *orig_column, const std::string &new_col_name, bool move_data=false)
Definition: storage.cpp:146
std::pair< bool, PbftPeriod > getPeriodFromPbftHash(taraxa::blk_hash_t const &pbft_block_hash)
Definition: storage.cpp:1213
void insert(rocksdb::ColumnFamilyHandle *col, const K &k, const V &v)
Definition: storage.hpp:447
auto getNumTransactionInDag()
Definition: storage.hpp:349
void enableSnapshots()
Definition: storage.cpp:385
void saveProposalPeriodDagLevelsMap(uint64_t level, PbftPeriod period)
Definition: storage.cpp:1306
void replaceTwoTPlusOneVotesToBatch(TwoTPlusOneVotedBlockType type, const std::vector< std::shared_ptr< PbftVote >> &votes, Batch &write_batch)
Definition: storage.cpp:1155
void removeTempFiles() const
Definition: storage.cpp:99
bool hasMinorVersionChanged()
Definition: storage.hpp:362
uint64_t getStatusField(StatusDbField const &field)
Definition: storage.cpp:1012
static auto const & toSlice(Slice const &s)
Definition: storage.hpp:395
auto handle(Column const &col) const
Definition: storage.hpp:153
std::optional< pillar_chain::CurrentPillarBlockDataDb > getCurrentPillarBlockData() const
Definition: storage.cpp:747
std::atomic< uint64_t > dag_edge_count_
Definition: storage.hpp:167
std::vector< rocksdb::ColumnFamilyHandle * > handles_
Definition: storage.hpp:162
static Slice toSlice(dev::bytesConstRef const &b)
Definition: storage.hpp:379
std::vector< std::shared_ptr< PbftVote > > getRewardVotes()
Definition: storage.cpp:1197
uint64_t getDagEdgeCount() const
Definition: storage.hpp:346
void updateDbVersions()
Definition: storage.cpp:140
void addPbftHeadToBatch(taraxa::blk_hash_t const &head_hash, std::string const &head_str, Batch &write_batch)
Definition: storage.cpp:1117
void saveSortitionParamsChange(PbftPeriod period, const SortitionParamsChange ¶ms, Batch &batch)
Definition: storage.cpp:562
void addPbftMgrFieldToBatch(PbftMgrField field, uint32_t value, Batch &write_batch)
Definition: storage.cpp:1048
std::vector< std::shared_ptr< PbftVote > > getPeriodCertVotes(PbftPeriod period) const
Definition: storage.cpp:939
auto getNumBlockExecuted()
Definition: storage.hpp:350
bool hasMajorVersionChanged()
Definition: storage.hpp:363
std::vector< trx_hash_t > getPeriodSystemTransactionsHashes(PbftPeriod period) const
Definition: storage.cpp:919
bool pbftBlockInDb(blk_hash_t const &hash)
Definition: storage.cpp:1107
void removeDagBlockBatch(Batch &write_batch, blk_hash_t const &hash)
Definition: storage.cpp:507
std::shared_ptr< Transaction > getSystemTransaction(const trx_hash_t &hash) const
Definition: storage.cpp:901
void removeTransactionToBatch(trx_hash_t const &trx, Batch &write_batch)
Definition: storage.cpp:989
static Slice toSlice(dev::bytes const &b)
Definition: storage.hpp:386
std::optional< SortitionParamsChange > getParamsChangeForPeriod(PbftPeriod period)
Definition: storage.cpp:578
DbStorage(const DbStorage &)=delete
void savePbftHead(blk_hash_t const &hash, string const &pbft_chain_head_str)
Definition: storage.cpp:1113
const uint32_t kDbSnapshotsEachNblock
Definition: storage.hpp:168
void loadSnapshots()
Definition: storage.cpp:276
static Slice toSlice(dev::FixedHash< N > const &h)
Definition: storage.hpp:382
void removeFilesWithPattern(const std::string &directory, const std::regex &pattern) const
Definition: storage.cpp:106
std::unique_ptr< rocksdb::Iterator > getColumnIterator(const Column &c)
Definition: storage.cpp:410
void insert(Batch &batch, rocksdb::ColumnFamilyHandle *col, K const &k, V const &v)
Definition: storage.hpp:462
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
Definition: pillar_block.hpp:155
#define LOG_OBJECTS_DEFINE
Definition: logger.hpp:60
std::vector<::byte > bytes
Definition: Common.h:46
std::hash for asio::adress
Definition: FixedHash.h:483
rocksdb::WriteBatch Batch
Definition: storage.hpp:73
std::shared_ptr< Transaction > SharedTransaction
Definition: transaction.hpp:79
DBMetaKeys
Definition: storage.hpp:55
std::vector< byte > bytes
Definition: types.hpp:53
uint32_t PbftRound
Definition: types.hpp:25
EthBlockNumber PbftPeriod
Definition: types.hpp:24
std::vector< SharedTransaction > SharedTransactions
Definition: transaction.hpp:81
rocksdb::Slice Slice
Definition: storage.hpp:74
std::function< void(Slice const &, Slice const &)> OnEntry
Definition: storage.hpp:75
PbftMgrStatus
Definition: storage.hpp:48
@ NextVotedNullBlockHash
Definition: storage.hpp:52
@ ExecutedInRound
Definition: storage.hpp:50
@ NextVotedSoftValue
Definition: storage.hpp:51
@ ExecutedBlock
Definition: storage.hpp:49
uint64_t level_t
Definition: types.hpp:46
StatusDbField
Definition: storage.hpp:36
@ DbMinorVersion
Definition: storage.hpp:43
@ DbMajorVersion
Definition: storage.hpp:42
@ DagEdgeCount
Definition: storage.hpp:41
@ ExecutedTrxCount
Definition: storage.hpp:38
@ TrxCount
Definition: storage.hpp:39
@ ExecutedBlkCount
Definition: storage.hpp:37
@ DagBlkCount
Definition: storage.hpp:40
uint160_hash_t addr_t
Definition: types.hpp:39
PbftMgrField
Definition: storage.hpp:46
TwoTPlusOneVotedBlockType
Definition: verified_votes.hpp:11
Definition: transaction.hpp:11