Specter Desktop is what a Bitcoin wallet GUI ought to be.

When I used Bitcoin Core for the first time, along with Bitcoin-Qt, the concept of a web based GUI for Bitcoin Core immediately jumped out at me. I love the Specter Desktop implementation.

So, I want to run Specter on my Mac OS laptop and connect it to my RaspiBlitz node, which runs 24/7. I don’t want to install Bitoin Core on my laptop.

I happen to be using a RaspiBlitz but the core concepts in this guide apply to any flavor of Bitcoin Core (no pun intended).

I am aware that the RaspiBlitz can host Specter and it even has a simple 1-click install. I think that is a great feature. However, keeping Specter up-to-date on the RaspiBlitz is not as easy as you would think (I’m writing another post on that topic). And I also don’t want to worry about backing up Specter every time I upgrade the RaspiBlitz. I like to keep the RaspiBlitz as barebones as possible; hence my pursuit of managing Specter like a stand-alone app on my laptop, and connect it to my RaspiBlitz.



In this guide:

  1. I go over the process of installing Specter Desktop on Mac OS
  2. I connect Specter to Bitcoin Core running on a RaspiBlitz node

Install Specter Desktop on Mac OS.

1. Download Specter Desktop

2. Verify signatures

You want to make sure the file you just downloaded has not been tampered with.

  • Download Pub Key
  • Fingerprint of the key is 6F16 E354 F833 93D6 E52E C25F 36ED 357A B24B 915F, short id: 36ed357ab24b915f

Make sure you’re in the correct diretory before running the commands. Hint, wherever you’re downloading the files to i.e. cd ~/downloads.

  • Import key: gpg--importss-specter-releaseasc
❯ gpg--importss-specter-releaseasc
gpg: key 36ED357AB24B915F: public key Stepan Snigirev 
(Specter release signing key) <snigirev.stepan@gmail.com> imported
gpg: Total number processed: 1
gpg:               imported: 1
  • Download sha256 hashes from Github
  • Verify signed hashes: gpg --verify sha256.signed.txt

Compare the Primary key fingerprint in the output to the Fingerprint of the key.

> gpg --verify sha256.signed.txt
gpg: Signature made Sun Dec  6 09:58:48 2020 PST
gpg:                using ECDSA key 6F16E354F83393D6E52EC25F36ED357AB24B915F
gpg: Good signature from "Stepan Snigirev (Specter release signing key) 
<snigirev.stepan@gmail.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 6F16 E354 F833 93D6 E52E  C25F 36ED 357A B24B 915F
  • Confirm the signed hashes and the hashes for the release that you downloaded match

shasum -a 256 -c sha256.signed.txt | grep OK

> shasum -a 256 -c sha256.signed.txt | grep OK
SpecterDesktop-v0.10.4.dmg: OK

3. Install Specter Desktop

4. Open Specter Desktop for the first time


Connect Specter to Bitcoin Core running on a RaspiBlitz node.

1. Let’s configure RaspiBlitz to accept RPC connections

In this guide we are assuming 192.168.0.247 is my RaspiBlitz local IP.

  • Connect to your RaspiBlitz over SSH : ssh admin@192.168.0.247
  • Exit to the ‘Console / Terminal’
  • Go to the bitcoin home folder cd /home/bitcoin/.bitcoin
  • Take a backup of bitcoind.conf cp -pv bitcoin.conf bitcoin.conf.20201216
  • Allow port 8332 connections through the firewall sudo ufw allow 8332
  • I’m going to add a couple of entries to allow RPC connections from within my local network. I’m not interested in connecting Specter to my node remotely over the internet. Let’s edit bitcoin.conf (I like to use vim, feel free to use your editor of choice): vi bitcoin.conf
  • Add the entries under #connection settings
  • You will need your local network details to make this work. Below is an example of what these entries might look like
    rpcallowip=192.168.0.1/255.255.255.0
    main.rpcbind=192.168.0.247:8332
    
  • Save the changes :wq! (bitcoin.conf is ready only on my RaspiBlitz, hence the force save)
  • Restart the Bitcoin service sudo systemctl restart bitcoind
  • Test that you can connect to RPC both, directly from your node, as well as from your Mac OS
    • From your node terminal run telnet 127.0.0.1 8332
    • From your Mac OS terminal run telnet 192.168.0.147 8332
  • Alternatively, if you don’t have telnet on Mac OS, you can use curl
    curl --user user:password --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }' -H 'content-type: text/plain;' http://192.168.0.247:8332/
    

2. Let’s connect Specter to your RaspiBlitz node

  • Fill in your node details (your rpc username/password are defined in bitcoin.conf)
  • Test that the connection is succesful
  • Save


Success!

This is a fairly technical guide, I hope it saved you a few hours if you stumbled uppon it.




Command reference:

  • bitcoind --help
  • sudo ufw status
  • sudo systemctl status bitcoind

Tools:

References