OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
cbdc::config::options Struct Reference

Project-wide configuration options. More...

#include <config.hpp>

Data Fields

size_t m_stxo_cache_depth {defaults::stxo_cache_depth}
 Depth of the spent transaction cache in the atomizer, in blocks.
 
size_t m_window_size {defaults::window_size}
 Maximum number of unconfirmed transactions in atomizer-cli.
 
size_t m_input_count {defaults::input_count}
 Number of inputs in fixed-size transactions from atomizer-cli.
 
size_t m_output_count {defaults::output_count}
 Number of outputs in fixed-size transactions from atomizer-cli.
 
double m_invalid_rate {0.0}
 Proportion of invalid transactions sent from atomizer-cli.
 
double m_fixed_tx_rate {defaults::fixed_tx_rate}
 Proportion of fixed transactions sent from atomizer-cli.
 
size_t m_shard_completed_txs_cache_size
 The number of completed transactions that each locking shard (2PC) keeps in memory for responding to queries through the read-only endpoint.
 
std::vector< network::endpoint_tm_atomizer_endpoints
 List of atomizer endpoints, ordered by atomizer ID.
 
std::vector< network::endpoint_tm_archiver_endpoints
 List of archiver endpoints, ordered by archiver ID.
 
std::vector< network::endpoint_tm_sentinel_endpoints
 List of sentinel endpoints, ordered by sentinel ID.
 
std::vector< network::endpoint_tm_watchtower_client_endpoints
 List of watchtower client endpoints, ordered by watchtower ID.
 
std::vector< network::endpoint_tm_watchtower_internal_endpoints
 List of watchtower internal endpoints, ordered by watchtower ID.
 
std::vector< network::endpoint_tm_shard_endpoints
 List of shard endpoints, ordered by shard ID.
 
std::vector< network::endpoint_tm_atomizer_raft_endpoints
 List of atomizer raft endpoints, ordered by atomizer ID.
 
size_t m_batch_size {defaults::batch_size}
 Maximum transaction batch size for one log entry in the raft atomizer or one batch in the coordinator.
 
size_t m_target_block_interval {defaults::target_block_interval}
 Target block creation interval in the atomizer in milliseconds.
 
std::vector< logging::log_levelm_atomizer_loglevels
 List of atomizer log levels by atomizer ID.
 
int32_t m_election_timeout_upper
 Raft election timeout upper bound in milliseconds.
 
int32_t m_election_timeout_lower
 Raft election timeout lower bound in milliseconds.
 
int32_t m_heartbeat {defaults::heartbeat}
 Raft heartbeat timeout in milliseconds.
 
int32_t m_snapshot_distance {0}
 Raft snapshot distance, in number of log entries.
 
int32_t m_raft_max_batch {defaults::raft_max_batch}
 Maximum number of raft log entries to batch into one RPC message.
 
std::vector< logging::log_levelm_shard_loglevels
 List of shard log levels by shard ID.
 
std::vector< std::string > m_shard_db_dirs
 List of shard DB paths by shard ID.
 
std::vector< shard_range_tm_shard_ranges
 List of shard UHS ID ranges by shard ID.
 
std::optional< privkey_tm_seed_privkey
 private key used for initial seed.
 
size_t m_seed_value {0}
 output value to use for initial seed.
 
size_t m_seed_from {0}
 starting index for faked input used for initial seed.
 
size_t m_seed_to {0}
 ending index for faked input used for initial seed.
 
std::vector< logging::log_levelm_sentinel_loglevels
 List of sentinel log levels by sentinel ID.
 
std::vector< logging::log_levelm_archiver_loglevels
 List of archiver log levels by archiver ID.
 
std::vector< logging::log_levelm_watchtower_loglevels
 List of archiver log levels by watchtower ID.
 
std::vector< std::string > m_archiver_db_dirs
 List of archiver DB paths by archiver ID.
 
bool m_fixed_tx_mode {false}
 Flag set if m_input_count or m_output_count are greater than zero.
 
bool m_twophase_mode {false}
 Flag set if the architecture is two-phase commit.
 
std::vector< std::vector< network::endpoint_t > > m_locking_shard_endpoints
 List of locking shard endpoints, ordered by shard ID then node ID.
 
std::vector< std::vector< network::endpoint_t > > m_locking_shard_raft_endpoints
 List of locking shard raft endpoints, ordered by shard ID then node ID.
 
std::vector< std::vector< network::endpoint_t > > m_locking_shard_readonly_endpoints
 List of locking shard read-only endpoints, ordered by shard ID then node ID.
 
