Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192]
	helo=mx.sourceforge.net)
	by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <zgenjix@yahoo.com>) id 1SINna-0004sV-QG
	for bitcoin-development@lists.sourceforge.net;
	Thu, 12 Apr 2012 17:27:10 +0000
X-ACL-Warn: 
Received: from nm39-vm7.bullet.mail.ne1.yahoo.com ([98.138.229.167])
	by sog-mx-2.v43.ch3.sourceforge.com with smtp (Exim 4.76)
	id 1SINnW-0004eo-Hz for bitcoin-development@lists.sourceforge.net;
	Thu, 12 Apr 2012 17:27:10 +0000
Received: from [98.138.90.50] by nm39.bullet.mail.ne1.yahoo.com with NNFMP;
	12 Apr 2012 17:24:19 -0000
Received: from [98.138.88.235] by tm3.bullet.mail.ne1.yahoo.com with NNFMP;
	12 Apr 2012 17:24:18 -0000
Received: from [127.0.0.1] by omp1035.mail.ne1.yahoo.com with NNFMP;
	12 Apr 2012 17:24:18 -0000
X-Yahoo-Newman-Property: ymail-3
X-Yahoo-Newman-Id: 953297.8515.bm@omp1035.mail.ne1.yahoo.com
Received: (qmail 64731 invoked by uid 60001); 12 Apr 2012 17:24:18 -0000
X-YMail-OSG: i3S72FMVM1lz.C.eCkvYqjxIDFz09nPvQ7B5C6hmHbXKqch
	bOWQRjNB7cf294PEMCc3g9kNPt_xEE2_9ynxrMbZ16hEazTDBB8H4eoWd4qk
	CjxBwazdvGVt1.kokZdUNoHN8mN4v2WOD_uqVl38RPWNUQYoKcylbUKv4eya
	7SLNeTZSmtBzUb5jObYfAxV8pgEOz94FsdK2fi0q5a4cIITT4AEGRBCfD_Bd
	EuY7utVnN6Ek213EM.jZUwOBuBVM2XFv8kfpvuEgOn1smwQ0f7Qkqo2Tff75
	x308OONhGj2slKpsDpVmWYlEj.94J8kQXNkcjb40ON4kVAOfLKmZHeUgWtEC
	EMlWne8wxxtt2Qt9XYznsUK0ZRDjsR8UjrEKyQf_XJr8B4RxFsQ6x219779k
	x3G8cuC33BtIrLGGuVvgZUM8W8N8DU8UShGOmNZs5IpwTxRVPm6qBV45Rm_k
	5lkXIt1nfJZ.I7rf0Ld1g82E6_QoPqpA-
Received: from [92.20.151.121] by web121005.mail.ne1.yahoo.com via HTTP;
	Thu, 12 Apr 2012 10:24:18 PDT
X-Mailer: YahooMailWebService/0.8.117.340979
References: <CA+XhJbpNYUyPm2Ymcpg3grbfGnfERCsUJNJuByEJbJLsMMmMbQ@mail.gmail.com>
	<CA+8xBpco-yPYB+cjoi_+srG2BkC2ZQBh-3HGNA5EaSB3FWNgog@mail.gmail.com>
Message-ID: <1334251458.43194.YahooMailNeo@web121005.mail.ne1.yahoo.com>
Date: Thu, 12 Apr 2012 10:24:18 -0700 (PDT)
From: Amir Taaki <zgenjix@yahoo.com>
To: "bitcoin-development@lists.sourceforge.net"
	<bitcoin-development@lists.sourceforge.net>
In-Reply-To: <CA+8xBpco-yPYB+cjoi_+srG2BkC2ZQBh-3HGNA5EaSB3FWNgog@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.4 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,
	no trust [98.138.229.167 listed in list.dnswl.org]
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(zgenjix[at]yahoo.com)
	-0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay
	domain
	-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
	author's domain
	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
	0.5 AWL AWL: From: address is in the auto white-list
X-Headers-End: 1SINnW-0004eo-Hz
Subject: Re: [Bitcoin-development] Adding request/reply id in messages
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: Amir Taaki <zgenjix@yahoo.com>
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: Thu, 12 Apr 2012 17:27:10 -0000

Jeff elaborated the problems very well, but I just want to add this:=0A=0AY=
our change is essentially relying (trusting) the server to track a piece of=
 information (your state). Anytime you start depending on another node in s=
