[avalanche] Reject transactions that conflict with a finalized one
Summary:
Treat these transaction separately from "regular" conflicting transactions, because they are plain invalid and don't need to be stored in the conflict pool.
After this diff we have 2 kind of conflicting txs:
- conflicting with a non finalized transaction: at this stage the node has no idea which transaction is legit and it needs to be reconciled via avalanche (in a later diff)
- conflicting with a finalized transaction: at this stage the node knows that this transaction is not the selected one and it should be treated as invalid.
The avalanche reconsiderable status could be later used to vote on transactions for other reason, e.g. for transactions that spend a proof coin.
Depends on D16649.
Test Plan:
./test/functional/test_runner.py abc_p2p_avalanche_transaction_voting
Reviewers: #bitcoin_abc, PiRK
Reviewed By: #bitcoin_abc, PiRK
Subscribers: PiRK, roqqit, bytesofman
Differential Revision: https://reviews.bitcoinabc.org/D16650