Return-Path: <jim.posen@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 5CE2AE3E
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu,  5 Jul 2018 21:35:55 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-qk0-f182.google.com (mail-qk0-f182.google.com
	[209.85.220.182])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 999A1762
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu,  5 Jul 2018 21:35:54 +0000 (UTC)
Received: by mail-qk0-f182.google.com with SMTP id v17-v6so2843268qkb.11
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu, 05 Jul 2018 14:35:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
	h=mime-version:references:in-reply-to:from:date:message-id:subject:to; 
	bh=5DU3G0H9bW3Kn5iFsHQjy69Bpj+RdyDV7C7J31jasoM=;
	b=j1nXacsgiMkI+Qg5lPi2JDYZMj0vXv/4yakLB1PbdXHnEPFwqcmjCV219gDVdtJXFE
	8de7qUEjoVpYneNYSpWUeg8r4m/r9bn3AIyjblQer6pEieKoR73GFKdg9t87MDHBrtCX
	MV1CCYV0TxysobeO8M64YDksl7xmoBYma6OX8CUyXlcKE7e4OUZwfk3sONwczxRAEEJY
	HFuSNtLt4bI/02b3A/oENGOjdycV1cnuOFBbwbqjI+NlgcVB42PvolTJEGgT1QIZqvYL
	auZywWMdzr/thlZcQ4+5yCgAvqsuBPFyjTolBeW4S8fZ8D8VBqxpCwlh/JRBLXiYyRT1
	2M0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:mime-version:references:in-reply-to:from:date
	:message-id:subject:to;
	bh=5DU3G0H9bW3Kn5iFsHQjy69Bpj+RdyDV7C7J31jasoM=;
	b=VJX8gZnZQcwwj8RWy8Eidf0QpOsQqAXM4ol+4+PZBJoS4waJTTbd8Hh88HNPtvxAzR
	ee32fDhwrExL0f03S4sroUvAaFX3CDPxl7OetdWBCdQXi93D99CMzouoIeOPzdiz+X2S
	eNDspAiy7wa+EoNIk2rhp/U+xInEmNjsN0Ovs+ZLyKQ19mo1hLLwoa+5ktL/eXTd+Q0p
	KJy/b7X4eRC4WKAWP6BTQhmBa3T59+Q/AfojcktLdvVIBPr5NTGhOCIEvuIgR8zyoJu5
	Dvjd2JhgUxad8pSpURCnRjiroO42djZ89j47wM9sd7glG0vx1UnxdW8nVorEUQYK0GzF
	MdLQ==
X-Gm-Message-State: APt69E2yg6tA1a9iULW0nzrTc+QjkVChVdcZW1aDNiPG/4jbxUo6Hj7t
	/LQYnX5Ow9A7gzr/gqCYYqPRmPtwkMtApUcrrmjotQ==
X-Google-Smtp-Source: AAOMgpdBKCugjLo3l2qQYkFkNt2rmkGzOKPxhXvDxPn4bjdCKGkjtwsseG49UqLXE8RAd1kshojdMhoaTyujZ58rGI0=
X-Received: by 2002:a37:ddd5:: with SMTP id
	u82-v6mr6524044qku.420.1530826553572; 
	Thu, 05 Jul 2018 14:35:53 -0700 (PDT)
MIME-Version: 1.0
References: <1530561781.1478095.1427741280.5FDF82CB@webmail.messagingengine.com>
In-Reply-To: <1530561781.1478095.1427741280.5FDF82CB@webmail.messagingengine.com>
From: Jim Posen <jim.posen@gmail.com>
Date: Thu, 5 Jul 2018 14:35:39 -0700
Message-ID: <CADZtCSgBNiKoWLw=SNZuByX6eeX38pkS_q76Bh3L9yTxxBEc2Q@mail.gmail.com>
To: me@romanzey.de, 
	Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="000000000000f041e505704754a1"
X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE,
	RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
X-Mailman-Approved-At: Fri, 06 Jul 2018 18:31:18 +0000
Subject: Re: [bitcoin-dev] An efficient re-implementation of Electrum Server
 in Rust
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Jul 2018 21:35:55 -0000

--000000000000f041e505704754a1
Content-Type: text/plain; charset="UTF-8"

This is awesome, nice work!

On Mon, Jul 2, 2018 at 4:16 PM Roman Zeyde via bitcoin-dev <
bitcoin-dev@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@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>

