summaryrefslogtreecommitdiff
path: root/7c/881219be86c7a73cd79ce8f363ec50e24b0058
blob: 0279cad66cb16c476a804bf207d02abac6bc50ab (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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193]
	helo=mx.sourceforge.net)
	by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <mh.in.england@gmail.com>) id 1VdzKc-0004bG-3y
	for bitcoin-development@lists.sourceforge.net;
	Wed, 06 Nov 2013 09:23:22 +0000
Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of gmail.com
	designates 209.85.219.53 as permitted sender)
	client-ip=209.85.219.53; envelope-from=mh.in.england@gmail.com;
	helo=mail-oa0-f53.google.com; 
Received: from mail-oa0-f53.google.com ([209.85.219.53])
	by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1VdzKa-0006dh-JV
	for bitcoin-development@lists.sourceforge.net;
	Wed, 06 Nov 2013 09:23:22 +0000
Received: by mail-oa0-f53.google.com with SMTP id j17so1852436oag.40
	for <bitcoin-development@lists.sourceforge.net>;
	Wed, 06 Nov 2013 01:23:15 -0800 (PST)
MIME-Version: 1.0
X-Received: by 10.60.174.75 with SMTP id bq11mr1856441oec.17.1383729795119;
	Wed, 06 Nov 2013 01:23:15 -0800 (PST)
Sender: mh.in.england@gmail.com
Received: by 10.76.156.42 with HTTP; Wed, 6 Nov 2013 01:23:15 -0800 (PST)
In-Reply-To: <5279D89D.5000609@bluematt.me>
References: <5279D89D.5000609@bluematt.me>
Date: Wed, 6 Nov 2013 10:23:15 +0100
X-Google-Sender-Auth: X8zA-MPAFP3DLHSiHXVwQVoYy3o
Message-ID: <CANEZrP1fMnUUVC__xubey-smtYvbsNx_mLb_Yj+7vczspOnkAg@mail.gmail.com>
From: Mike Hearn <mike@plan99.net>
To: Matt Corallo <bitcoin-list@bluematt.me>
Content-Type: multipart/alternative; boundary=089e01228a48e73fdf04ea7eb26b
X-Spam-Score: -0.5 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked.
	See
	http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
	for more information. [URIs: bluematt.me]
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(mh.in.england[at]gmail.com)
	-0.0 SPF_PASS               SPF: sender matches SPF record
	1.0 HTML_MESSAGE           BODY: HTML included in message
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1VdzKa-0006dh-JV
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] [ANN] High-speed Bitcoin Relay Network
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Wed, 06 Nov 2013 09:23:22 -0000

--089e01228a48e73fdf04ea7eb26b
Content-Type: text/plain; charset=UTF-8

Very cool, thanks Matt.

I was actually thinking this morning, maybe we should require all nodes to
go through the inv/getdata dance. Otherwise it's possible to improve your
chances at racing a block by mining a block, waiting to see a block inv
from another node, then blasting out your block while other nodes are still
waiting on their getdatas.


On Wed, Nov 6, 2013 at 6:50 AM, Matt Corallo <bitcoin-list@bluematt.me>wrote:

