chris-belcher / electrum-personal-server

Maximally lightweight electrum server for a single user
MIT License
599 stars 110 forks source link

Can't bump fee (RBF) #128

Open pabpas opened 5 years ago

pabpas commented 5 years ago

Hi there,

Steps to reproduce: right click on unconfirmed transaction, increase fee, sign and when clicking on Broadcast:

"The server returned an unexpected transaction ID when broadcasting the transaction. Consider trying to connect to a different server, or updating Electrum.

Server returned unexpected transaction ID."

I see no error in eps' log. Other than that everything is working fine.

bitcoin 0.18, eps 0.1.7, electrum 3.3.6

chris-belcher commented 5 years ago

Thanks for the bug report.

In EPS's debug log, what does the server send to the client in response to the blockchain.transaction.broadcast message? I assume its some error message which is why the client talks about "an unexpected transaction ID" ?

Issue #14 is also about being unable to RBF transactions but I've never been able to reproduce it myself.

pabpas commented 5 years ago

Just tried again bumping the fee from 1sat/b to 2sat/b with debug log and found the response from server:

DEBUG:2019-06-24 22:25:51,408: => {"jsonrpc": "2.0", "method": "blockchain.transaction.broadcast", "id": 157, "params": ["020000000111f2da62c3cb544149ac9140e62ddc3e98c2bbf1be7b20d16fb4ad10e718ba27010000006b483045022100e31c2dce75459cf8c1a547d3ab4b44b6542a573070d788b33c55aa42c9a5ddc30220087590c18939601737432f4e125f55a305b6ffeced54e54236d98e01005a860b01210300e726d149efa201b01387f45232418c16c4565856e346b504fcffbff15fd095fdffffff02988e0300000000002200205417e66553dda480d5eadfba5ad4ea6b64750fb30b24183aefffc0093e2afdbcc28d0c00000000001976a914aa2231d4bd153160a78d4d89dad5dd764acee05188ac61e20800"]} DEBUG:2019-06-24 22:25:51,410: <= {"jsonrpc": "2.0", "result": "66: insufficient fee", "id": 157} DEBUG:2019-06-24 22:25:52,819: => {"jsonrpc": "2.0", "method": "mempool.get_fee_histogram", "id": 158} DEBUG:2019-06-24 22:25:52,927: <= {"jsonrpc": "2.0", "result": [[91.0, 113250], [76.0, 112947], [7.0, 113156], [2.0, 212881], [1.0, 3015399], [0.0, 223]], "id": 158} DEBUG:2019-06-24 22:25:52,928: => {"jsonrpc": "2.0", "method": "blockchain.estimatefee", "id": 159, "params": [25]} DEBUG:2019-06-24 22:25:52,929: <= {"jsonrpc": "2.0", "result": 0.00025672, "id": 159} DEBUG:2019-06-24 22:25:52,929: => {"jsonrpc": "2.0", "method": "blockchain.estimatefee", "id": 160, "params": [10]} DEBUG:2019-06-24 22:25:52,930: <= {"jsonrpc": "2.0", "result": 0.00062259, "id": 160} DEBUG:2019-06-24 22:25:52,930: => {"jsonrpc": "2.0", "method": "blockchain.estimatefee", "id": 161, "params": [5]} DEBUG:2019-06-24 22:25:52,931: <= {"jsonrpc": "2.0", "result": 0.00062259, "id": 161} DEBUG:2019-06-24 22:25:52,931: => {"jsonrpc": "2.0", "method": "blockchain.estimatefee", "id": 162, "params": [2]} DEBUG:2019-06-24 22:25:52,932: <= {"jsonrpc": "2.0", "result": 0.00091429, "id": 162}

Weird because I have enough funds in that wallet.

SomberNight commented 5 years ago

You probably need to increase the fee even more?

Also, I guess EPS returns errors differently than e-x. e-x would trigger this line https://github.com/spesmilo/electrum/blob/570c0aeca39e56c742b77380ec274d178d660c29/electrum/network.py#L865 while it seems EPS triggers https://github.com/spesmilo/electrum/blob/570c0aeca39e56c742b77380ec274d178d660c29/electrum/network.py#L872

IIRC e-x is setting the "error" key in these cases, not "result".

chris-belcher commented 5 years ago

Commit https://github.com/chris-belcher/electrum-personal-server/commit/015742ded02f1d35cbbb82fc8d04326bd62c9458 hopefully now correctly passes the error messages back to the client, making this error easier to understand for users.