A much faster version of Electrum Server is now available. The reimplementation of Electrum Server, called Electrum X is the creation of Neil Booth which he claims to be 10 times faster than the Electrum Server.
The Electrum X Server codes are made available on GitHub under the MIT License. While the main server is built on Python 2, the new reimplementation makes use of much advanced Python 3.4 and still manages to work with the existing clients. By using Python 3.4, Neil leverages upon the asyncio feature for a better client implementation. The Electrum X Server is not just compatible with Bitcoin but also with other altcoins which share similarities with Bitcoin protocol. A custom codebase has been set in place to ensure compatibility.
While the Electrum server database is huge, with over 35 GB worth of data, the new system is much more compact and efficient. According to Neil, the Electrum X server is more aggressive when it comes to caching and batching DB writes. In addition, it also offers a much compact representation of the UTXOs, map address index and even the history. The compression of data on Electrum X is facilitated by the pruning feature that just stores the transaction hashes in a linear array instead of storing full transaction hashes and heights.
The Electrum X is not a finished product at the moment, but more of a prototype. The indexing system for append only- metadata makes use of the actual position of the data on the disk instead of levelDB. All these new features, derived from the latest Python language also offers an option to minimize the requirement of computation power and memory.
Neil still has few plans for further development of Electrum X. According to his roadmap, the server will undergo few more performance improvements. These improvements include blockchain reorgs, handling client connections and shifting certain functionalities to C or C++ platform.
In the coming days, he also intends to include DoS protection to ensure Electrum X’s security. While he has proven that the new system is much more advanced and efficient than the previous one, it is to be seen whether Electrum developers learn something from this and adopt some of the features into their offering as well.
Ref: Electrum X on GitHub | Image: Electrum.org