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 ) id 1T2MmZ-0002b9-3p for bitcoin-development@lists.sourceforge.net; Fri, 17 Aug 2012 13:40:11 +0000 X-ACL-Warn: Received: from vps7135.xlshosting.net ([178.18.90.41]) by sog-mx-3.v43.ch3.sourceforge.com with esmtp (Exim 4.76) id 1T2MmY-0003xS-8L for bitcoin-development@lists.sourceforge.net; Fri, 17 Aug 2012 13:40:11 +0000 Received: by vps7135.xlshosting.net (Postfix, from userid 1000) id 9AC7D6036C; Fri, 17 Aug 2012 15:40:02 +0200 (CEST) Date: Fri, 17 Aug 2012 15:40:01 +0200 From: Pieter Wuille To: Jeff Garzik Message-ID: <20120817134000.GA30465@vps7135.xlshosting.net> References: <20120816175637.GA13454@vps7135.xlshosting.net> <502D482A.2090609@justmoon.de> <1345150660.5139.YahooMailNeo@web121003.mail.ne1.yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-PGP-Key: http://sipa.ulyssis.org/pubkey.asc User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Score: 1.2 (+) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (pieter.wuille[at]gmail.com) 0.0 DKIM_ADSP_CUSTOM_MED No valid author signature, adsp_override is CUSTOM_MED 0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 1.2 NML_ADSP_CUSTOM_MED ADSP custom_med hit, and not from a mailing list X-Headers-End: 1T2MmY-0003xS-8L Cc: Bitcoin Development Subject: Re: [Bitcoin-development] BIP 35: add mempool message X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Aug 2012 13:40:11 -0000 On Thu, Aug 16, 2012 at 05:05:58PM -0400, Jeff Garzik wrote: > On MSG_MEMTX: The current version has a much higher Just Works value. > > On empty "inv": It is generally better to do something > unconditionally, than have a response generated only under certain > conditions. > > And Alan is correct to note that unknown messages are ignored > (intentionally, for expansion). However, unconditionally returning a > response has little to do with feature probing/discovery. It is > simply a clear, deterministic indication that processing is complete, > for each invocation. I disagree. Returning an empty "inv" is a very strange way of replying "empty mempool". Bitcoin P2P is not a request-response protocol, and "inv" messages are sent where there are inventory items to send. The reaction to a request (for example "getblocks") can be nothing, or one or more "inv" messages if necessary. Special casing an empty "inv" to mean empty mempool is trying to hack a request-response system on top of the asynchronous system. If there is need for confirming the transmission of the mempool is complete, the proposal to use a MSG_MEMTX sounds good to me. No client will ever receive such an inv without requesting the mempool, and implementing handling MSG_MEMTX is trivial. -- Pieter