xrpld
Loading...
Searching...
No Matches
xrpl::Config Class Reference

#include <Config.h>

Inheritance diagram for xrpl::Config:
Collaboration diagram for xrpl::Config:

Public Member Functions

std::filesystem::path getDebugLogFile () const
 Returns the full path and filename of the debug log file.
 Config ()
void setup (std::string const &strConf, bool bQuiet, bool bSilent, bool bStandalone)
void setupControl (bool bQuiet, bool bSilent, bool bStandalone)
void loadFromString (std::string const &fileContents)
 Load the config from the contents of the string.
bool quiet () const
bool silent () const
bool standalone () const
bool useTxTables () const
bool canSign () const
int getValueFor (SizedItem item, std::optional< std::size_t > node=std::nullopt) const
 Retrieve the default value for the item at the specified node size.
beast::Journal journal () const
bool exists (std::string const &name) const
 Returns true if a section with the given name exists.
void overwrite (std::string const &section, std::string const &key, std::string const &value)
 Overwrite a key/value pair with a command line argument If the section does not exist it is created.
void deprecatedClearSection (std::string const &section)
 Remove all the key/value pairs from the section.
void legacy (std::string const &section, std::string value)
 Set a value that is not a key/value pair.
std::string legacy (std::string const &sectionName) const
 Get the legacy value of a section.
bool hadTrailingComments () const
Section & section (std::string const &name)
 Returns the section with the given name.
Section const & section (std::string const &name) const
Section const & operator[] (std::string const &name) const
Section & operator[] (std::string const &name)

Public Attributes

std::filesystem::path configDir
bool doImport = false
bool elbSupport = false
std::vector< std::string > ips
std::vector< std::string > ipsFixed
StartUpType startUp = StartUpType::Normal
bool startValid = false
std::string startLedger
std::optional< UInt256 > trapTxHash
uint32_t networkId = 0
std::size_t networkQuorum = 1
int relayUntrustedValidations = 1
int relayUntrustedProposals = 0
bool peerPrivate = false
std::size_t peersMax = 0
std::size_t peersOutMax = 0
std::size_t peersInMax = 0
int pathSearchOld = 2
int pathSearch = 2
int pathSearchFast = 2
int pathSearchMax = 3
std::optional< std::size_t > validationQuorum
FeeSetup fees
std::uint32_t ledgerHistory = 256
std::uint32_t fetchDepth = 1000000000
std::size_t nodeSize = 0
bool sslVerify = true
std::string sslVerifyFile
std::string sslVerifyDir
bool compression = false
bool ledgerReplay = false
int maxTransactions = 250
std::optional< std::size_t > maxSubscriptionsPerConnection
std::chrono::seconds amendmentMajorityTime = kDefaultAmendmentMajorityTime
int workers = 0
int ioWorkers = 0
int prefetchWorkers = 0
bool forceMultiThread = false
std::optional< int > sweepInterval
bool vpReduceRelayBaseSquelchEnable = false
std::size_t vpReduceRelaySquelchMaxSelectedPeers = 5
 ////////////////// !
bool txReduceRelayEnable = false
 ////////////// END OF TEMPORARY CODE BLOCK /////////////////////
bool txReduceRelayMetrics = false
std::size_t txReduceRelayMinPeers = 20
std::size_t txRelayPercentage = 25
std::optional< beast::ip::Endpoint > rpcIp
std::unordered_set< UInt256, beast::Uhash<> > features
std::string serverDomain
std::chrono::seconds maxUnknownTime {600}
std::chrono::seconds maxDivergedTime {300}
std::optional< std::size_t > maxUntrustedCount
std::optional< std::size_t > maxTrustedCount
bool betaRpcApi = false
bool fastLoad = false
std::optional< std::pair< std::uint32_t, std::uint32_t > > forcedLedgerRangePresent
std::optional< std::size_t > validatorListThreshold

Static Public Attributes

static constexpr std::string_view kConfigFileName = "xrpld.cfg"
static constexpr std::string_view kConfigLegacyName = "rippled.cfg"
static constexpr std::string_view kDatabaseDirName = "db"
static constexpr std::string_view kValidatorsFileName = "validators.txt"
static constexpr int kMaxJobQueueTx = 1000
static constexpr int kMinJobQueueTx = 100
static constexpr std::size_t kMinManifestCount = 50
static constexpr std::size_t kMaxManifestCount = 1000

Protected Member Functions

void build (IniFileSections const &ifs)

Private Member Functions

void load ()

Private Attributes

