The point is that most of the time, most of the full nodes know about 90%+ of the txs.
Yes. The problem is the rest 10%-.
If a node doesn't know about a particular tx it will request that from its peers.
OK, lets imagine. My node is connected to nodes N
1, N
2, N
3... N
xOnce upon a time I receive "block template" from N
1There is a transaction in it which I do not know.
I
can not ask this transaction from N
1, because N
1 already removed it from memory pool
And the other my peers also may not know about this tx or will reject/ignore my getdata packet.
So, I should drop "block template" and ask N
1 for block itself.
This increases traffic (in some cases) and slows down block propagation.
This is not very rare scenario, I can prove it with my already working program (which checks for unknown transactions in incoming blocks)