Back from Armory vacation!The last month has been devoted to lots of random things, the biggest of which is wedding planning. I also got distracted by some random side projects and even a couple games. However, it was a much needed break after an epic battle to make Armory multi-threaded -- I hit a frustrating combination of threads losing synchronization causing difficult-to-debug seg faults, etc. I spent days debugging, and I was desperate to be distracted by something else... so I found other things...
However, I jumped back in recently feeling refreshed, and without any other distractions (plus, a few days off of work due to Hurricane Sandy gives me some time to dig in). After a rough re-entry battle, I found a single bug that seemed to clear up almost everything. There's still some features remaining to be implemented for the GUI to play nice with asynchronous BlockDataManager. But most of it is working. I even had it running for two days without any issue -- I didn't actually send any coins in that time, but at least there are no memory leaks or issues with reorgs, etc.
Additionally (and importantly), I optimized some of the blockchain scanning code, so now mega wallets (with 1000+ addresses) should operate much more fluidly. The fix seemed too easy, and I seem to remember there was a reason I didn't do this 4 months ago... but so far I can't see anything wrong with it. Testing will be key.
So, I don't have an official testing release yet, but maybe ambitious folks like Red Emerald would be inspired to check out the "threading" branch and try it
It'll throw a few errors for some operations (like shutting down), but it won't lose you any money -- the worst that can happen is the GUI loses communication with the BlockDataManager and then you can't view balances, etc (but I haven't seen that happen recently). If you do test it: please open the latest stable version first (0.82.4) and write down your wallet balances, to compare to the balances reported by the new version. I want to make sure wallet scanning is still reliable.
When multi-threaded Armory is stable,
that will be beta! 0.82.4 has been working very reliably, and this new version (0.84) will be tremendously more usable, now that it opens immediately and tells you what's going on (scanning, offline, disconnected, why it can't go online, what you can do in each mode, etc). Hopefully, it will be no more than a couple weeks!
EDIT: As I should've expected... I broke a lot more things than I thought I did. It seems that all import/sweep operations only update the wallet balances after a restart (probably related to the scanning code I updated). So I still have plenty of work to do here...
Red Emerald: I called you out specifically, because I think you had tried this version before, and found it unusable -- I discovered the exact same thing when someone sent me a wallet with 1000 addresses with 1000+ transactions. The scan operation was running in O(N
2logN) instead of O(N logN), causing the GUI to timeout while waiting for updates from the BDM. This was only noticeable when you have tons of addresses (which is why I didn't see it at first, but then ran into it after someone sent me a huge wallet)