TARAXA
Loading...
Searching...
No Matches
config.hpp
Go to the documentation of this file.
1#pragma once
2
4#include "config/genesis.hpp"
5#include "config/network.hpp"
7
8namespace taraxa {
9
21void dec_json(Json::Value const &json, DBConfig &db_config);
22
40
42 static constexpr uint64_t kDefaultLightNodeHistoryDays = 1;
43
44 FullNodeConfig() = default;
45 // The reason of using Json::Value as a union is that in the tests
46 // there are attempts to pass char const* to this constructor, which
47 // is ambiguous (char const* may promote to Json::Value)
48 // if you have std::string and Json::Value constructor. It was easier
49 // to just treat Json::Value as a std::string or Json::Value depending on
50 // the contents
51 explicit FullNodeConfig(const Json::Value &file_name_str_or_json_object,
52 const std::vector<Json::Value> &wallets_jsons, const Json::Value &genesis = Json::Value::null,
53 const std::string &config_file_path = "");
54
55 void overwriteConfigFromJson(const Json::Value &config_json);
56
60 const WalletConfig &getFirstWallet() const;
61
62 std::string toString() const;
63
64 std::string json_file_name;
65 // Vector of wallets used by node
66 std::vector<WalletConfig> wallets;
67 fs::path data_path;
68 fs::path db_path;
74 bool is_light_node = false; // Is light node
75 uint64_t light_node_history = 0; // Number of periods to keep in history for a light node
76 uint32_t dag_expiry_limit = kDagExpiryLevelLimit; // For unit tests only
77 uint32_t max_levels_per_period = kMaxLevelsPerPeriod; // For unit tests only
79 uint64_t propose_dag_gas_limit = 0x1E0A6E0;
80 uint64_t propose_pbft_gas_limit = 0x12C684C0;
81
82 // config values that limits transactions pool
84
85 // Use blocks legacy gas pricer, if false gas pricer is based on transaction pool
86 bool blocks_gas_pricer = false;
87
88 // Report malicious behaviour like double voting, etc... to slashing/jailing contract
90
91 auto net_file_path() const { return data_path / "net"; }
92
97 void validate() const;
98};
99
100void dec_json(const Json::Value &json, LoggingConfig &obj, std::filesystem::path data_path);
101
102} // namespace taraxa
Definition FixedHash.h:35
Definition Address.h:13
std::hash for asio::adress
Definition FixedHash.h:483
Definition state_config.hpp:71
vrf_pk_t getVrfPublicKey(vrf_sk_t const &sk)
Definition vrf_wrapper.cpp:12
Definition app.hpp:16
constexpr uint32_t kDefaultTransactionPoolSize
Definition constants.hpp:31
uint32_t db_max_open_files
Definition config.hpp:13
PbftPeriod db_revert_to_period
Definition config.hpp:14
bool migrate_only
Definition config.hpp:17
void dec_json(Json::Value const &json, DBConfig &db_config)
Definition config.cpp:12
EthBlockNumber PbftPeriod
Definition types.hpp:25
bool migrate_receipts_by_period
Definition config.hpp:19
constexpr uint16_t kMaxLevelsPerPeriod
Definition constants.hpp:18
bool prune_state_db
Definition config.hpp:16
PbftPeriod rebuild_db_period
Definition config.hpp:18
uint32_t db_max_snapshots
Definition config.hpp:12
constexpr uint32_t kDagExpiryLevelLimit
Definition constants.hpp:19
uint32_t db_snapshot_each_n_pbft_block
Definition config.hpp:11
bool rebuild_db
Definition config.hpp:15
Definition config.hpp:10
Definition config.hpp:41
uint32_t transactions_pool_size
Definition config.hpp:83
static constexpr uint64_t kDefaultLightNodeHistoryDays
Definition config.hpp:42
void overwriteConfigFromJson(const Json::Value &config_json)
Definition config.cpp:20
uint64_t propose_pbft_gas_limit
Definition config.hpp:80
bool report_malicious_behaviour
Definition config.hpp:89
bool blocks_gas_pricer
Definition config.hpp:86
uint32_t dag_expiry_limit
Definition config.hpp:76
uint64_t propose_dag_gas_limit
Definition config.hpp:79
uint32_t max_levels_per_period
Definition config.hpp:77
fs::path data_path
Definition config.hpp:67
LoggingConfig logging
Definition config.hpp:73
state_api::Opts opts_final_chain
Definition config.hpp:72
DBConfig db_config
Definition config.hpp:70
NetworkConfig network
Definition config.hpp:69
GenesisConfig genesis
Definition config.hpp:71
uint64_t light_node_history
Definition config.hpp:75
void validate() const
Validates config values, throws configexception if validation fails.
Definition config.cpp:131
uint32_t final_chain_cache_in_blocks
Definition config.hpp:78
const WalletConfig & getFirstWallet() const
Definition config.cpp:129
fs::path db_path
Definition config.hpp:68
bool is_light_node
Definition config.hpp:74
std::string json_file_name
Definition config.hpp:64
auto net_file_path() const
Definition config.hpp:91
std::string toString() const
std::vector< WalletConfig > wallets
Definition config.hpp:66
Definition genesis.hpp:23
Definition logging_config.hpp:12
Definition network.hpp:68
Definition config.hpp:23
const vrf_wrapper::vrf_sk_t vrf_secret
Definition config.hpp:37
const dev::Secret node_secret
Definition config.hpp:33
WalletConfig(const WalletConfig &)=default
const addr_t node_addr
Definition config.hpp:35
WalletConfig(WalletConfig &&)=default
const vrf_wrapper::vrf_pk_t vrf_pk
Definition config.hpp:38
const dev::Public node_pk
Definition config.hpp:34
WalletConfig(dev::Secret &&node_secret, const vrf_wrapper::vrf_sk_t &vrf_secret)
Definition config.hpp:24