I had a problem with bitcoin core in the past that I was finally able to recreate on the testnet.
I tried to fuse several of my inputs into a single large output. I let bitcoin core determine the fee, but the TX was refuse with a message that indicated I tried to double spend. I knew it was not a double spend, so I just made a raw TX and pushed it via several services. The TX was confirmed quickly and I removed the conflicted one with zapwallettxes. I never understood the error message though.
Now on the testnet I finally had the idea to look into the debug.log and found:
2015-11-15 13:12:20 CommitTransaction:
CTransaction(hash=44645ad833, ver=1, vin.size=15, vout.size=1, nLockTime=605155)
CTxIn(COutPoint(4901f65bec, 0), scriptSig=304402206c8bd444ef9bfa95, nSequence=4294967294)
CTxIn(COutPoint(4a6d2d5d44, 0), scriptSig=3045022100e1b901fe7ca785, nSequence=4294967294)
CTxIn(COutPoint(fabb3b1985, 1), scriptSig=304402203306d2e695d36916, nSequence=4294967294)
CTxIn(COutPoint(dae574819e, 1), scriptSig=3044022038a769d8d9eb39aa, nSequence=4294967294)
CTxIn(COutPoint(af93f5d5ef, 1), scriptSig=3044022039aa1cc0b7c246ba, nSequence=4294967294)
CTxIn(COutPoint(2295152ff2, 5), scriptSig=3045022100d627eb8baa28b9, nSequence=4294967294)
CTxIn(COutPoint(b29f5ed3ce, 0), scriptSig=3045022100ea8f46c9aef744, nSequence=4294967294)
CTxIn(COutPoint(d882102bbf, 0), scriptSig=3044022067dc5121916b5b10, nSequence=4294967294)
CTxIn(COutPoint(c8eaec76b7, 0), scriptSig=3045022100829c89c815fcc0, nSequence=4294967294)
CTxIn(COutPoint(0755324b49, 0), scriptSig=3045022100bd583594ea8f1f, nSequence=4294967294)
CTxIn(COutPoint(1d3ac7f037, 0), scriptSig=3045022100af2e2dae1647b3, nSequence=4294967294)
CTxIn(COutPoint(855d8b3c13, 1), scriptSig=304502210091fb3631d05934, nSequence=4294967294)
CTxIn(COutPoint(91d5b5523a, 1), scriptSig=3044022073abe8c0c51ffb5f, nSequence=4294967294)
CTxIn(COutPoint(b0919fa31e, 0), scriptSig=30440220635f29f518770dbf, nSequence=4294967294)
CTxIn(COutPoint(2972e0d935, 0), scriptSig=3045022100880fa0fbf2952d, nSequence=4294967294)
CTxOut(nValue=51.61836368, scriptPubKey=OP_DUP OP_HASH160 e07254d65ea7)
2015-11-15 13:12:20 AddToWallet 44645ad8338862133c7c88f53283014737c8a71fd9895a2f54a30bea782042a2 new
2015-11-15 13:12:20 ERROR: AcceptToMemoryPool: absurdly high fees 44645ad8338862133c7c88f53283014737c8a71fd9895a2f54a30bea782042a2, 22580 > 20000
2015-11-15 13:12:20 CommitTransaction(): Error: Transaction not valid
When I try to create the TX with 1k satoshi per kbyte instead of 10k satoshi per kbyte I can send it just fine. I will probably get a confirmation as well.
I am however a bit unsure how to avoid this issue in the future as core regularly suggests a fee higher than 1k satoshi per kbyte, esp. in middle of spam attacks. I have a workaround by create a TX by hand, but I prefer using the client. Is this something I can modify with
limitfreerelay or
minrelaytxfee? Currently set to 1500 and 1 satoshi respectivly.
Update: Yes it confirmed quickly as expected. A smaller TX (~192 byte) can also pay a higher fee per byte. 10k satoshi per kbyte works fine if its a single input and a single output.
Update2: It seems that TX with fees above 10k satoshi are refused no matter the number of inputs or the size of the TX. ->
https://i.imgur.com/DkxgvHl.png