Exceptions:
- Multiple inputs in the same transaction are allowed to spend against the same scriptPubKey
- The same scriptPubKey may be used in the mempool as both first an output, and then spent in a later transaction’s input
Changes since original 2013 patch (pre-squashed):
- Refactor: Move CScript::ScriptPubkeyReuseHash to ScriptHashkey(CScript) in txmempool
- Update mempool duplicate-scriptPubKey limiting with C++11 and misc formatting improvements
- Bugfix: Use bitwise operators for mempool SPK states
- Use CValidationState for SPK reuse rejections
- Move mapTxSPK to CTxMemPoolEntry.mapSPK
- Make SPK reuse filtering optional (use -spkreuse)
Known issues:
This breaks RBF in most usage scenarios.Someone could watch for transactions and spam dust to block them on nodes using this.