I can't get Armory to work any more.
It just sits at "99% - Synchronizing with Network - 0 blocks". My log looks like this:
http://pastebin.com/PmncB0ABIe. these lines just keep repeating in the log:
2013-06-11 18:39 (INFO) -- ArmoryQt.py:4349 - Starting load blockchain
2013-06-11 18:39 (INFO) -- ArmoryQt.py:1243 - loadBlockchainIfNecessary
2013-06-11 18:39 (INFO) -- ArmoryQt.py:1289 - Setting netmode: 0
Gah. This is familiar. I think jl2012 had a similar problem at one point. The issue had to do with Bitcoin-Qt being detected, but failure to successfully open a connection. It had turned out to be a problem with a timeout parameter.
It's also possible that there's a problem with the blockfile location...change anything recently?
Turns out it was entirely my own fault.
I had added the option
nolisten=1
to bitcoin.conf, in order for bitcoind not to consume too much outgoing bandwidth (nodes that want to sync the block chain generally connect to nodes rather than let nodes connect to them, so this avoids most clients that want to sync the entire block chain).
I have another problem that I hope you can help me with though.
I frequently experience Armory losing connection to bitcoind.
In the function
clientConnectionLost(self, connector, reason)
in armoryengine.py I added a line to print the reason for the disconnect using this line:
reason.printBriefTraceback()
And the result is the following lines appearing very frequently in the CLI output (several times per second):
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection was closed cleanly.
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection was closed cleanly.
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection was closed cleanly.
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection was closed cleanly.
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection was closed cleanly.
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection to the other side was lost in a non-clean fashion.
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection was closed cleanly.
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection to the other side was lost in a non-clean fashion.
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection to the other side was lost in a non-clean fashion.
(ERROR) armoryengine.py:10259 - ***Connection to Satoshi client LOST! Attempting to reconnect...
Traceback (failure with no frames): : Connection was closed cleanly.
The text in the lower right corner keeps flashing between "Disconnected" and "Connected [...]".
There's a secondary bug associated with this. After letting Armory run like this for a while and then closing Armory, the disconnected/connected notifications keep on reappearing after the program has been closed for a long time. I think the reason is that they happen so frequently (several times per second) so there are thousands of these notifications queued up. And with each notification having a timeout of 10 seconds, they just keep reappearing until the queue is empty (long after the program is shut down).
Perhaps it would be necessary to, when displaying the notification, check whether a previous notification is still being displayed, and only display a new one if the previous notification is no longer there (more than 10 seconds have passed since calling self.sysTray.showMessage()) or perhaps cancel the previous notification, if that is possible.