mirror of
https://github.com/XRPLF/rippled.git
synced 2026-10-20 10:38:22 +00:00
A node that leaves a map invalid proves the hash being chased belongs to no valid tree, so TransactionAcquire::takeNodesLocked() and InboundLedger::receiveNode() fail the acquisition there rather than leaving the failure to the next trigger(). The whole batch is discarded, since the nodes hooked in ahead of that one belong to the same tree. Such a node costs kFeeMalformedData rather than kFeeInvalidData. stillNeed() reports whether the set is still worth keeping and refuses to revive one whose map went invalid. InboundTransactions::getSet() refreshes an entry's retention window only while that answer is yes, so such an entry is swept rather than kept alive by the asking. recordPacket() and haveEverything() name the packet tally and the nothing-left-to-fetch test that several sites repeated.