I'm currently installing my very first Electrum server, and figured I'd start a topic to keep track of my progress.
Medusah's post 4 weeks ago pointed out that an increase number of Bitcoin miners lowered their minimum transaction fee from 1 to 0.1 sat/vbyte. Unfortunately, Electrum doesn't allow the user to set a fee lower than the connected Electrum server's minimum, which makes it much more compliated to use the lower fees.
My goal is to create the first Electrum server that allows this. I may or may not be running this long-term, by the time others join the lower fees I may stop it as it takes quite some disk space.
Note that some miners still prefer empty blocks over lower fees. Use
mempool.space to see how likely your transaction is going to be included. If it takes too long to confirm: just switch to an Electrum server that doesn't accept low-fee transactions, and create a new transaction with higher fee.
My current VPS has 32 GB RAM, and enough NVMe storage for everything except for Bitcoin Core's
blocks directory. That directory is on much slower network storage. I'll have to see how it performs on this hardware.
It turns out there are many different implementation of Electrum server.
ABCbits's post made me choose
Fulcrum.
Progress so far (summarized):
- Create user "electrum"
- Start and sync Bitcoin Core:
bitcoind -maxuploadtarget=400000 -dbcache=16384 -rpcuser=user -rpcpassword=pass -rpcport=number -minrelaytxfee=0.000001 --incrementalrelayfee=0.000001
~/Fulcrum-1.12.0-x86_64-linux/Fulcrum --datadirpath/datadir --bitcoind 127.0.0.1:number --rpcuser=user --rpcpassword=pass
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11626 electrum 20 0 3557636 797904 6272 S 257.1 2.4 74:04.61 Fulcrum
9573 electrum 20 0 16.7g 2.3g 1.8g S 13.0 7.4 12:07.91 bitcoind
[2025-08-13 16:26:45.772] <Controller> Processed height: 269000, 29.6%, 19.8 blocks/sec, 7035.7 txs/sec, 25674.4 addrs/sec
[2025-08-13 16:27:27.935] <Controller> Processed height: 270000, 29.7%, 23.7 blocks/sec, 7932.9 txs/sec, 27207.3 addrs/sec
[2025-08-13 16:28:44.932] <Controller> Processed height: 271000, 29.8%, 13.0 blocks/sec, 5863.4 txs/sec, 21324.5 addrs/sec
[2025-08-13 16:29:53.065] <Controller> Processed height: 272000, 29.9%, 14.7 blocks/sec, 6917.3 txs/sec, 23934.4 addrs/sec
[2025-08-13 16:30:39.111] <Controller> Processed height: 273000, 30.0%, 21.7 blocks/sec, 9363.9 txs/sec, 34043.5 addrs/sec
[2025-08-13 16:31:14.499] <Controller> Processed height: 274000, 30.1%, 28.3 blocks/sec, 10296.1 txs/sec, 39189.5 addrs/sec
[2025-08-13 16:31:50.110] <Controller> Processed height: 275000, 30.2%, 28.1 blocks/sec, 9665.8 txs/sec, 37819.0 addrs/sec
- Syncing got slower and slower, so I followed Cricktor's post and added caching:
config.conf
utxo_cache = 8192
- After building it's database, edit Fulcrum's quickconfig.conf with hostname and IP-address for Electrum to connect to.
Use instructions from https://github.com/christroutner/docker-fulcrum to create a SSL certificate - ~/Fulcrum-1.12.0-x86_64-linux/Fulcrum quickconfig.conf
Server is running: electrum.loyce.club:50002
Minimum relay fee reduced to 0.1 sat/vbyte by restarting Bitcoin Core with adjusted options (see above).
How to use thisElectrum settingsConnect Electrum to a server that allows lower fees, like electrum.loyce.club:50002
"Teach" your Electrum to sign transactions with less that 1 sat/vbyte:
wallet.relayfee = (lambda: 0)
Or automate it on startup:
Note: this allows to create transactions that pay less than 0.1 sat/vbyte fee, but at the moment no mining pool will accept those.
Self-moderated against spam. Discussion is of course allowed.