Fixing Bitcoin Armory on macOS Catalina 10.15


Bitcoin Armory

The recent surge in crypto prices brought my old Bitcoin stash back to mind. I decided to load up an old digital wallet to check it for consistency, but when I tried to load it, the software, Bitcoin Armory, wouldn’t run. I’m running macOS Catalina 10.15.7, so I figured something changed during my miscellaneous software updates or upgrade from Mojave to Catalina.

Troubleshooting

I have a paper wallet and it wouldn’t be difficult to spin up a VM with an older Windows or macOS version, but that’s time consuming and tedious - even with Terraform provisioning, PXEbooting and Ansible post-provisioning in my arsenal.

After doing some searching I found this forum discussion at bitcointalk.org. It was somewhat useful, but it didn’t quite solve my particular problem.

As I set about debugging the issue it turned out the problem was a pretty easy fix.(for me)

When Armory crashed, it prompted me to view a Report:


App Crash

Ok fair enough. That’s what crash reports are for.

Debugging

Clicking Report... produced output like this:

Crash Report

This is most of the crash report:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Process:               Python [90706]
Path: /Applications/Armory.app/Contents/MacOS/Armory

Termination Reason: DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries
DYLD_FRAMEWORK_PATH=/Applications/Armory.app/Contents/MacOS/../Dependencies:/Applications/Armory.app/Contents/MacOS/../Frameworks
DYLD_LIBRARY_PATH=/Applications/Armory.app/Contents/MacOS/../Dependencies:/Applications/Armory.app/Contents/MacOS/../Frameworks

Dyld Error Message:
Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /Applications/Armory.app/Contents/MacOS/Python
Reason: image not found

Binary Images:
0x10904d000 - 0x10904dff3 +Python (0) <323F5F65-13A0-3067-9591-6432083EE72E> /Applications/Armory.app/Contents/MacOS/Python
0x10cc60000 - 0x10ccf1f47 dyld (750.6) <326C6480-04F4-3164-A363-53079A148E2F> /usr/lib/dyld

When reviewing it I found the following lines to be relevant:

1
2
3
4
Dyld Error Message:
Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /Applications/Armory.app/Contents/MacOS/Python
Reason: image not found

image not found sounds like a problem. Does the file exist?

1
2
3
4
5
6
7
8
cbergeron@cb-mbp $ ls -l /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
"/usr/local/opt/openssl/lib/libssl.1.0.0.dylib": No such file or directory (os error 2)

cbergeron@cb-mbp $ cd /usr/local/opt/openssl/lib/

cbergeron@cb-mbp lib $ ls libssl*
libssl.1.1.dylib libssl.a libssl.dylib

Nope. No libssl.1.0.0.dylib. It’s absent. I use GNU Locate on my Mac so let’s see if it exists anywhere on my system:

1
2
3
cbergeron@cb-mbp $ glocate libssl.1.0.0.dylib
/System/Volumes/Data/usr/local/aws-cli/libssl.1.0.0.dylib
/usr/local/aws-cli/libssl.1.0.0.dylib

Look at that - it’s included in the Amazon AWS command line package. Since it’s already on my laptop and it’s the proper version and since I’m just looking for a quick solution to sweep my bitcoin keys away, I’ll try to link to that library directly and restart Armory:

1
cbergeron@cb-mbp lib $ ln -s /usr/local/aws-cli/libssl.1.0.0.dylib

No dice. I started Armory and another error popped up. There’s another file missing but now it’s libcrypto.1.0.0.dylib. That file is also included in the aws-cli package, so I just have to symlink to it too:

1
cbergeron@cb-mbp lib $ ln -s /usr/local/aws-cli/libcrypto.1.0.0.dylib

Here are the files in /usr/local/opt/openssl/lib/ directory with the new symlinks that I created:

1
2
lrwxr-xr-x 1 username staff      37 Feb 25 22:37 libssl.1.0.0.dylib -> /usr/local/aws-cli/libssl.1.0.0.dylib
lrwxr-xr-x 1 username staff 40 Feb 25 22:38 libcrypto.1.0.0.dylib -> /usr/local/aws-cli/libcrypto.1.0.0.dylib

I try starting Bitcoin Armory again and …

Welcome Splash

Success

After the app loads it will begin to load the Bitcoin Blockchain and check the Armory database and digital wallet. This takes quite a while and depends on your internet connection and computer speed:

Wallet Consistency Check

Relief

After waiting for the blockchain to download and for the wallet consistency check to complete I was relieved to see my transaction history, Armory is Online and my Spendable Funds are there.

Bitcoin Armory

Needless to say, these coins have been swept into a more reliable Wallet App with MFA and Paper. Selecting a Bitcoin App / trading account is extremely important so do some research before making your selection. In 2021, Bitcoin platforms are more mature then they were back in 2013, but due dilligence always pays off in the end.

Please leave questions or comments below.
Author

Chris Bergeron

Posted on

02-26-2021

Updated on

03-15-2021

Licensed under

Comments