21
2
I've been assuming that the second transaction will simply be discarded as invalid, while the first waits at 0/unconfirmed until it actually gets into a block (requiring a "-rescan" or similar if the second one actually ends up in the blockchain instead). But is this the case? What actually happens in the default client when two conflicting transactions are received?
For simplicity's sake assume the person running the client is the recipient of at least one of the transactions, and is not mining.
3I know that what is supposed to happen is that it ignores all conflicting transactions and keeps the first one it received until a conflicting transaction gets in the block chain. Then it's supposed to forget the original transaction and stick with the one that got in the chain, even if that chain subsequently is invalidated. Kind of quirky, and that's what it's supposed to do! It is agreed that the client doesn't handle this well and may not even do what it's supposed to. – David Schwartz – 2011-09-08T01:00:35.990
But what does it do right now? – eMansipater – 2011-09-08T01:05:58.197
1I don't know, that's why I commented rather than answering. – David Schwartz – 2011-09-08T01:08:26.947