ome way, it is opening yourself up to be exploited. Nodes should be doing t=
heir owning state maintainance, not relying on external parties.=0A=0A=0AI =
am very much against the change. As someone who has implemented the complet=
e bitcoin protocol, I had no problems implementing the blockchain download.=
 In fact, I dislike that nodes have to store the last inventory they sent a=
s part of a getblocks in order to trigger the next round. It's be better if=
 there was no state whatsoever.=0A=0A________________________________=0AFro=
m: Jeff Garzik <jgarzik@exmulti.com>=0ATo: sirk390@gmail.com =0ACc: bitcoin=
-development@lists.sourceforge.net =0ASent: Thursday, April 12, 2012 6:12 P=
M=0ASubject: Re: [Bitcoin-development] Adding request/reply id in messages=
=0A=0AOn Wed, Apr 11, 2012 at 2:39 PM, Christian Bodt <sirk390@gmail.com> w=
rote:=0A> Hi,=0A>=0A> I would like to discuss the following bitcoin protoco=
l improvement proposal:=0A>=0A> =A0 =A0 =A0 =A0 =A0Adding request/reply id =
in all messages (in the message header,=0A> based on what was done for the =
"checksum" field)=0A>=0A> The original reason is that I found it very hard =
to implement robust=0A> blockchain downloading as we are missing context in=
formation:=0A> The download protocol relies on the other peer sending one (=
or more) "inv"=0A> reponse(s) to "getblocks" and sending the "hashContinue"=
.=0A> But if the other peer doesn't send a response to getblock, send a par=
tial=0A> response to getblocks, mixes it with some unrelated blocks invento=
ries=0A> or=A0doesn't send the "hashContinue"=A0it is very hard to detect a=
nd handle=0A> (e.g. ban the peer and switch to another). =A0This could caus=
e some DoS=0A> attacks by misbehaving peers.=0A=0AIf the peer is misbehavin=
g, then disconnect.=A0 Your protocol change=0Adoes not offer any clear bene=
fits in this area, as these sorts of=0Aattacks/misbehaviors/bugs are still =
just as possible, and just as=0Adamaging (or not).=0A=0AJust disconnect the=
 strange peer!=0A=0A> The problems are that 1/ we don't know how many "inv"=
 messages to wait for=0A> after "getblocks"=A0and 2/ we don't know how to=
=A0distinguish between result of=0A> "getblocks" and spontaneous "inv" noti=
fications.=0A> The same is true for =A0"addr" messages (it is both a notifi=
cation and reply)=0A> but this is less of a problem as a lack of response t=
o getaddr=0A> doesn't=A0constitute=A0a DoS.=0A>=0A> The idea would be to ad=
d a new "requestid" field in messages and define the=0A> following:=0A=0A=
=0AStateless protocols have a lot of value.=A0 They are easiest to=0Aimplem=
ent, and easier to prove correct.=A0 Existing clients like=0AArtForz' half-=
a-node, variants of which are deployed all over the=0Aplace in bitcoin-land=
, rely on the stateless-ness to one degree or=0Aanother.=0A=0AStateful prot=
ocols, too, have their problems as well.=A0 One must add=0Acode to help rem=
ain "synchronized" between local and remote states,=0Awhich your suggested =
change only hints at.=A0 NFSv4 and RPC have a long=0Ahistory of dealing wit=
h stateful-ness issues.=A0 Obviously bitcoin P2P=0Ais nowhere near as compl=
ex, but the history of NFS development offers=0Aseveral lessons applicable =
to your proposed change.=0A=0AOverall, IMO your listed reasons for needing =
this major change=0A(stateless->stateful) do not really justify the change.=
=A0 Handling=0Ainitial block download can be accomplished in a number of wa=
ys, and=0Apeer(s) may crash or return odd results.=A0 You must handle these=
 cases=0Aproperly, regardless of the presence of req/reply id's.=0A=0A-- =
=0AJeff Garzik=0AexMULTI, Inc.=0Ajgarzik@exmulti.com=0A=0A-----------------=
-------------------------------------------------------------=0AFor Develop=
ers, A Lot Can Happen In A Second.=0ABoundary is the first to Know...and Te=
ll You.=0AMonitor Your Applications in Ultra-Fine Resolution. Try it FREE!=
=0Ahttp://p.sf.net/sfu/Boundary-d2dvs2=0A__________________________________=
_____________=0ABitcoin-development mailing list=0ABitcoin-development@list=
s.sourceforge.net=0Ahttps://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment