mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Allow the "quorum" command line option to lock the quorum
This commit is contained in:
@@ -101,7 +101,7 @@ public:
|
||||
|
||||
virtual int getMinValidations () = 0;
|
||||
|
||||
virtual void setMinValidations (int v) = 0;
|
||||
virtual void setMinValidations (int v, bool strict) = 0;
|
||||
|
||||
virtual std::uint32_t getEarliestFetch () = 0;
|
||||
|
||||
|
||||
@@ -105,6 +105,7 @@ public:
|
||||
std::unique_ptr <LedgerCleaner> mLedgerCleaner;
|
||||
|
||||
int mMinValidations; // The minimum validations to publish a ledger.
|
||||
bool mStrictValCount; // Don't raise the minimum
|
||||
uint256 mLastValidateHash;
|
||||
std::uint32_t mLastValidateSeq;
|
||||
|
||||
@@ -153,6 +154,7 @@ public:
|
||||
, mLedgerCleaner (make_LedgerCleaner (
|
||||
app, *this, app_.journal("LedgerCleaner")))
|
||||
, mMinValidations (0)
|
||||
, mStrictValCount (false)
|
||||
, mLastValidateSeq (0)
|
||||
, mAdvanceThread (false)
|
||||
, mAdvanceWork (false)
|
||||
@@ -744,7 +746,7 @@ public:
|
||||
if (seq > mLastValidLedger.second)
|
||||
mLastValidLedger = std::make_pair (hash, seq);
|
||||
|
||||
if (mMinValidations < (valCount/2 + 1))
|
||||
if (!mStrictValCount && (mMinValidations < (valCount/2 + 1)))
|
||||
{
|
||||
mMinValidations = (valCount/2 + 1);
|
||||
JLOG (m_journal.info)
|
||||
@@ -1355,10 +1357,12 @@ public:
|
||||
return mMinValidations;
|
||||
}
|
||||
|
||||
void setMinValidations (int v) override
|
||||
void setMinValidations (int v, bool strict) override
|
||||
{
|
||||
JLOG (m_journal.info) << "Validation quorum: " << v;
|
||||
JLOG (m_journal.info) << "Validation quorum: " << v
|
||||
<< (strict ? " strict" : "");
|
||||
mMinValidations = v;
|
||||
mStrictValCount = strict;
|
||||
}
|
||||
|
||||
std::string getCompleteLedgers () override
|
||||
|
||||
@@ -832,7 +832,8 @@ public:
|
||||
config_->section (SECTION_AMENDMENTS));
|
||||
initializePathfinding ();
|
||||
|
||||
m_ledgerMaster->setMinValidations (config_->VALIDATION_QUORUM);
|
||||
m_ledgerMaster->setMinValidations (
|
||||
config_->VALIDATION_QUORUM, config_->LOCK_QUORUM);
|
||||
|
||||
auto const startUp = config_->START_UP;
|
||||
if (startUp == Config::FRESH)
|
||||
|
||||
@@ -459,6 +459,7 @@ int run (int argc, char** argv)
|
||||
try
|
||||
{
|
||||
config->VALIDATION_QUORUM = vm["quorum"].as <int> ();
|
||||
config->LOCK_QUORUM = true;
|
||||
|
||||
if (config->VALIDATION_QUORUM < 0)
|
||||
throw std::domain_error ("");
|
||||
|
||||
@@ -206,6 +206,7 @@ public:
|
||||
// Note: The following parameters do not relate to the UNL or trust at all
|
||||
std::size_t NETWORK_QUORUM = 0; // Minimum number of nodes to consider the network present
|
||||
int VALIDATION_QUORUM = 1; // Minimum validations to consider ledger authoritative
|
||||
bool LOCK_QUORUM = false; // Do not raise the quorum
|
||||
|
||||
// Peer networking parameters
|
||||
bool PEER_PRIVATE = false; // True to ask peers not to relay current IP.
|
||||
|
||||
Reference in New Issue
Block a user