std::filesystem::path configFile_
std::filesystem::path debugLogfile_
beast::Journal const j_
bool quiet_ = false
bool silent_ = false
bool runStandalone_ = false
 Operate in stand-alone mode.
bool useTxTables_ = true
bool signingEnabled_ = false
 Determines if the server will sign a tx, given an account's secret seed.
std::uint64_t const ramSize_
std::unordered_map< std::string, Section > map_

Detailed Description

Definition at line 88 of file src/xrpld/core/Config.h.

Constructor & Destructor Documentation

◆ Config()

xrpl::Config::Config ( )

Definition at line 260 of file xrpld/core/detail/Config.cpp.

Member Function Documentation

◆ getDebugLogFile()

std::filesystem::path xrpl::Config::getDebugLogFile ( ) const
nodiscard

Returns the full path and filename of the debug log file.

Definition at line 1184 of file xrpld/core/detail/Config.cpp.

◆ load()

void xrpl::Config::load ( )
private

Definition at line 444 of file xrpld/core/detail/Config.cpp.

◆ setup()

void xrpl::Config::setup ( std::string const & strConf,
bool bQuiet,
bool bSilent,
bool bStandalone )

Definition at line 301 of file xrpld/core/detail/Config.cpp.

◆ setupControl()

void xrpl::Config::setupControl ( bool bQuiet,
bool bSilent,
bool bStandalone )

Definition at line 266 of file xrpld/core/detail/Config.cpp.

◆ loadFromString()

void xrpl::Config::loadFromString ( std::string const & fileContents)

Load the config from the contents of the string.

Parameters
fileContentsString representing the config contents.

////////////////// !!TEMPORARY CODE BLOCK!! ////////////////////////

////////////// !!END OF TEMPORARY CODE BLOCK!! /////////////////////

////////////////// !!TEMPORARY CODE BLOCK!! ///////////////////////

////////////// !!END OF TEMPORARY CODE BLOCK!! /////////////////////

Definition at line 467 of file xrpld/core/detail/Config.cpp.

◆ quiet()

bool xrpl::Config::quiet ( ) const
nodiscard

Definition at line 350 of file src/xrpld/core/Config.h.

◆ silent()

bool xrpl::Config::silent ( ) const
nodiscard

Definition at line 355 of file src/xrpld/core/Config.h.

◆ standalone()

bool xrpl::Config::standalone ( ) const
nodiscard

Definition at line 360 of file src/xrpld/core/Config.h.

◆ useTxTables()

bool xrpl::Config::useTxTables ( ) const
nodiscard

Definition at line 366 of file src/xrpld/core/Config.h.

◆ canSign()

bool xrpl::Config::canSign ( ) const
nodiscard

Definition at line 372 of file src/xrpld/core/Config.h.

◆ getValueFor()

int xrpl::Config::getValueFor ( SizedItem item,
std::optional< std::size_t > node = std::nullopt ) const
nodiscard

Retrieve the default value for the item at the specified node size.

Parameters
itemThe item for which the default value is needed
nodeOptional value, used to adjust the result to match the size of a node (0: tiny, ..., 4: huge). If unseated, uses the configured size (NODE_SIZE).
Exceptions
Thismethod can throw std::out_of_range if you ask for values that it does not recognize or request a non-default node-size.
Returns
The value for the requested item.
Note
The defaults are selected so as to be reasonable, but the node size is an imprecise metric that combines multiple aspects of the underlying system; this means that we can't provide optimal defaults in the code for every case.

Definition at line 1218 of file xrpld/core/detail/Config.cpp.

◆ journal()

beast::Journal xrpl::Config::journal ( ) const
nodiscard

Definition at line 399 of file src/xrpld/core/Config.h.

◆ exists()

bool xrpl::BasicConfig::exists ( std::string const & name) const
nodiscardinherited

Returns true if a section with the given name exists.

Definition at line 115 of file BasicConfig.cpp.

◆ section() [1/2]

Section & xrpl::BasicConfig::section ( std::string const & name)
inherited

Returns the section with the given name.

If the section does not exist, an empty section is returned.

Definition at line 121 of file BasicConfig.cpp.

◆ section() [2/2]

Section const & xrpl::BasicConfig::section ( std::string const & name) const
nodiscardinherited

Definition at line 127 of file BasicConfig.cpp.

◆ operator[]() [1/2]

Section const & xrpl::BasicConfig::operator[] ( std::string const & name) const
inherited

Definition at line 245 of file BasicConfig.h.

◆ operator[]() [2/2]

Section & xrpl::BasicConfig::operator[] ( std::string const & name)
inherited

Definition at line 251 of file BasicConfig.h.

◆ overwrite()

void xrpl::BasicConfig::overwrite ( std::string const & section,
std::string const & key,
std::string const & value )
inherited

Overwrite a key/value pair with a command line argument If the section does not exist it is created.

The previous value, if any, is overwritten.

Definition at line 137 of file BasicConfig.cpp.

◆ deprecatedClearSection()

void xrpl::BasicConfig::deprecatedClearSection ( std::string const & section)
inherited

Remove all the key/value pairs from the section.

Definition at line 145 of file BasicConfig.cpp.

◆ legacy() [1/2]

void xrpl::BasicConfig::legacy ( std::string const & section,
std::string value )
inherited

Set a value that is not a key/value pair.

The value is stored as the section's first value and may be retrieved through section::legacy.

Parameters
sectionName of the section to modify.
valueContents of the legacy value.

Definition at line 153 of file BasicConfig.cpp.

◆ legacy() [2/2]

std::string xrpl::BasicConfig::legacy ( std::string const & sectionName) const
nodiscardinherited

Get the legacy value of a section.

A section with a single-line value may be retrieved as a legacy value.

Parameters
sectionNameRetrieve the contents of this section's legacy value.
Returns
Contents of the legacy value.

Definition at line 159 of file BasicConfig.cpp.

◆ hadTrailingComments()

bool xrpl::BasicConfig::hadTrailingComments ( ) const
nodiscardinherited

Definition at line 300 of file BasicConfig.h.

◆ build()

void xrpl::BasicConfig::build ( IniFileSections const & ifs)
protectedinherited

Definition at line 165 of file BasicConfig.cpp.

Member Data Documentation

◆ kConfigFileName

std::string_view xrpl::Config::kConfigFileName = "xrpld.cfg"
staticconstexpr

Definition at line 92 of file src/xrpld/core/Config.h.

◆ kConfigLegacyName

std::string_view xrpl::Config::kConfigLegacyName = "rippled.cfg"
staticconstexpr

Definition at line 93 of file src/xrpld/core/Config.h.

◆ kDatabaseDirName

std::string_view xrpl::Config::kDatabaseDirName = "db"
staticconstexpr

Definition at line 94 of file src/xrpld/core/Config.h.

◆ kValidatorsFileName

std::string_view xrpl::Config::kValidatorsFileName = "validators.txt"
staticconstexpr

Definition at line 95 of file src/xrpld/core/Config.h.

◆ configFile_

std::filesystem::path xrpl::Config::configFile_
private

Definition at line 104 of file src/xrpld/core/Config.h.

◆ configDir

std::filesystem::path xrpl::Config::configDir

Definition at line 107 of file src/xrpld/core/Config.h.

◆ debugLogfile_

std::filesystem::path xrpl::Config::debugLogfile_
private

Definition at line 110 of file src/xrpld/core/Config.h.

◆ j_

beast::Journal const xrpl::Config::j_
private

Definition at line 114 of file src/xrpld/core/Config.h.

◆ quiet_

bool xrpl::Config::quiet_ = false
private

Definition at line 116 of file src/xrpld/core/Config.h.

◆ silent_

bool xrpl::Config::silent_ = false
private

Definition at line 117 of file src/xrpld/core/Config.h.

◆ runStandalone_

bool xrpl::Config::runStandalone_ = false
private

Operate in stand-alone mode.

In stand alone mode:

  • Peer connections are not attempted or accepted
  • The ledger is not advanced automatically.
  • If no ledger is loaded, the default ledger with the root account is created.

Definition at line 128 of file src/xrpld/core/Config.h.

◆ useTxTables_

bool xrpl::Config::useTxTables_ = true
private

Definition at line 130 of file src/xrpld/core/Config.h.

◆ signingEnabled_

bool xrpl::Config::signingEnabled_ = false
private

Determines if the server will sign a tx, given an account's secret seed.

In the past, this was allowed, but this functionality can have security implications. The new default is to not allow this functionality, but a config option is included to enable this.

Definition at line 139 of file src/xrpld/core/Config.h.

◆ ramSize_

std::uint64_t const xrpl::Config::ramSize_
private

Definition at line 142 of file src/xrpld/core/Config.h.

◆ doImport

bool xrpl::Config::doImport = false

Definition at line 145 of file src/xrpld/core/Config.h.

◆ elbSupport

bool xrpl::Config::elbSupport = false

Definition at line 146 of file src/xrpld/core/Config.h.

