Sovereignty, Privacy & Economic Freedom.


Dojo x86 Bitcoin Node Guide: 2. Fulcrum Indexer.

  1. Dojo x86 Bitcoin Node Guide: 1. Core & Tor.
  2. Dojo x86 Bitcoin Node Guide: 2. Fulcrum Indexer.
  3. Dojo x86 Bitcoin Node Guide: 3. Mempool Explorer.
  4. Dojo x86 Bitcoin Node Guide: 4. Dojo.
  5. Dojo x86 Bitcoin Node Guide: 5. Whirlpool & UFW.
  6. Dojo x86 Bitcoin Node Guide: 6. Updating Packages.

Once you have a fully synchronised IBD, installing an indexer is the next step. We will use Fulcrum, which has a larger footprint than other Electrum implementations, but the performance is excellent.

First, download Fulcrum to your download directory.

cd ~/downloads

Head to Fulcrum’s Github page and copy the link for the latest “x86_64-linux.tar.gz” file. At the time of writing, the most current version is 1.9.1.

Back in the terminal, download the file by pasting the link with the “wget” command.


Next, create a “fulcrum” and “fulcrum_db” folder for housing the Fulcrum files.

mkdir ~/fulcrum
mkdir ~/fulcrum_db

You can now unpackage the archive and move its contents to your new “fulcrum” directory.

tar xvf Fulcrum-1.9.1-x86_64-linux.tar.gz
mv Fulcrum-1.9.1-x86_64-linux/* /home/satoshi/fulcrum

Remove the leftover folder and its archive.

rm -r Fulcrum-1.9.1-x86_64-linux
rm Fulcrum-1.9.1-x86_64-linux.tar.gz

Next, you need to generate new SSL keys.

cd ~/fulcrum
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

Hit enter on each question prompt, leaving all at default.

You need to rename the fulcrum configuration file and make a few edits.

mv fulcrum-example-config.conf fulcrum.conf
nano fulcrum.conf

Edit the following lines.

datadir = /path/to/a/dir  # Windows: datadir = D:\FulcrumData\mainnet

datadir = /home/satoshi/fulcrum_db  # Windows: datadir = D:\FulcrumData\mainnet

####edit with your core rpc username & password
rpcuser = Bob_The_Banker
rpcpassword = hunter1

####uncomment the following line
#ssl =

##like this
ssl =

####uncomment & edit the following lines
#cert = /path/to/server-cert.pem
#key = /path/to/server-key.pem
#peering = true

##like this
cert = /home/satoshi/fulcrum/cert.pem
key = /home/satoshi/fulcrum/key.pem
peering = false

Notice how I edited the paths for “datadir“, “cert.pem” and “key.pem” to match their locations in my file structure.

Lastly, you have the option to enable fast sync. This is not essential and has no use after the initial sync, but using it will speed up the process. You must be careful not to push it too quickly, as you can easily corrupt the database. I typically set this to 50% of available system memory but not exceeding 12GB. If using fast sync, find the following line, delete the # and enter your setting in MB.

For 8GB, I would edit as follows;

fast-sync = 8000

Save and exit the file with “control+x“, then “y”, and finally “enter“.

For Fulcrum to start automatically on system boot, you must create a service file.

sudo nano /etc/systemd/system/fulcrum.service

Paste the following lines into the file and then save and exit. Don’t forget to modify the user and paths if your admin username is not “satoshi“.


ExecStart=/home/satoshi/fulcrum/Fulcrum /home/satoshi/fulcrum/fulcrum.conf


Now activate and enable the service file.

sudo systemctl enable fulcrum.service
sudo systemctl start fulcrum.service
sudo systemctl status fulcrum.service

You should see a green light and “active” status.

Before continuing, wait until the sync process is complete. How long this will take depends on the memory dedicated to syncing, but it typically completes within 24 hours. Your node’s power supply must remain uninterrupted during this process.

You can keep an eye on progress with the following command. You will know it is synchronised once you see the logs pulling the latest Mempool txs.

journalctl -fu fulcrum.service

Connecting Wallets to Fulcrum.

Once Fulcrum has synchronised, you can immediately connect your wallets to the node. If you only use Samourai Wallet and/or Sentinel, you can skip immediately to the next article since these wallets connect via Dojo, covered later in the guide.

SSL Connections.

Local SSL connections are a simple case of adding your node’s local IP and SSL port into the address field of your wallets settings, for example;


For mobile wallets, a remote connection is preferable. To connect remotely via SSL, you will need to forward internal port 50002 to an external port number of your choice on your router’s admin page. has a great directory of manufacturer-specific guides on port forwarding if you are unfamiliar with the process.

Next, you need the public IP address for your network. If your router supports Dynamic DNS, you can use your DDNS address instead of your public IP.

If you don’t know your network’s public IP, you can find it by running the following command. You will find your public IP in the output next to where it says “ has address“.


Using your public IP and the external port you set, you can add your node’s SSL address into your wallets settings menu, for example;


Or if you have a DDNS;

Tor Connections.

When connecting via Tor, you bypass the complexities involved with port forwarding whilst maintaining the ability to connect wallets remotely. This, however, comes at the price of wallet efficiency due to the network limits of Tor.

Check your wallet’s documentation to see if it has integrated Tor. If not, you will also need to install a Tor client on the remote device. Orbot is a popular Android/iOS Tor client.

To connect via Tor, you need to add a few lines to the “torcc” file.

sudo nano /etc/tor/torrc

Paste the following lines at the bottom of the file.

# Hidden Service Fulcrum SSL
HiddenServiceDir /var/lib/tor/hidden_service_fulcrum/
HiddenServiceVersion 3
HiddenServicePort 50002

Save and exit the file, then reload Tor services.

sudo systemctl reload tor

You can locate your Fulcrum server’s onion address with the following command.

sudo cat /var/lib/tor/hidden_service_fulcrum/hostname

Enter your onion address into your wallets settings, ensuring that you also add your hidden service port number at the end, for example;


You should now have a fully functional Fulcrum server and be able to connect external wallets remotely via SSH or Tor.

In the next article, we will be installing the Mempool bitcoin explorer.