Bitcoin Forum
November 14, 2024, 10:44:52 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Fixing the "transaction timed out"/"transaction broadcast failed" issue  (Read 2299 times)
achow101 (OP)
Staff
Legendary
*
Offline Offline

Activity: 3542
Merit: 6886


Just writing some code


View Profile WWW
March 28, 2017, 07:52:10 PM
Last edit: May 01, 2017, 09:38:03 PM by achow101
 #1

Update: 0.96.0 has been released. Update to that if you are still experiencing this problem.




Many of you may have noticed that with the Armory 0.95.1 and Bitcoin Core 0.14.0, Armory tends to fail to broadcast transactions and give the "Transaction timed out" and "Transaction broadcast failed" error messages.

The underlying issue that is causing this problem has been fixed for Armory 0.96, which will be released soon. However, in the meantime, downgrading to Bitcoin Core 0.13.2 will fix the issue. Once 0.96 is released, you will be able to use Bitcoin Core 0.14.0 again.

To downgrade to Bitcoin Core 0.13.2, just download the Bitcoin Core 0.13.2 binaries from https://bitcoin.org/bin/bitcoin-core-0.13.2/ and install them as you would normally install a new version of Bitcoin Core. There is no need to redownload the blockchain nor reindex Bitcoin Core's databases nor rebuild Armory's databases.




Now for the technical details about the problem, for those of you who care.

I first noticed this issue back in December, but only very recently have I nailed down why this problem cropped up in the first place.

Bitcoin Core 0.14.0 merged a change back in December which changed how Bitcoin P2P messages were being broadcast. Previously, the p2p message header and the message payload were sent all at the same time using the same kernel call. However, during their net refactor and cleanup, this mechanism was changed to send the message header in one call, and then the payload in a separate call. This is more robust and allows for better code separation, but it also causes problems for Armory.

The implementation in Armory 0.95.1 for receiving the p2p messages is not able to handle that the two parts of a p2p message are essentially sent separately. It interprets the message header as one p2p message, and the message payload as another p2p message. This means that it is incorrectly parsing the messages. The crux of the issue is that every so often Armory will receive a ping message from Bitcoin Core. However the payload of the ping message is only 8 bytes, but the message header must be 24 bytes. When Armory interprets the ping payload as a separate message, it will throw an exception because it thinks the message is too short. This exception causes the data processing thread to exit and disconnect from Bitcoin Core. Once it disconnects, it will typically reconnect, but the reconnect does not always mean that it will actually be receiving new blocks and transactions and actually remaining up-to-date with the blockchain. Thus, because of this disconnect, when you go to send some Bitcoin, it will fail to either connect to Bitcoin Core or the reconnected connection is messed up and the transaction broadcast times out or just fails entirely.

Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3080



View Profile
March 31, 2017, 11:28:43 AM
 #2

Is this happening with the Linux versions of 0.95.1 and 0.14? I am yet to try using them together.

Vires in numeris
achow101 (OP)
Staff
Legendary
*
Offline Offline

Activity: 3542
Merit: 6886


Just writing some code


View Profile WWW
March 31, 2017, 12:54:10 PM
 #3

Is this happening with the Linux versions of 0.95.1 and 0.14? I am yet to try using them together.
Yes. AFAICT this is an issue with all platforms, not just with one OS.

Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3080



View Profile
March 31, 2017, 12:57:04 PM
 #4

Thanks achow101.

Vires in numeris
Flanagan
Full Member
***
Offline Offline

Activity: 204
Merit: 100


View Profile
April 08, 2017, 02:13:49 PM
 #5

Thanks, just happened to me yesterday, windows 10 home original version and Lubuntu.
So, to downgrade, do I need to first UNINSTALL 0.95 ? Or do I just download what you say and install and it's ready to work ?

Learn to listen, listen to learn.
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3752
Merit: 1364

Armory Developer


View Profile
April 08, 2017, 08:45:26 PM
 #6

Installing overwrites the binaries, you can just run the 0.94 installer as is.

Flanagan
Full Member
***
Offline Offline

Activity: 204
Merit: 100


View Profile
April 09, 2017, 12:45:04 PM
Last edit: April 09, 2017, 03:13:45 PM by Flanagan
 #7

Installing overwrites the binaries, you can just run the 0.94 installer as is.

Thanks all. The thread mentiones 0.13.2 version, but would using 0.94 instead of 0.95 allow me to make payments (broadcast), which is what I'm unable to do with my current version 0.95?
I'm using Lubuntu so I wouldn't be using an installer. Guess I just delete manually the current 0.95 binaries (not databases etc.) and put in instead the 0.94....?