◆ ips

std::vector<std::string> xrpl::Config::ips

Definition at line 149 of file src/xrpld/core/Config.h.

◆ ipsFixed

std::vector<std::string> xrpl::Config::ipsFixed

Definition at line 152 of file src/xrpld/core/Config.h.

◆ startUp

StartUpType xrpl::Config::startUp = StartUpType::Normal

Definition at line 154 of file src/xrpld/core/Config.h.

◆ startValid

bool xrpl::Config::startValid = false

Definition at line 156 of file src/xrpld/core/Config.h.

◆ startLedger

std::string xrpl::Config::startLedger

Definition at line 158 of file src/xrpld/core/Config.h.

◆ trapTxHash

std::optional<UInt256> xrpl::Config::trapTxHash

Definition at line 160 of file src/xrpld/core/Config.h.

◆ networkId

uint32_t xrpl::Config::networkId = 0

Definition at line 163 of file src/xrpld/core/Config.h.

◆ networkQuorum

std::size_t xrpl::Config::networkQuorum = 1

Definition at line 167 of file src/xrpld/core/Config.h.

◆ relayUntrustedValidations

int xrpl::Config::relayUntrustedValidations = 1

Definition at line 172 of file src/xrpld/core/Config.h.

◆ relayUntrustedProposals

int xrpl::Config::relayUntrustedProposals = 0

Definition at line 173 of file src/xrpld/core/Config.h.

◆ peerPrivate

bool xrpl::Config::peerPrivate = false

Definition at line 176 of file src/xrpld/core/Config.h.

◆ peersMax

std::size_t xrpl::Config::peersMax = 0

Definition at line 182 of file src/xrpld/core/Config.h.

◆ peersOutMax

std::size_t xrpl::Config::peersOutMax = 0

Definition at line 183 of file src/xrpld/core/Config.h.

◆ peersInMax

std::size_t xrpl::Config::peersInMax = 0

Definition at line 184 of file src/xrpld/core/Config.h.

◆ pathSearchOld

int xrpl::Config::pathSearchOld = 2

Definition at line 198 of file src/xrpld/core/Config.h.

◆ pathSearch

int xrpl::Config::pathSearch = 2

Definition at line 199 of file src/xrpld/core/Config.h.

◆ pathSearchFast

int xrpl::Config::pathSearchFast = 2

Definition at line 200 of file src/xrpld/core/Config.h.

◆ pathSearchMax

int xrpl::Config::pathSearchMax = 3

Definition at line 201 of file src/xrpld/core/Config.h.

◆ validationQuorum

std::optional<std::size_t> xrpl::Config::validationQuorum

Definition at line 204 of file src/xrpld/core/Config.h.

◆ fees

FeeSetup xrpl::Config::fees

Definition at line 206 of file src/xrpld/core/Config.h.

◆ ledgerHistory

std::uint32_t xrpl::Config::ledgerHistory = 256

Definition at line 209 of file src/xrpld/core/Config.h.

◆ fetchDepth

std::uint32_t xrpl::Config::fetchDepth = 1000000000

Definition at line 210 of file src/xrpld/core/Config.h.

◆ nodeSize

std::size_t xrpl::Config::nodeSize = 0

Definition at line 215 of file src/xrpld/core/Config.h.

◆ sslVerify

bool xrpl::Config::sslVerify = true

Definition at line 217 of file src/xrpld/core/Config.h.

◆ sslVerifyFile

std::string xrpl::Config::sslVerifyFile

Definition at line 218 of file src/xrpld/core/Config.h.

◆ sslVerifyDir

std::string xrpl::Config::sslVerifyDir

Definition at line 219 of file src/xrpld/core/Config.h.

◆ compression

bool xrpl::Config::compression = false

Definition at line 222 of file src/xrpld/core/Config.h.

◆ ledgerReplay

bool xrpl::Config::ledgerReplay = false

Definition at line 225 of file src/xrpld/core/Config.h.

◆ maxTransactions

int xrpl::Config::maxTransactions = 250

Definition at line 228 of file src/xrpld/core/Config.h.

◆ kMaxJobQueueTx

int xrpl::Config::kMaxJobQueueTx = 1000
staticconstexpr

Definition at line 229 of file src/xrpld/core/Config.h.

◆ kMinJobQueueTx

int xrpl::Config::kMinJobQueueTx = 100
staticconstexpr

Definition at line 230 of file src/xrpld/core/Config.h.

◆ maxSubscriptionsPerConnection

