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

@@ -43,6 +43,7 @@ JSS ( DeliverMin ); // in: TransactionSign
JSS ( Fee ); // in/out: TransactionSign; field.
JSS ( Flags ); // in/out: TransactionSign; field.
JSS ( Invalid ); //
JSS ( LastLedgerSequence ); // in: TransactionSign; field
JSS ( LimitAmount ); // field.
JSS ( OfferSequence ); // field.
JSS ( Paths ); // in/out: TransactionSign
@@ -231,6 +232,9 @@ JSS ( load ); // out: NetworkOPs, PeerImp
JSS ( load_base ); // out: NetworkOPs
JSS ( load_factor ); // out: NetworkOPs
JSS ( load_factor_cluster ); // out: NetworkOPs
JSS ( load_factor_fee_escalation ); // out: NetworkOPs
JSS ( load_factor_fee_queue ); // out: NetworkOPs
JSS ( load_factor_fee_reference ); // out: NetworkOPs
JSS ( load_factor_local ); // out: NetworkOPs
JSS ( load_factor_net ); // out: NetworkOPs
JSS ( load_fee ); // out: LoadFeeTrackImp

View File

@@ -45,6 +45,7 @@ enum TER
telFAILED_PROCESSING,
telINSUF_FEE_P,
telNO_DST_PARTIAL,
telCAN_NOT_QUEUE,
// -299 .. -200: M Malformed (bad signature)
// Causes:

View File

@@ -89,6 +89,7 @@ bool transResultInfo (TER code, std::string& token, std::string& text)
{ telFAILED_PROCESSING, { "telFAILED_PROCESSING", "Failed to correctly process transaction." } },
{ telINSUF_FEE_P, { "telINSUF_FEE_P", "Fee insufficient." } },
{ telNO_DST_PARTIAL, { "telNO_DST_PARTIAL", "Partial payment to create account not allowed." } },
{ telCAN_NOT_QUEUE, { "telCAN_NOT_QUEUE", "Can not queue at this time." } },
{ temMALFORMED, { "temMALFORMED", "Malformed transaction." } },
{ temBAD_AMOUNT, { "temBAD_AMOUNT", "Can only send positive amounts." } },
@@ -132,7 +133,7 @@ bool transResultInfo (TER code, std::string& token, std::string& text)
{ terNO_LINE, { "terNO_LINE", "No such line." } },
{ terPRE_SEQ, { "terPRE_SEQ", "Missing/inapplicable prior transaction." } },
{ terOWNERS, { "terOWNERS", "Non-zero owner count." } },
{ terQUEUED, { "terQUEUED", "Held until fee drops." } },
{ terQUEUED, { "terQUEUED", "Held until escalated fee drops." } },
{ tesSUCCESS, { "tesSUCCESS", "The transaction was applied. Only final in a validated ledger." } },
};