Project Roma: Installing Your Personal Electrum Server – Fulcrum

Dec 14, 2023

Prerequisite

Your own Node hardware

Installing & Configuring Bitcoin Core

1. Download the file

Go into your “home” directory and create the following folders
mkdir fulcrum
mkdir fulcrum_db

Go to the Fulcrum Github release page and download the latest release
cd downloads

wget https://github.com/cculianu/Fulcrum/releases/download/v1.9.1/Fulcrum-1.9.1-x86_64-linux-ub16.tar.gz

wget https://github.com/cculianu/Fulcrum/releases/download/v1.9.1/Fulcrum-1.9.1-x86_64-linux-ub16.tar.gz.asc

sha256sum --ignore-missing --check SHA256SUMS

Extract the file
tar xvf Fulcrum-1.9.1-x86_64-linux-ub16.tar.gz

Move the files to fulcrum folder
mv Fulcrum-1.9.1-x86_64-linux-ub16/* /home/"user"/fulcrum
cd ..
cd fulcrum

2. Creating the Key and Cert

Creating the keys
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

Generating a RSA private key

Press "enter: for all the defaults parameters. The files keys.perm and cert.perm should have been created in your fulcrum folder.

3. Configuration file

rename the config file
mv fulcrum-example-config.conf fulcrum.conf

Modify the config file
nano fulcrum.conf

Change the following in the config file:

  • Change path of the datadir: home/"username"/fulcrum_db
  • rpcuser: use the same one as the bitcoin.conf file
  • rpcpassword: use the one used for the rpcauthy while setting up the bitcoin.conf file
  • remove the # for the SSL= 0.0.0.0:50002
  • remove the # for the certificate and put correct path home/"username"/fulcrum/cert.pem
  • remove the # for the key and put correct path home/"username"/fulcrum/key.pem
  • remove the # for peering and change for peering=false
  • remove the # for fast-sync and change for what you are confortable fast-sync = 4000 (4g of ram)

CTRL-X, Y, ENTER

4.Creating the service file

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

Paste de following in the file and replace "user" by your server username.

[Unit]
Description=Fulcrum After=network.target
[Service]
ExecStart=/home/"user"/fulcrum/Fulcrum /home/"user"/fulcrum/fulcrum.conf User="user"
LimitNOFILE=8192
TimeoutStopSec=30min
[Install]
WantedBy=multi-user.target

CTRL+X, Y, Enter

***Start this service

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

To see the log
journalctl -fu fulcrum.service

Et Voila!