std::vector< std::vector< network::endpoint_t > > m_coordinator_endpoints
 List of coordinator endpoints, ordered by shard ID then node ID.
 
std::vector< std::vector< network::endpoint_t > > m_coordinator_raft_endpoints
 List of coordinator raft endpoints, ordered by shard ID then node ID.
 
size_t m_coordinator_max_threads {defaults::coordinator_max_threads}
 Coordinator thread count limit.
 
std::vector< logging::log_levelm_coordinator_loglevels
 List of coordinator log levels, ordered by coordinator ID.
 
size_t m_initial_mint_count {defaults::initial_mint_count}
 Number of outputs in the initial mint transaction.
 
size_t m_initial_mint_value {defaults::initial_mint_value}
 Value for all outputs in the initial mint transaction.
 
size_t m_watchtower_block_cache_size
 Number of blocks to store in watchtower block caches.
 
size_t m_watchtower_error_cache_size
 Number of errors to store in watchtower error caches.
 
size_t m_loadgen_count {0}
 Number of load generators over which to split pre-seeded UTXOs.
 
std::unordered_map< size_t, privkey_tm_sentinel_private_keys
 Private keys for sentinels.
 
std::unordered_set< pubkey_t, hashing::nullm_sentinel_public_keys
 Public keys for sentinels.
 
size_t m_attestation_threshold {defaults::attestation_threshold}
 Number of sentinel attestations needed for a compact transaction.
 

Detailed Description

Project-wide configuration options.

Definition at line 132 of file config.hpp.

Field Documentation

◆ m_archiver_db_dirs

std::vector<std::string> cbdc::config::options::m_archiver_db_dirs

List of archiver DB paths by archiver ID.

Definition at line 208 of file config.hpp.

◆ m_archiver_endpoints

std::vector<network::endpoint_t> cbdc::config::options::m_archiver_endpoints

List of archiver endpoints, ordered by archiver ID.

Definition at line 154 of file config.hpp.

◆ m_archiver_loglevels

std::vector<logging::log_level> cbdc::config::options::m_archiver_loglevels

List of archiver log levels by archiver ID.

Definition at line 204 of file config.hpp.

◆ m_atomizer_endpoints

std::vector<network::endpoint_t> cbdc::config::options::m_atomizer_endpoints

List of atomizer endpoints, ordered by atomizer ID.

Definition at line 152 of file config.hpp.

◆ m_atomizer_loglevels

std::vector<logging::log_level> cbdc::config::options::m_atomizer_loglevels

List of atomizer log levels by atomizer ID.

Definition at line 171 of file config.hpp.

◆ m_atomizer_raft_endpoints

std::vector<network::endpoint_t> cbdc::config::options::m_atomizer_raft_endpoints

List of atomizer raft endpoints, ordered by atomizer ID.

Definition at line 164 of file config.hpp.

◆ m_attestation_threshold

size_t cbdc::config::options::m_attestation_threshold {defaults::attestation_threshold}

Number of sentinel attestations needed for a compact transaction.

Definition at line 260 of file config.hpp.

Referenced by cbdc::atomizer::atomizer_raft::tx_notify().

◆ m_batch_size

size_t cbdc::config::options::m_batch_size {defaults::batch_size}

Maximum transaction batch size for one log entry in the raft atomizer or one batch in the coordinator.

Definition at line 167 of file config.hpp.

Referenced by cbdc::config::read_raft_options().

◆ m_coordinator_endpoints

std::vector<std::vector<network::endpoint_t> > cbdc::config::options::m_coordinator_endpoints

List of coordinator endpoints, ordered by shard ID then node ID.

Definition at line 226 of file config.hpp.

◆ m_coordinator_loglevels

std::vector<logging::log_level> cbdc::config::options::m_coordinator_loglevels

List of coordinator log levels, ordered by coordinator ID.

Definition at line 234 of file config.hpp.

◆ m_coordinator_max_threads

size_t cbdc::config::options::m_coordinator_max_threads {defaults::coordinator_max_threads}

Coordinator thread count limit.

Definition at line 232 of file config.hpp.

◆ m_coordinator_raft_endpoints

std::vector<std::vector<network::endpoint_t> > cbdc::config::options::m_coordinator_raft_endpoints

List of coordinator raft endpoints, ordered by shard ID then node ID.

Definition at line 230 of file config.hpp.

◆ m_election_timeout_lower

int32_t cbdc::config::options::m_election_timeout_lower
Initial value:
{
defaults::election_timeout_lower_bound}

Raft election timeout lower bound in milliseconds.

Definition at line 176 of file config.hpp.