--000000000000f041e505704754a1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">This is awesome, nice work!<br></div><br><div class=3D"gma=
il_quote"><div dir=3D"ltr">On Mon, Jul 2, 2018 at 4:16 PM Roman Zeyde via b=
itcoin-dev &lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bit=
coin-dev@lists.linuxfoundation.org</a>&gt; wrote:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-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 t=
hose of a full node (using ideas from ElectrumX [1], Electrum Personal Serv=
er [2] and bitcoincore-indexd [3]).<br>
<br>
The code and usage instructions can be found here:<br>
<a href=3D"https://github.com/romanz/electrs" rel=3D"noreferrer" target=3D"=
_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 kee=
p real-time track of his balances and his transaction history using the Ele=
ctrum wallet [5].<br>
Since it runs on the user&#39;s own machine, there is no need for the walle=
t to communicate with external Electrum servers, thus preserving the privac=
y of the user&#39;s addresses and balances.<br>
<br>
Features:<br>
=C2=A0* Supports latest Electrum protocol [6].<br>
=C2=A0* Maintains an index of transaction inputs and outputs, allowing fast=
 balance queries<br>
=C2=A0* Fast synchronization of the Bitcoin blockchain (~2.5 hours for ~185=
GB @ June 2018) on modest hardware [7]<br>
=C2=A0* Low CPU &amp; memory usage (after initial indexing)<br>
=C2=A0* Low index storage overhead (~20%), relying on a local full node for=
 transaction retrieval<br>
=C2=A0* Efficient mempool tracker allowing better fee estimation [8].<br>
=C2=A0* `-txindex` is not required for the Bitcoin node<br>
=C2=A0* Uses `rust-bitcoin` library [9] for efficient serialization/deseria=
lization of Bitcoin transactions<br>
=C2=A0* Uses a single RocksDB [10] database, for better consistency and cra=
sh recovery<br>
<br>
Hope you&#39;ll find it useful :)<br>
Questions, suggestions and pull requests are welcome!<br>
<br>
[1] <a href=3D"https://github.com/kyuupichan/electrumx" rel=3D"noreferrer" =
target=3D"_blank">https://github.com/kyuupichan/electrumx</a><br>
[2] <a href=3D"https://github.com/chris-belcher/electrum-personal-server" r=
el=3D"noreferrer" target=3D"_blank">https://github.com/chris-belcher/electr=
um-personal-server</a><br>
[3] <a href=3D"https://github.com/jonasschnelli/bitcoincore-indexd" rel=3D"=
noreferrer" target=3D"_blank">https://github.com/jonasschnelli/bitcoincore-=
indexd</a><br>
[4] <a href=3D"https://github.com/romanz/electrs/blob/master/doc/schema.md"=
 rel=3D"noreferrer" target=3D"_blank">https://github.com/romanz/electrs/blo=
b/master/doc/schema.md</a><br>
[5] <a href=3D"https://electrum.org" rel=3D"noreferrer" target=3D"_blank">h=
ttps://electrum.org</a><br>
[6] <a href=3D"https://electrumx.readthedocs.io/en/latest/protocol.html" re=
l=3D"noreferrer" target=3D"_blank">https://electrumx.readthedocs.io/en/late=
st/protocol.html</a><br>
[7] <a href=3D"https://gist.github.com/romanz/cd9324474de0c2f121198afe3d063=
548" rel=3D"noreferrer" target=3D"_blank">https://gist.github.com/romanz/cd=
9324474de0c2f121198afe3d063548</a><br>
[8] <a href=3D"https://github.com/spesmilo/electrum/blob/59c1d03f018026ac30=
1c4e74facfc64da8ae4708/RELEASE-NOTES#L34-L46" rel=3D"noreferrer" target=3D"=
_blank">https://github.com/spesmilo/electrum/blob/59c1d03f018026ac301c4e74f=
acfc64da8ae4708/RELEASE-NOTES#L34-L46</a>)<br>
[9] <a href=3D"https://github.com/rust-bitcoin/rust-bitcoin" rel=3D"norefer=
rer" target=3D"_blank">https://github.com/rust-bitcoin/rust-bitcoin</a><br>
[10] <a href=3D"https://github.com/spacejam/rust-rocksdb" rel=3D"noreferrer=
" target=3D"_blank">https://github.com/spacejam/rust-rocksdb</a><br>
_______________________________________________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">=
bitcoin-dev@lists.linuxfoundation.org</a><br>
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.org/mail=
man/listinfo/bitcoin-dev</a><br>
</blockquote></div>

--000000000000f041e505704754a1--