std::optional<std::size_t> xrpl::Config::maxSubscriptionsPerConnection

Definition at line 236 of file src/xrpld/core/Config.h.

◆ amendmentMajorityTime

std::chrono::seconds xrpl::Config::amendmentMajorityTime = kDefaultAmendmentMajorityTime

Definition at line 239 of file src/xrpld/core/Config.h.

◆ workers

int xrpl::Config::workers = 0

Definition at line 242 of file src/xrpld/core/Config.h.

◆ ioWorkers

int xrpl::Config::ioWorkers = 0

Definition at line 243 of file src/xrpld/core/Config.h.

◆ prefetchWorkers

int xrpl::Config::prefetchWorkers = 0

Definition at line 244 of file src/xrpld/core/Config.h.

◆ forceMultiThread

bool xrpl::Config::forceMultiThread = false

Definition at line 247 of file src/xrpld/core/Config.h.

◆ sweepInterval

std::optional<int> xrpl::Config::sweepInterval

Definition at line 251 of file src/xrpld/core/Config.h.

◆ vpReduceRelayBaseSquelchEnable

bool xrpl::Config::vpReduceRelayBaseSquelchEnable = false

Definition at line 256 of file src/xrpld/core/Config.h.

◆ vpReduceRelaySquelchMaxSelectedPeers

std::size_t xrpl::Config::vpReduceRelaySquelchMaxSelectedPeers = 5

////////////////// !

!TEMPORARY CODE BLOCK!! ////////////////////////

Definition at line 264 of file src/xrpld/core/Config.h.

◆ txReduceRelayEnable

bool xrpl::Config::txReduceRelayEnable = false

////////////// END OF TEMPORARY CODE BLOCK /////////////////////

Definition at line 270 of file src/xrpld/core/Config.h.

◆ txReduceRelayMetrics

bool xrpl::Config::txReduceRelayMetrics = false

Definition at line 277 of file src/xrpld/core/Config.h.

◆ txReduceRelayMinPeers

std::size_t xrpl::Config::txReduceRelayMinPeers = 20

Definition at line 280 of file src/xrpld/core/Config.h.

◆ txRelayPercentage

std::size_t xrpl::Config::txRelayPercentage = 25

Definition at line 283 of file src/xrpld/core/Config.h.

◆ rpcIp

std::optional<beast::ip::Endpoint> xrpl::Config::rpcIp

Definition at line 286 of file src/xrpld/core/Config.h.

◆ features

std::unordered_set<UInt256, beast::Uhash<> > xrpl::Config::features

Definition at line 288 of file src/xrpld/core/Config.h.

◆ serverDomain

std::string xrpl::Config::serverDomain

Definition at line 290 of file src/xrpld/core/Config.h.

◆ maxUnknownTime

std::chrono::seconds xrpl::Config::maxUnknownTime {600}

Definition at line 293 of file src/xrpld/core/Config.h.

◆ maxDivergedTime

std::chrono::seconds xrpl::Config::maxDivergedTime {300}

Definition at line 296 of file src/xrpld/core/Config.h.

◆ maxUntrustedCount

std::optional<std::size_t> xrpl::Config::maxUntrustedCount

Definition at line 304 of file src/xrpld/core/Config.h.

◆ maxTrustedCount

std::optional<std::size_t> xrpl::Config::maxTrustedCount

Definition at line 305 of file src/xrpld/core/Config.h.

◆ kMinManifestCount

std::size_t xrpl::Config::kMinManifestCount = 50
staticconstexpr

Definition at line 312 of file src/xrpld/core/Config.h.

◆ kMaxManifestCount

std::size_t xrpl::Config::kMaxManifestCount = 1000
staticconstexpr

Definition at line 313 of file src/xrpld/core/Config.h.

◆ betaRpcApi

bool xrpl::Config::betaRpcApi = false

Definition at line 316 of file src/xrpld/core/Config.h.

◆ fastLoad

bool xrpl::Config::fastLoad = false

Definition at line 319 of file src/xrpld/core/Config.h.

◆ forcedLedgerRangePresent

std::optional<std::pair<std::uint32_t, std::uint32_t> > xrpl::Config::forcedLedgerRangePresent

Definition at line 326 of file src/xrpld/core/Config.h.

◆ validatorListThreshold

std::optional<std::size_t> xrpl::Config::validatorListThreshold

Definition at line 328 of file src/xrpld/core/Config.h.

◆ map_

std::unordered_map<std::string, Section> xrpl::BasicConfig::map_
privateinherited

Definition at line 224 of file BasicConfig.h.