summaryrefslogtreecommitdiff
path: root/6d/7d60e3243e70960310bf00564138d619f78cb7
blob: dcc4e0f1fe72f6d8d2fd062536cc4d9077f3a8e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
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--