> Recently, there has been a reasonable amount of discussion about the
> continued fragility of the public Bitcoin network on IRC and elsewhere
> (1). To this extent, I'm organizing a system of peering between nodes in
> the network by creating a system of high-speed relay nodes for miners
> and merchants/exchanges. This system will a) act as a fallback in the
> case that the public Bitcoin network encounters issues and b) decrease
> block propagation times between miners.
> It is NOT designed to in any way replace or decrease the need for the
> public Bitcoin P2P network. It is NOT any kind of attempt at
> centralization, and I still encourage interested parties to establish
> their own private peering agreements with large miners as needed.
>
> Currently the network consists of one specially-designed relay node, but
> I hope to bring more online in the coming days.
>
> This network is open to everyone via a few public relay nodes, but also
> will have nodes which are made available only to large miners and
> merchants/exchanges to mitigate the ability of malicious parties to DoS
> the network.
>
> To peer with the public relay nodes, simply select the closest region
> out of us-west (West Coast US), us-east (East Coast US), eu (Western
> Europe), au (Australia), or jpy (Japan) and add
> public.REGION.relay.mattcorallo.com to your addnode list. Note that
> since all of the relay nodes will relay between each other, you gain no
> latency advantage by peering with more than the closest node to you (and
> currently all the regions map to one node, so there they're redundant
> anyway).
>
> For each relay node, you can connect to either port 8334 or 8335.
> Connecting on port 8334 will relay only blocks, and port 8335 will relay
> both blocks and transactions. The relay nodes will request any
> transactions which appear in your invs no matter which port you connect to.
>
> Relay node details:
>  * The relay nodes do some data verification to prevent DoS, but in
> order to keep relay fast, they do not fully verify the data they are
> relaying, thus YOU SHOULD NEVER mine a block building on top of a
> relayed block without fully checking it with your own bitcoin validator
> (as you would any other block relayed from the P2P network).
>  * The relay nodes do not follow the standard inv-getdata-tx/block flow,
> but instead relay transactions/blocks immediately after they have done
> their cursory verification. They do keep some track of whether or not
> your nodes claim to have seen the transactions/blocks before relaying,
> but you may see transactions/blocks being sent which you already have
> and have not requested, if this is a problem for you due to bandwith
> issues, you should reconsider your bandwith constraints and/or are
> peering with too many nodes.
>  * The relay nodes will all relay among themselves very quickly, so
> there is no advantage to peering with as many relay nodes as you can
> find, in fact, the increased incoming bandwidth during block relay
> spikes may result in higher latency for your nodes.
>  * The relay nodes are NOT designed to ensure that you never miss data,
> and may fail to relay some transactions. Additionally, because the relay
> nodes do not respond to standard getdata requests, if you miss a relay
> and then reconnect, that data will not be sent again by the relay nodes.
> The relay nodes are NOT a replacement for having peers on the standard
> P2P network, they are only there to augment the existing P2P network.
>
> If you are a merchant/exchange/large miner/other important node operator
> and wish to gain access to additional domain names which map to relay
> nodes with fewer peers, please fill out the form at
>
> https://docs.google.com/forms/d/1UL82QdcXXEhZwSHJAK04Sk_cWg4zLOu8a216nO7Mt8c/viewform
>
> You can find the source for the relay nodes at
> https://github.com/TheBlueMatt/RelayNode
>
> If you have any comments/concerns/suggestions, please do not hesitate to
> email bitcoin-peering@mattcorallo.com
>
> Thanks,
> Matt
>
>
> (1) There has been extended discussion on #bitcoin-wizards as well as
> #bitcoin-dev of the very small number of active, listening nodes.
> Additionally, because many of those nodes are versions prior to 0.8.4,
> it seems very likely that maliciously creating network splits or at
> least drastically reducing the number of peers for most nodes would not
> be particularly challenging in the current network. Also,
>
> http://www.tik.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf
> noted that they were able to single-handledly decrease the network-wide
> orphan rate by around 50% by improving network peering. Finally, you've
> all seen the recent discussion on malicious mining algorithms. Though
> those are not entirely prevented by reducing block propagation times,
> they can be significantly limited compared to the current, rather
> disjoint, network.
>
>
> ------------------------------------------------------------------------------
> November Webinars for C, C++, Fortran Developers
> Accelerate application performance with scalable programming models.
> Explore
> techniques for threading, error checking, porting, and tuning. Get the most
> from the latest Intel processors and coprocessors. See abstracts and
> register
> http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>

--089e01228a48e73fdf04ea7eb26b
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Very cool, thanks Matt.<div><br></div><div>I was actually =
thinking this morning, maybe we should require all nodes to go through the =
inv/getdata dance. Otherwise it&#39;s possible to improve your chances at r=
acing a block by mining a block, waiting to see a block inv from another no=
de, then blasting out your block while other nodes are still waiting on the=
ir getdatas.</div>
</div><div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Wed,=
 Nov 6, 2013 at 6:50 AM, Matt Corallo <span dir=3D"ltr">&lt;<a href=3D"mail=
to:bitcoin-list@bluematt.me" target=3D"_blank">bitcoin-list@bluematt.me</a>=
&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Recently, there has been a reasonable amount=
 of discussion about the<br>
