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.
wget https://github.com/cculianu/Fulcrum/releases/download/v1.9.1/Fulcrum-1.9.1-x86_64-linux.tar.gz
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.
####change datadir = /path/to/a/dir # Windows: datadir = D:\FulcrumData\mainnet ##to 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 = 0.0.0.0:50002 ##like this ssl = 0.0.0.0:50002 ####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“.
[Unit] Description=Fulcrum After=network.target [Service] ExecStart=/home/satoshi/fulcrum/Fulcrum /home/satoshi/fulcrum/fulcrum.conf User=satoshi LimitNOFILE=8192 TimeoutStopSec=30min [Install] WantedBy=multi-user.target
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;
ssl://192.168.1.100:50002
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. Portforward.com 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 “myip.opendns.com has address“.
host myip.opendns.com resolver1.opendns.com
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;
ssl://106.80.4.72:11222
Or if you have a DDNS;
ssl://myddns.mysite.com:11222
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 127.0.0.1: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;
https://78aqvahpe6pjachf6nxroyr76gecku6nqoyngkj49r63n3twm6jpisyd.onion:50002
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.