Consider a situation when a node is milliseconds, seconds, or a round ahead of its neighbors. In this case it could submit a transaction that a round earlier than the transaction pool expects on a neighbor node so it would be rejected and silently dropped.
To prevent, txHandler might have a (circular) buffer 1-2-3 rounds long with transactions that arrived too early and can be re-injected to the backlog queue. Consider random injection to prevent frontrunning opportunities.
Acceptance
Unit tests
e2e test: send txn current+2 and expect it committed
Summary
Consider a situation when a node is milliseconds, seconds, or a round ahead of its neighbors. In this case it could submit a transaction that a round earlier than the transaction pool expects on a neighbor node so it would be rejected and silently dropped.
To prevent, txHandler might have a (circular) buffer 1-2-3 rounds long with transactions that arrived too early and can be re-injected to the backlog queue. Consider random injection to prevent frontrunning opportunities.
Acceptance