Referenced by cbdc::coordinator::controller::controller(), and cbdc::config::read_raft_options().

◆ m_election_timeout_upper

int32_t cbdc::config::options::m_election_timeout_upper
Initial value:
{
defaults::election_timeout_upper_bound}

Raft election timeout upper bound in milliseconds.

Definition at line 173 of file config.hpp.

Referenced by cbdc::coordinator::controller::controller(), and cbdc::config::read_raft_options().

◆ m_fixed_tx_mode

bool cbdc::config::options::m_fixed_tx_mode {false}

Flag set if m_input_count or m_output_count are greater than zero.

Causes the atomizer-cli to send fixed-size transactions.

Definition at line 211 of file config.hpp.

Referenced by cbdc::config::read_loadgen_options().

◆ m_fixed_tx_rate

double cbdc::config::options::m_fixed_tx_rate {defaults::fixed_tx_rate}

Proportion of fixed transactions sent from atomizer-cli.

Definition at line 144 of file config.hpp.

Referenced by cbdc::config::read_loadgen_options().

◆ m_heartbeat

int32_t cbdc::config::options::m_heartbeat {defaults::heartbeat}

Raft heartbeat timeout in milliseconds.

Definition at line 179 of file config.hpp.

Referenced by cbdc::coordinator::controller::controller(), and cbdc::config::read_raft_options().

◆ m_initial_mint_count

size_t cbdc::config::options::m_initial_mint_count {defaults::initial_mint_count}

Number of outputs in the initial mint transaction.

Definition at line 237 of file config.hpp.

Referenced by cbdc::config::read_loadgen_options().

◆ m_initial_mint_value

size_t cbdc::config::options::m_initial_mint_value {defaults::initial_mint_value}

Value for all outputs in the initial mint transaction.

Definition at line 239 of file config.hpp.

Referenced by cbdc::config::read_loadgen_options().

◆ m_input_count

size_t cbdc::config::options::m_input_count {defaults::input_count}

Number of inputs in fixed-size transactions from atomizer-cli.

Definition at line 138 of file config.hpp.

Referenced by cbdc::config::read_loadgen_options().

◆ m_invalid_rate

double cbdc::config::options::m_invalid_rate {0.0}

Proportion of invalid transactions sent from atomizer-cli.

Definition at line 142 of file config.hpp.

Referenced by cbdc::config::read_loadgen_options().

◆ m_loadgen_count

size_t cbdc::config::options::m_loadgen_count {0}

Number of load generators over which to split pre-seeded UTXOs.

Definition at line 251 of file config.hpp.

Referenced by cbdc::config::read_loadgen_options().

◆ m_locking_shard_endpoints

std::vector<std::vector<network::endpoint_t> > cbdc::config::options::m_locking_shard_endpoints

List of locking shard endpoints, ordered by shard ID then node ID.

Definition at line 216 of file config.hpp.

◆ m_locking_shard_raft_endpoints

std::vector<std::vector<network::endpoint_t> > cbdc::config::options::m_locking_shard_raft_endpoints

List of locking shard raft endpoints, ordered by shard ID then node ID.

Definition at line 220 of file config.hpp.

◆ m_locking_shard_readonly_endpoints

std::vector<std::vector<network::endpoint_t> > cbdc::config::options::m_locking_shard_readonly_endpoints

List of locking shard read-only endpoints, ordered by shard ID then node ID.

Definition at line 224 of file config.hpp.

◆ m_output_count

size_t cbdc::config::options::m_output_count {defaults::output_count}

Number of outputs in fixed-size transactions from atomizer-cli.

Definition at line 140 of file config.hpp.

Referenced by cbdc::config::read_loadgen_options().

◆ m_raft_max_batch

int32_t cbdc::config::options::m_raft_max_batch {defaults::raft_max_batch}

Maximum number of raft log entries to batch into one RPC message.

Definition at line 183 of file config.hpp.

Referenced by cbdc::coordinator::controller::controller(), and cbdc::config::read_raft_options().

◆ m_seed_from

size_t cbdc::config::options::m_seed_from {0}

starting index for faked input used for initial seed.

Definition at line 197 of file config.hpp.

◆ m_seed_privkey

std::optional<privkey_t> cbdc::config::options::m_seed_privkey

private key used for initial seed.

Definition at line 193 of file config.hpp.

◆ m_seed_to

size_t cbdc::config::options::m_seed_to {0}

ending index for faked input used for initial seed.

Definition at line 199 of file config.hpp.

◆ m_seed_value

size_t cbdc::config::options::m_seed_value {0}

output value to use for initial seed.

