Title: ArmoryDB crash after connecting to Bitcoin Core node Post by: ChanceCoats123 on March 30, 2025, 03:44:34 PM I've been banging my head for a couple days on this now.
I'm running Armory v0.96.5 and have been for years now. I was recently running Bitcoin Core v21.0.0 but upgraded to v28.1.0. After doing so, I can no longer get Armory to launch if I've already started Bitcoin Core. The error seems to be that ArmoryDB.exe is started, connects to the node, and then dies without any kind of error message. QT then hangs presumably because it can't find the DB process. Steps I'm taking to launch Armory: 1. Start the Bitcoin Core GUI and let it sync. a. I'm using a non-default directory structure where my install is at "G:\Bitcoin" such that I'm setting '--satoshi-datadir="G:\Bitcoin\blocks"' for Armory QT and DB .conf files (as well as in ArmorySettings.txt) 2. I open ArmoryQt.exe which I see spawns ArmoryDB.exe when I check task manager. a. The DB process dies almost immediately. 3. ArmoryQt hangs and I have to kill it. In an attempt to debug this, I've gone through this pathing page to make sure I'm not doing anything silly: https://btcarmory.com/docs/pathing I might be doing something wrong, but I've attempted a bootstrap approach and Armory seems to be working correctly when run independently from Bitcoin Core. For example, the following works completely as expected - it simply results in an "Offline" status: 1. Stop Bitcoin Core and all underlying processes (bitcoind). 2. Remove the contents of %appdata%\Armory\databases (I made a backup in case things didn't work, but this ended up not being necessary). 3. Launch ArmoryDB.exe from the CLI: ArmoryDB.exe -> Enter a. No CLI plusargs were used, instead relying on %appdata%\Armory\armorydb.conf which contains --satoshi-datadir="G:\Bitcoin\blocks" b. After running for ~3-4 hours, the CLI stops at the enabling zero-conf step 4. I launch ArmoryQt via desktop shortcut a. No changes to target field since %appdata%\Armory\armoryqt.conf also contains --satoshi-datadir="G:\Bitcoin\blocks" 5. Transactions history scanning took place overnight and completed. 6. Armory shows my expected GUI with wallet, transaction history, and status = Offline. I then exit ArmoryQt and ctrl+c the CLI ArmoryDB process. I followed the steps further above (start Bitcoin Core, synchronize, then open Armory via shortcut) and Armory again hangs. I then wondered why ArmoryDB seems to die, so I kept Bitcoin Core running and used the CLI to run ArmoryDB.exe which yields the following: Log file opened at 06:59:41.000: C:\Users\Chance\AppData\Roaming/Armory/dbLog.txt -INFO - 06:59:41.000: (e:\users\goat\code\armory3\cppforswig\main.cpp:32) Running on 12 threads -INFO - 06:59:41.000: (e:\users\goat\code\armory3\cppforswig\main.cpp:33) Ram usage level: 50 -INFO - 06:59:41.000: (e:\users\goat\code\armory3\cppforswig\blockutils.cpp:915) blkfile dir: G:\Bitcoin\blocks -INFO - 06:59:41.000: (e:\users\goat\code\armory3\cppforswig\blockutils.cpp:916) lmdb dir: C:\Users\Chance\AppData\Roaming/Armory/databases -INFO - 06:59:41.000: (e:\users\goat\code\armory3\cppforswig\lmdb_wrapper.cpp:388) Opening databases... -INFO - 06:59:41.016: (e:\users\goat\code\armory3\cppforswig\bdm_server.h:263) Listening on port 9001 -INFO - 06:59:41.016: (e:\users\goat\code\armory3\cppforswig\bitcoinp2p.cpp:947) Connected to Bitcoin node Control then returns to the CLI with no other information printed... As far as I can tell, the fact that we're connecting to the Bitcoin node is the intended behavior. To get to this point, I have the following inside G:\Bitcoin\bitcoin.conf: server=1 listen=1 I've read through what feels like 20 different threads trying multiple options to no avail. This includes letting Armory manage bitcoind by setting ManageSatoshi | True, which results in the same hang of ArmoryQt. What's unclear to me is why the DB process immediately terminates. Can anyone (goatpig?) provide some insight, suggestions, or other triage tips? Should I try to save my Armory settings/database and reinstall? Thanks in advance for the help! I have loved using Armory and would like to keep doing so, but if I can't get this wallet to be online, then I will need to export my keys and move to another wallet for the first time in well over a decade. :( Title: Re: ArmoryDB crash after connecting to Bitcoin Core node Post by: goatpig on March 30, 2025, 05:10:02 PM What's the content of your bitcoin.conf?
Title: Re: ArmoryDB crash after connecting to Bitcoin Core node Post by: ChanceCoats123 on March 30, 2025, 05:22:49 PM Only this:
server=1 listen=1 The Bitcoin Core shortcut that I use to launch the GUI has target updated to include -datadir="G:\Bitcoin" so the above lines are included in the bitcoin.conf located in that same directory. Title: Re: ArmoryDB crash after connecting to Bitcoin Core node Post by: goatpig on March 31, 2025, 08:39:21 AM Most likely you are running into this issue: https://github.com/goatpig/BitcoinArmory/issues/720
Long story short, Core 0.28+ went from JSON 1.0 to JSON 2.0 and that bricks the RPC code in ArmoryDB. Simplest solution is to downgrade to Core 0.27, hard solution is to try and build your own DB binary following the updated instructions from that issue's contributor. Long term solution is 0.97. Build system is too busted to generate a new release for 0.96.x Title: Re: ArmoryDB crash after connecting to Bitcoin Core node Post by: ChanceCoats123 on March 31, 2025, 03:00:37 PM Ahh that makes sense. It seemed like something silent was going on in the background since the dblog wasn't printing anything useful.
I grabbed a v27.0.0 Bitcoin Core and we're back up and running with no other changes to my settings. Thanks a lot for the quick help, goatpig!!! |