Out of order mempool TX I notice that mempool messages result in multiple tx messages, usually completely out of order.

What I generally do is re-queue the message until the parent is processed, however that doesn't seem to be the right approach. If the parent can't be verified, shouldn't it be discarded immediately?

In a hostile scenario I could receive an unsolicited tx that relies on an unseen parent. What are the best practices here? Just wait up until N seconds and then discard?
If the parent can't be verified, shouldn't it be discarded immediately?


Then you risk needing to redownload that transaction. 


  What are the best practices here? Just wait up until N seconds and then discard?


I think what bitcoin does, adding it to a size-limited cache, works well in practice. You just have to make sure that when you receive the parent you broadcast invs for both the parent and the child (assuming the child is still in the size-limited cache).