Multiple transactions per account in TxQ (RIPD-1048):

* Tweak account XRP balance and sequence if needed before preclaim.
* Limit total fees in flight to minimum reserve / account balance.
* LastLedgerSequence must be at least 2 more than the current ledger to be queued.
* Limit 10 transactions per account in the queue at a time.
* Limit queuing multiple transactions after transactions that affect authentication.
* Zero base fee transactions are treated as having a fixed fee level of 256000 instead of infinite.
* Full queue: new txn can only kick out a tx if the fee is higher than that account's average fee.
* Queued tx retry limit prevents indefinitely stuck txns.
* Return escalation factors in server_info and _state when escalated.
* Update documentation.
* Update experimental config to only include the % increase.
* Convert TxQ metric magic numbers to experimental config.
This commit is contained in:
Edward Hennis
2015-11-02 19:18:16 -05:00
committed by Vinnie Falco
parent 7f97b7bc05
commit 2e2a7509cd
28 changed files with 2473 additions and 592 deletions

View File

@@ -102,29 +102,6 @@ LoadFeeTrack::scaleFeeLoad (std::uint64_t fee, std::uint64_t baseFee,
return fee;
}
Json::Value
LoadFeeTrack::getJson (std::uint64_t baseFee,
std::uint32_t referenceFeeUnits) const
{
Json::Value j (Json::objectValue);
{
ScopedLockType sl (mLock);
// base_fee = The cost to send a "reference" transaction under
// no load, in millionths of a Ripple
j[jss::base_fee] = Json::Value::UInt (baseFee);
// load_fee = The cost to send a "reference" transaction now,
// in millionths of a Ripple
j[jss::load_fee] = Json::Value::UInt (
mulDivThrow(baseFee, std::max(mLocalTxnLoadFee,
mRemoteTxnLoadFee), lftNormalFee));
}
return j;
}
bool
LoadFeeTrack::raiseLocalFee ()
{