Enforce validation quorum. Default to quorum of 2 if started with --net.

This commit is contained in:
JoelKatz
2013-03-05 09:23:11 -08:00
parent 86893487d1
commit ecb9e7db26
4 changed files with 13 additions and 2 deletions

View File

@@ -151,7 +151,7 @@ void Application::setup()
else
startNewLedger();
mOrderBookDB.setup(theApp->getLedgerMaster().getCurrentLedger()); // TODO: We need to update this if the ledger jumps
mOrderBookDB.setup(theApp->getLedgerMaster().getCurrentLedger());
//
// Begin validation and ip maintenance.
@@ -168,6 +168,7 @@ void Application::setup()
mValidations.tune(theConfig.getSize(siValidationsSize), theConfig.getSize(siValidationsAge));
mHashedObjectStore.tune(theConfig.getSize(siNodeCacheSize), theConfig.getSize(siNodeCacheAge));
mLedgerMaster.tune(theConfig.getSize(siLedgerSize), theConfig.getSize(siLedgerAge));
mLedgerMaster.setMinValidations(theConfig.VALIDATION_QUORUM);
//
// Allow peer connections.

View File

@@ -77,6 +77,9 @@ public:
TER doTransaction(SerializedTransaction::ref txn, TransactionEngineParams params, bool& didApply);
int getMinValidations() { return mMinValidations; }
void setMinValidations(int v) { mMinValidations = v; }
void pushLedger(Ledger::ref newLedger);
void pushLedger(Ledger::ref newLCL, Ledger::ref newOL, bool fromConsensus);
void storeLedger(Ledger::ref);

View File

@@ -1189,6 +1189,8 @@ Json::Value NetworkOPs::getServerInfo(bool human, bool admin)
if (mNeedNetworkLedger)
info["network_ledger"] = "waiting";
info["validation_quorum"] = mLedgerMaster->getMinValidations();
if (admin)
{
if (theConfig.VALIDATION_PUB.isValid())

View File

@@ -227,7 +227,12 @@ int main(int argc, char* argv[])
{
theConfig.START_UP = Config::LOAD;
}
else if (vm.count("net")) theConfig.START_UP = Config::NETWORK;
else if (vm.count("net"))
{
theConfig.START_UP = Config::NETWORK;
if (theConfig.VALIDATION_QUORUM < 2)
theConfig.VALIDATION_QUORUM = 2;
}
if (iResult)
{