Definition at line 195 of file config.hpp.

◆ m_sentinel_endpoints

std::vector<network::endpoint_t> cbdc::config::options::m_sentinel_endpoints

List of sentinel endpoints, ordered by sentinel ID.

Definition at line 156 of file config.hpp.

◆ m_sentinel_loglevels

std::vector<logging::log_level> cbdc::config::options::m_sentinel_loglevels

List of sentinel log levels by sentinel ID.

Definition at line 202 of file config.hpp.

◆ m_sentinel_private_keys

std::unordered_map<size_t, privkey_t> cbdc::config::options::m_sentinel_private_keys

Private keys for sentinels.

Definition at line 254 of file config.hpp.

◆ m_sentinel_public_keys

std::unordered_set<pubkey_t, hashing::null> cbdc::config::options::m_sentinel_public_keys

Public keys for sentinels.

Definition at line 257 of file config.hpp.

Referenced by cbdc::atomizer::atomizer_raft::tx_notify().

◆ m_shard_completed_txs_cache_size

size_t cbdc::config::options::m_shard_completed_txs_cache_size
Initial value:
{
defaults::shard_completed_txs_cache_size}

The number of completed transactions that each locking shard (2PC) keeps in memory for responding to queries through the read-only endpoint.

Definition at line 148 of file config.hpp.

◆ m_shard_db_dirs

std::vector<std::string> cbdc::config::options::m_shard_db_dirs

List of shard DB paths by shard ID.

Definition at line 187 of file config.hpp.

◆ m_shard_endpoints

std::vector<network::endpoint_t> cbdc::config::options::m_shard_endpoints

List of shard endpoints, ordered by shard ID.

Definition at line 162 of file config.hpp.

◆ m_shard_loglevels

std::vector<logging::log_level> cbdc::config::options::m_shard_loglevels

List of shard log levels by shard ID.

Definition at line 185 of file config.hpp.

◆ m_shard_ranges

std::vector<shard_range_t> cbdc::config::options::m_shard_ranges

List of shard UHS ID ranges by shard ID.

Each shard range is inclusive of the start and end of the range.

Definition at line 190 of file config.hpp.

◆ m_snapshot_distance

int32_t cbdc::config::options::m_snapshot_distance {0}

Raft snapshot distance, in number of log entries.

Definition at line 181 of file config.hpp.

Referenced by cbdc::config::read_raft_options().

◆ m_stxo_cache_depth

size_t cbdc::config::options::m_stxo_cache_depth {defaults::stxo_cache_depth}

Depth of the spent transaction cache in the atomizer, in blocks.

Definition at line 134 of file config.hpp.

◆ m_target_block_interval

size_t cbdc::config::options::m_target_block_interval {defaults::target_block_interval}

Target block creation interval in the atomizer in milliseconds.

Definition at line 169 of file config.hpp.

◆ m_twophase_mode

bool cbdc::config::options::m_twophase_mode {false}

Flag set if the architecture is two-phase commit.

Definition at line 213 of file config.hpp.

◆ m_watchtower_block_cache_size

size_t cbdc::config::options::m_watchtower_block_cache_size
Initial value:
{
defaults::watchtower_block_cache_size}

Number of blocks to store in watchtower block caches.

(0=unlimited). Defaults to 1 hour of blocks.

Definition at line 243 of file config.hpp.

◆ m_watchtower_client_endpoints

std::vector<network::endpoint_t> cbdc::config::options::m_watchtower_client_endpoints

List of watchtower client endpoints, ordered by watchtower ID.

Definition at line 158 of file config.hpp.

◆ m_watchtower_error_cache_size

size_t cbdc::config::options::m_watchtower_error_cache_size
Initial value:
{
defaults::watchtower_error_cache_size}

Number of errors to store in watchtower error caches.

(0=unlimited).

Definition at line 247 of file config.hpp.

◆ m_watchtower_internal_endpoints

std::vector<network::endpoint_t> cbdc::config::options::m_watchtower_internal_endpoints

List of watchtower internal endpoints, ordered by watchtower ID.

Definition at line 160 of file config.hpp.

◆ m_watchtower_loglevels

std::vector<logging::log_level> cbdc::config::options::m_watchtower_loglevels

List of archiver log levels by watchtower ID.

Definition at line 206 of file config.hpp.

◆ m_window_size

size_t cbdc::config::options::m_window_size {defaults::window_size}

Maximum number of unconfirmed transactions in atomizer-cli.

Definition at line 136 of file config.hpp.

Referenced by cbdc::config::read_loadgen_options().


The documentation for this struct was generated from the following file: