2
1
Transactions in the testnet are right now almost always double spent with a new txid (possible due to tx malleability). This is actually quite nice for testing purposes.
So I'm wondering - when I did a payment and have txId 'XXX' this payment sometimes gets confirmed with a new txId 'YYY' that I don't know of. How can I (using bitcoind json-rpc) find out that my payment with txId 'XXX' got confirmed?
im seeing the same! I see my pushed utx broadcasted on the network then later its in the block with different txid (i never see the altered utx broadcasted, I think the miners are changing them when they put them in the block!?) – Ben Muircroft – 2017-04-04T17:37:19.000
It's not necessarily the miners. Anyone can change the signatures of the transaction slightly in a way that they will still be valid and this way generate a new tx hash. That this is possible is called transaction malleability. I guess someone is just doing this to all the transactions that are broadcasted in the testnet right now and somehow manages it to get them through before you're most of the time. See my answer on how to handle it. – tobi – 2017-04-04T17:39:19.083
i never see the altered utx broadcasted – Ben Muircroft – 2017-04-04T17:40:56.800
Neither do I. I think your own client rejects it because you already have that transaction. But when other clients see the conflicting transaction first they will reject yours – tobi – 2017-04-04T17:41:45.013
XXX becomes YYY there are not 2 transactions - if there were you would have to see both broadcasted! Instead you only see XXX before it becomes YYY in the block – Ben Muircroft – 2017-04-04T17:44:49.143
look at this dude! http://bitcoin.stackexchange.com/a/52576/14316 propper interesting (about us not seeing YYY broadcasted!)
– Ben Muircroft – 2017-04-04T22:35:50.997