EDIT: Ok, sorry I was getting mixed up with bitcoin core and armory. Will downgrade bitcoin core and see if I can then broadcast with Armory.

Learn to listen, listen to learn.
bitpop
Legendary
*
Offline Offline

Activity: 2912
Merit: 1060



View Profile WWW
April 10, 2017, 03:11:44 AM
 #8

Excellent

RoadStress
Legendary
*
Offline Offline

Activity: 1904
Merit: 1007


View Profile
April 10, 2017, 06:53:57 PM
 #9

Is this happening with the Linux versions of 0.95.1 and 0.14? I am yet to try using them together.
Yes. AFAICT this is an issue with all platforms, not just with one OS.

Came on this subforum for this error. Thank you for the hard work!

Flanagan
Full Member
***
Offline Offline

Activity: 204
Merit: 100


View Profile
April 11, 2017, 02:16:22 PM
 #10

thanks again. installed earlier version of core like you say and finally have been able to make payments (broadcast). Cheers 1

Learn to listen, listen to learn.
Stroto
Sr. Member
****
Offline Offline

Activity: 449
Merit: 251


View Profile
April 22, 2017, 08:39:54 PM
 #11

Did anyone tried it with 14.1 yet?
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3752
Merit: 1364

Armory Developer


View Profile
April 23, 2017, 06:09:45 AM
 #12

You can try the 0.96 testing builds with it, should be fine.

ronin101
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
April 28, 2017, 06:30:26 PM
Last edit: April 29, 2017, 06:39:01 AM by ronin101
 #13

I'm not sure if this is the same thing, but here it goes. I am using armory .95.1 on Mac OS 10.12.4 (Sierra) and running bitcoin core 13.2. I received a bunch of bitcoins in my armory wallet just fine, and then when I sent those same coins, I got the transaction to appear, but got zero confirmations. when I checked on the blockchain, I got the unconfirmed message. I tried to "clear all unconfirmed" and restart bitcoin-qt but the transaction did not remove. I tried everything - rescanned the database, rebuilt the database, and went as far as removed the armory folders from usrs/library/application support/ and restarted armory and imported my wallets back in. I was able to get the coins back into the wallet, but the transaction never cleared from the blockchain.

every time I've tried to resend the coins, and check back on the blockchain, the transaction date appears as the original transaction - 4/27 12:36, while in my armor wallet, I get a date that is current - 4/29 2:43 a.m. I've been going nuts trying to move these coins. I don't get any messages in armory - I don't even get a notification telling me that my bitcoins were sent successfully, or even the transaction timed out/failed message. there are absolutely no notifications within armory at all and I can't seem to move my coins. I've been at it for two days now, and I would really really like to cash these out so I can do things like, pay rent and you know, eat. any help would be really greatly appreciated. if I'm missing any info, please gimme a shout and I will do my best to post anything relevant. thank you!


never mind - it fixed itself! but it took two days. if anyone has any insight into this, I'd really appreciate the feedback. thanks!
streamholder
Newbie
*
Offline Offline

Activity: 16
Merit: 0


View Profile
May 06, 2017, 01:20:12 PM
 #14

I'm on 0.96 and I'm still getting the error.
Downgrading to Core 0.13.2 did the trick, so 0.96 is still broken.
bitpop
Legendary
*
Offline Offline

Activity: 2912
Merit: 1060



View Profile WWW
May 06, 2017, 08:23:07 PM
 #15

I'm on 0.96 and I'm still getting the error.
Downgrading to Core 0.13.2 did the trick, so 0.96 is still broken.

Weird mine is fixed.

bitpop
Legendary
*
Offline Offline

Activity: 2912
Merit: 1060



View Profile WWW
May 07, 2017, 08:54:37 PM
 #16

You deleted your reply? Did you fix it?

achow101 (OP)
Staff
Legendary
*
Offline Offline

Activity: 3542
Merit: 6886


Just writing some code


View Profile WWW
June 01, 2017, 10:37:42 PM
 #17

I have been able to replicate and confirm that there is indeed an issue with transaction broadcasts timing out with 0.96, particularly with the checking mechanism. A pull request to fix the issue has been made here: https://github.com/goatpig/BitcoinArmory/pull/241. Please help test it out.

gergelyb
Newbie
*
Offline Offline

Activity: 5
Merit: 1


View Profile
July 28, 2017, 12:03:37 PM
 #18

It didnt fix it for me  Sad the message is still popping up. I am not exactly sure which one am I supposed to download. I have Bitcoin Core (64 bit) and downloaded bitcoin-0.13.2-win64-setup.exe and installed it as normal. I would greatly appreciate some extra help.
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3752
Merit: 1364

Armory Developer


View Profile
July 28, 2017, 12:20:18 PM
 #19

Update.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!