A lot of people are looking for alternatives to the original ElectrumX at the moment, so we thought it’d be a good opportunity to highlight some of the new options available for running Electrum servers, with a focus on the Blockstream’s Esplora, an open-source block explorer which now comes bundled with a highly-scalable Electrum server.
Running Your Own Electrum Server
By default, the Electrum wallet app connects to a random set of Electrum servers. This is not great from a privacy perspective because it announces your wallet’s addresses and balances to unknown third parties. And it’s well known that, unfortunately, many public Electrum servers are run by blockchain analysis companies and worse. So if you’re using an Electrum wallet, we generally recommend that you run your own Electrum server and connect your wallet to that instead.
Developers building Bitcoin applications should also consider carefully the options available, as each Electrum server implementation makes a variety of tradeoffs. Some implementations are more suited to certain applications than others.
The good news is that there is an increasing number of great Electrum server options available catering to various different types of users, which we summarise below.
Recently forked from the original ElectrumX and maintained by the official Electrum team, Electrum’s ElectrumX provides more performance than personal server solutions and includes a P2P discovery protocol that enables wallet apps to automatically connect to the server. Together these make it a great solution for setting up public Electrum servers.
Electrum Personal Server (EPS) offers less performance than ElectrumX or Electrs, but is easier to set up and connect to a Bitcoin node, making it a good choice for individuals interested in installing a private Electrum server for personal use. It’s also light on resources compared to a fully-indexed ElectrumX or Electrs instance, so it can be run on low-end hardware.
Combined with the recently-launched Electrum plugin, Bitcoin Wallet Tracker (BWT) offers an easy, one-click setup and should quickly become a popular option for personal Electrum servers. Implemented in Rust, BWT also offers sufficient performance for powering Bitcoin wallet backends and payment processors while offering pruning support. However, It should be noted that BWT is early-alpha software and may contain bugs, so use it cautiously!
Electrs is a lightweight implementation of an Electrum server written in Rust that provides an index of all Bitcoin transactions rather than only the user’s transactions, as is the case with Electrum Personal Server or Bitcoin Wallet Tracker. This comes at the cost of requiring more resources. However, due to less caching, Electrs is not as DoS resistant/performant as Esplora (see below) or ElectrumX. It’s still an excellent option for local networks or deployments where storage is restricted and has excellent sync time.
Blockstream’s Esplora is an open-source block explorer used to power the official Blockstream Explorer as well as a number of other projects, including Bitcoin Magazine’s explorer, Mempool, and the Light Nite Explorer.
Less well known is the fact that Esplora comes bundled with an optimized Electrum server based on a separately-maintained fork of Electrs. Thanks to a steady stream of updates and performance boosts from our engineering team over the last two years. Esplora is now one of the fastest and most scalable Electrum server solutions available for Bitcoin. Esplora is also the only Electrum server to provide support for the Liquid Network.
Esplora is also used in the two-factor authentication backend for our Blockstream Green server and, in general, is a top option for supporting a high-throughput wallet API.
Large Indexing for Speed and Scalability
Unlike Electrs, which needs to reference a Bitcoin node for most requests (slow!), Esplora creates a complete database of the blockchain—it does not need to reference a Bitcoin node at all for queries. Once indexed, Esplora only relies on a Bitcoin node to asynchronously update the mempool cache and receive new block notifications.
With its extensive indexes, caching, and pre-populated results, Esplora provides faster address lookups, better resistance to denial-of-service (DoS) attacks, and support for the automated import of multiple wallets.
The tradeoff is that this all requires significantly more hard disk space and time to index than Electrs or Electrum servers designed for personal use (EPS and BWT).
Now with P2P Discovery
Until now, ElectrumX was the only server option to offer P2P discovery, which has led to almost all Electrum wallets being dependent on servers running on the original ElectrumX. This week, we introduced P2P discovery as an optional feature to Esplora too, which makes Esplora the only other alternative for running an Electrum server designed for public wallet connections.
Would You Like a Block Explorer With That?
While the advanced setup may put off some personal server users, Esplora makes a great option for those looking for both a personal Electrum server and a personal block explorer. By bundling both together, Esplora can save the user a lot of time trying to set both up separately.
Lightweight if it Needs to Be
Personal users can also activate Blockstream Esplora’s light mode to significantly lower the disk space requirements at the cost of lower scalability and a loss of DoS resistance. Light mode still provides both the block explorer and Electrum server functionality, and is more than enough performance for a typical home or small office.
Connect to the Blockstream Electrum Server
Although we’d always recommend that personal users set up their own Electrum servers, the official Blockstream Electrum server is available to connect to on the details below. This server is run on the same principles as the Blockstream Explorer: no logs, no tracking, and Tor support.
Get Started with Esplora
Note that the indexes require around 600GB of storage after running compaction, but you’ll need to have about 1TB of free space available for the initial (non-compacted) indexing process.