continued fragility of the public Bitcoin network on IRC and elsewhere<br>
(1). To this extent, I&#39;m organizing a system of peering between nodes i=
n<br>
the network by creating a system of high-speed relay nodes for miners<br>
and merchants/exchanges. This system will a) act as a fallback in the<br>
case that the public Bitcoin network encounters issues and b) decrease<br>
block propagation times between miners.<br>
It is NOT designed to in any way replace or decrease the need for the<br>
public Bitcoin P2P network. It is NOT any kind of attempt at<br>
centralization, and I still encourage interested parties to establish<br>
their own private peering agreements with large miners as needed.<br>
<br>
Currently the network consists of one specially-designed relay node, but<br=
>
I hope to bring more online in the coming days.<br>
<br>
This network is open to everyone via a few public relay nodes, but also<br>
will have nodes which are made available only to large miners and<br>
merchants/exchanges to mitigate the ability of malicious parties to DoS<br>
the network.<br>
<br>
To peer with the public relay nodes, simply select the closest region<br>
out of us-west (West Coast US), us-east (East Coast US), eu (Western<br>
Europe), au (Australia), or jpy (Japan) and add<br>
<a href=3D"http://public.REGION.relay.mattcorallo.com" target=3D"_blank">pu=
blic.REGION.relay.mattcorallo.com</a> to your addnode list. Note that<br>
since all of the relay nodes will relay between each other, you gain no<br>
latency advantage by peering with more than the closest node to you (and<br=
>
currently all the regions map to one node, so there they&#39;re redundant<b=
r>
anyway).<br>
<br>
For each relay node, you can connect to either port 8334 or 8335.<br>
Connecting on port 8334 will relay only blocks, and port 8335 will relay<br=
>
both blocks and transactions. The relay nodes will request any<br>
transactions which appear in your invs no matter which port you connect to.=
<br>
<br>
Relay node details:<br>
=C2=A0* The relay nodes do some data verification to prevent DoS, but in<br=
>
order to keep relay fast, they do not fully verify the data they are<br>
relaying, thus YOU SHOULD NEVER mine a block building on top of a<br>
relayed block without fully checking it with your own bitcoin validator<br>
(as you would any other block relayed from the P2P network).<br>
=C2=A0* The relay nodes do not follow the standard inv-getdata-tx/block flo=
w,<br>
but instead relay transactions/blocks immediately after they have done<br>
their cursory verification. They do keep some track of whether or not<br>
your nodes claim to have seen the transactions/blocks before relaying,<br>
but you may see transactions/blocks being sent which you already have<br>
and have not requested, if this is a problem for you due to bandwith<br>
issues, you should reconsider your bandwith constraints and/or are<br>
peering with too many nodes.<br>
=C2=A0* The relay nodes will all relay among themselves very quickly, so<br=
>
there is no advantage to peering with as many relay nodes as you can<br>
find, in fact, the increased incoming bandwidth during block relay<br>
spikes may result in higher latency for your nodes.<br>
=C2=A0* The relay nodes are NOT designed to ensure that you never miss data=
,<br>
and may fail to relay some transactions. Additionally, because the relay<br=
>
nodes do not respond to standard getdata requests, if you miss a relay<br>
and then reconnect, that data will not be sent again by the relay nodes.<br=
>
The relay nodes are NOT a replacement for having peers on the standard<br>
P2P network, they are only there to augment the existing P2P network.<br>
<br>
If you are a merchant/exchange/large miner/other important node operator<br=
>
and wish to gain access to additional domain names which map to relay<br>
nodes with fewer peers, please fill out the form at<br>
<a href=3D"https://docs.google.com/forms/d/1UL82QdcXXEhZwSHJAK04Sk_cWg4zLOu=
8a216nO7Mt8c/viewform" target=3D"_blank">https://docs.google.com/forms/d/1U=
L82QdcXXEhZwSHJAK04Sk_cWg4zLOu8a216nO7Mt8c/viewform</a><br>
<br>
You can find the source for the relay nodes at<br>
<a href=3D"https://github.com/TheBlueMatt/RelayNode" target=3D"_blank">http=
s://github.com/TheBlueMatt/RelayNode</a><br>
<br>
If you have any comments/concerns/suggestions, please do not hesitate to<br=
>
email <a href=3D"mailto:bitcoin-peering@mattcorallo.com">bitcoin-peering@ma=
ttcorallo.com</a><br>
<br>
Thanks,<br>
Matt<br>
<br>
<br>
(1) There has been extended discussion on #bitcoin-wizards as well as<br>
#bitcoin-dev of the very small number of active, listening nodes.<br>
Additionally, because many of those nodes are versions prior to 0.8.4,<br>
it seems very likely that maliciously creating network splits or at<br>
least drastically reducing the number of peers for most nodes would not<br>
be particularly challenging in the current network. Also,<br>
<a href=3D"http://www.tik.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/=
P2P2013_041.pdf" target=3D"_blank">http://www.tik.ee.ethz.ch/file/49318d3f5=
6c1d525aabf7fda78b23fc0/P2P2013_041.pdf</a><br>
noted that they were able to single-handledly decrease the network-wide<br>
orphan rate by around 50% by improving network peering. Finally, you&#39;ve=
<br>
all seen the recent discussion on malicious mining algorithms. Though<br>
those are not entirely prevented by reducing block propagation times,<br>
they can be significantly limited compared to the current, rather<br>
disjoint, network.<br>
<br>
---------------------------------------------------------------------------=
---<br>
November Webinars for C, C++, Fortran Developers<br>
Accelerate application performance with scalable programming models. Explor=
e<br>
techniques for threading, error checking, porting, and tuning. Get the most=
<br>
from the latest Intel processors and coprocessors. See abstracts and regist=
er<br>
<a href=3D"http://pubads.g.doubleclick.net/gampad/clk?id=3D60136231&amp;iu=
=3D/4140/ostg.clktrk" target=3D"_blank">http://pubads.g.doubleclick.net/gam=
pad/clk?id=3D60136231&amp;iu=3D/4140/ostg.clktrk</a><br>
_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-develo=
pment@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
</blockquote></div><br></div>

--089e01228a48e73fdf04ea7eb26b--