<div dir="ltr">This is awesome, nice work!<br></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jul 2, 2018 at 4:16 PM Roman Zeyde via bitcoin-dev &lt;<a href="mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.linuxfoundation.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello all,<br>
<br>
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]).<br>
<br>
The code and usage instructions can be found here:<br>
<a href="https://github.com/romanz/electrs" rel="noreferrer" target="_blank">https://github.com/romanz/electrs</a><br>
<br>
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].<br>
Since it runs on the user&#39;s own machine, there is no need for the wallet to communicate with external Electrum servers, thus preserving the privacy of the user&#39;s addresses and balances.<br>
<br>
Features:<br>
 * Supports latest Electrum protocol [6].<br>
 * Maintains an index of transaction inputs and outputs, allowing fast balance queries<br>
 * Fast synchronization of the Bitcoin blockchain (~2.5 hours for ~185GB @ June 2018) on modest hardware [7]<br>
 * Low CPU &amp; memory usage (after initial indexing)<br>
 * Low index storage overhead (~20%), relying on a local full node for transaction retrieval<br>
 * Efficient mempool tracker allowing better fee estimation [8].<br>
 * `-txindex` is not required for the Bitcoin node<br>
 * Uses `rust-bitcoin` library [9] for efficient serialization/deserialization of Bitcoin transactions<br>
 * Uses a single RocksDB [10] database, for better consistency and crash recovery<br>
<br>
Hope you&#39;ll find it useful :)<br>
Questions, suggestions and pull requests are welcome!<br>
<br>
[1] <a href="https://github.com/kyuupichan/electrumx" rel="noreferrer" target="_blank">https://github.com/kyuupichan/electrumx</a><br>
[2] <a href="https://github.com/chris-belcher/electrum-personal-server" rel="noreferrer" target="_blank">https://github.com/chris-belcher/electrum-personal-server</a><br>
[3] <a href="https://github.com/jonasschnelli/bitcoincore-indexd" rel="noreferrer" target="_blank">https://github.com/jonasschnelli/bitcoincore-indexd</a><br>
[4] <a href="https://github.com/romanz/electrs/blob/master/doc/schema.md" rel="noreferrer" target="_blank">https://github.com/romanz/electrs/blob/master/doc/schema.md</a><br>
[5] <a href="https://electrum.org" rel="noreferrer" target="_blank">https://electrum.org</a><br>
[6] <a href="https://electrumx.readthedocs.io/en/latest/protocol.html" rel="noreferrer" target="_blank">https://electrumx.readthedocs.io/en/latest/protocol.html</a><br>
[7] <a href="https://gist.github.com/romanz/cd9324474de0c2f121198afe3d063548" rel="noreferrer" target="_blank">https://gist.github.com/romanz/cd9324474de0c2f121198afe3d063548</a><br>
[8] <a href="https://github.com/spesmilo/electrum/blob/59c1d03f018026ac301c4e74facfc64da8ae4708/RELEASE-NOTES#L34-L46" rel="noreferrer" target="_blank">https://github.com/spesmilo/electrum/blob/59c1d03f018026ac301c4e74facfc64da8ae4708/RELEASE-NOTES#L34-L46</a>)<br>
[9] <a href="https://github.com/rust-bitcoin/rust-bitcoin" rel="noreferrer" target="_blank">https://github.com/rust-bitcoin/rust-bitcoin</a><br>
[10] <a href="https://github.com/spacejam/rust-rocksdb" rel="noreferrer" target="_blank">https://github.com/spacejam/rust-rocksdb</a><br>
_______________________________________________<br>
bitcoin-dev mailing list<br>
<a href="mailto:bitcoin-dev@lists.linuxfoundation.org" target="_blank">bitcoin-dev@lists.linuxfoundation.org</a><br>
<a href="https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" rel="noreferrer" target="_blank">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</a><br>
</blockquote></div>