Recover open ledger transactions to the queue (RIPD-1530):

* If the transaction can't be queued, recover to the open ledger once,
  and drop it on the next attempt.
* New result codes for transactions that can not queue.
* Add minimum queue size.
* Remove the obsolete and incorrect SF_RETRY flag.
* fix #2215
This commit is contained in:
Edward Hennis
2017-09-12 18:32:31 -04:00
parent 3bfd9de677
commit 62127d725d
16 changed files with 276 additions and 88 deletions

View File

@@ -1056,6 +1056,8 @@ PeerImp::onMessage (std::shared_ptr <protocol::TMTransaction> const& m)
{
// If we've never been in synch, there's nothing we can do
// with a transaction
JLOG(p_journal_.debug()) << "Ignoring incoming transaction: " <<
"Need network ledger";
return;
}
@@ -1075,11 +1077,10 @@ PeerImp::onMessage (std::shared_ptr <protocol::TMTransaction> const& m)
if (flags & SF_BAD)
{
fee_ = Resource::feeInvalidSignature;
JLOG(p_journal_.debug()) << "Ignoring known bad tx " <<
txID;
return;
}
if (!(flags & SF_RETRY))
return;
}
JLOG(p_journal_.debug()) << "Got tx " << txID;