[bitcoin-dev] An efficient re-implementation of Electrum Server in Rust

Jim Posen jim.posen at gmail.com
Thu Jul 5 21:35:39 UTC 2018


This is awesome, nice work!

On Mon, Jul 2, 2018 at 4:16 PM Roman Zeyde via bitcoin-dev <
bitcoin-dev at lists.linuxfoundation.org> wrote:

> Hello all,
>
> I was working on this project for the last few months, so a user could run
> his own Electrum server, with required hardware resources not much beyond
> those of a full node (using ideas from ElectrumX [1], Electrum Personal
> Server [2] and bitcoincore-indexd [3]).
>
> The code and usage instructions can be found here:
> https://github.com/romanz/electrs
>
> The server indexes the entire Bitcoin blockchain, and the resulting index
> [4] enables fast queries for any given user wallet, allowing the user to
> keep real-time track of his balances and his transaction history using the
> Electrum wallet [5].
> Since it runs on the user's own machine, there is no need for the wallet
> to communicate with external Electrum servers, thus preserving the privacy
> of the user's addresses and balances.
>
> Features:
>  * Supports latest Electrum protocol [6].
>  * Maintains an index of transaction inputs and outputs, allowing fast
> balance queries
>  * Fast synchronization of the Bitcoin blockchain (~2.5 hours for ~185GB @
> June 2018) on modest hardware [7]
>  * Low CPU & memory usage (after initial indexing)
>  * Low index storage overhead (~20%), relying on a local full node for
> transaction retrieval
>  * Efficient mempool tracker allowing better fee estimation [8].
>  * `-txindex` is not required for the Bitcoin node
>  * Uses `rust-bitcoin` library [9] for efficient
> serialization/deserialization of Bitcoin transactions
>  * Uses a single RocksDB [10] database, for better consistency and crash
> recovery
>
> Hope you'll find it useful :)
> Questions, suggestions and pull requests are welcome!
>
> [1] https://github.com/kyuupichan/electrumx
> [2] https://github.com/chris-belcher/electrum-personal-server
> [3] https://github.com/jonasschnelli/bitcoincore-indexd
> [4] https://github.com/romanz/electrs/blob/master/doc/schema.md
> [5] https://electrum.org
> [6] https://electrumx.readthedocs.io/en/latest/protocol.html
> [7] https://gist.github.com/romanz/cd9324474de0c2f121198afe3d063548
> [8]
> https://github.com/spesmilo/electrum/blob/59c1d03f018026ac301c4e74facfc64da8ae4708/RELEASE-NOTES#L34-L46
> )
> [9] https://github.com/rust-bitcoin/rust-bitcoin
> [10] https://github.com/spacejam/rust-rocksdb
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev at lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180705/6c5cd00e/attachment.html>


More information about the bitcoin-dev mailing list