A new proof with conflicting utxos is currently discarded entirely. This might be an otherwise valid proof, and it might become valid in the future if the peers containing the conflicting utxos are invalidated.
This diff adds such conflicting proofs to the orphan pool. As a consequence:
- It makes it easy for the processor to determine if a proof has been accepted (in the proof pool), rejected (in the orphan pool), or invalidated (in neither of these).
- It makes it possible to retrieve a conflicting proof very easily from its proof id using the a simple PeerManager::getProof() call, that can be used to fix the actual O(n²) that occurs on the proof vote. This will be done in a follow-up.
Ref T1854.
Depends on D10383.