Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1WIMRc-0005bV-3t for bitcoin-development@lists.sourceforge.net; Tue, 25 Feb 2014 18:09:28 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of taplink.co designates 50.117.27.232 as permitted sender) client-ip=50.117.27.232; envelope-from=jeremy@taplink.co; helo=mail.taplink.co; Received: from mail.taplink.co ([50.117.27.232]) by sog-mx-3.v43.ch3.sourceforge.com with smtp (Exim 4.76) id 1WIMRb-0005Bj-3f for bitcoin-development@lists.sourceforge.net; Tue, 25 Feb 2014 18:09:28 +0000 Received: from laptop-air ([192.168.168.135]) by mail.taplink.co ; Tue, 25 Feb 2014 10:09:27 -0800 Content-Type: multipart/alternative; boundary=----------2hveFpErhO0lXNJTQcw4UM To: "Peter Todd" , "Mike Hearn" References: <20140225044116.GA28050@savin> <20140225144922.GA25549@savin> Date: Tue, 25 Feb 2014 10:09:23 -0800 MIME-Version: 1.0 From: "Jeremy Spilman" Organization: TapLink Message-ID: In-Reply-To: User-Agent: Opera Mail/1.0 (Win32) X-Spam-Score: -0.6 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 1.0 HTML_MESSAGE BODY: HTML included in message -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 X-Headers-End: 1WIMRb-0005Bj-3f Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] Fee drop 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: Tue, 25 Feb 2014 18:09:28 -0000 ------------2hveFpErhO0lXNJTQcw4UM Content-Type: text/plain; charset=iso-8859-15; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit If I understand correctly, the risk here is this would open a historically large discrepancy between MIN_RELAY and the expected minimum fee to actually obtain block inclusion. I don't know if that's true, but I think that's what Peter is saying makes it different this time. The relay network does anti-spam with MIN_RELAY and MIN_DUST, but of course only transactions which hit the blockchain actually PAY the fee, so this allows lower-cost spam in the true dollar sense. I guess it comes down to how 'sharp' the edge is between staying above MIN_RELAY and staying OUT of the blockchain. In the worst case, there's a completely deterministic boundary, so an attacker can generate an infinite number of transactions which are guaranteed never to see the inside of a block, and so therefore completely free for the attacker, and all of which the network will relay (by default). On Tue, 25 Feb 2014 08:55:58 -0800, Mike Hearn wrote: > Nodes that are encountering memory pressure can increase their min relay > fee locally until their usage fits inside their resources. It's annoying > to do this >by hand but by no means infeasible. Perhaps this is just another way to think of the floating fee problem. What does MIN_RELAY need to be so that my local resources stay within some reasonable limit (and 'reasonable' means different things to different nodes). We have an input gate on transactions entering mempool, we persist mempool, and I don't know the specifics but, I assume there's some expiration policy other than block inclusion to clear out a Tx from mempool. But are transactions prioritized in any way after they make it into mempool today? How closely should mempool selection align with the expected block inclusion? I think if they align perfectly in theory that means optimal mempool resource allocation. For example, a miner would push out cheaper transactions which they were previously hashing against to make room for higher fee transactions (bsaed on max block size or orphan rate projections), but do we do the same for mempool? E.g. - After hitting X number of transactions, the fee has to be larger than a transaction in mempool in order to get in, - That in turn that ejects a random transaction which paid less fees than the incoming Tx from mempool - We would have to consider how ejection would work with chains of unconfirmed transactions (cumulative average fee/kb?) but again in this case, you would want to 'do what miners would do' if you could Thanks, Jeremy ------------2hveFpErhO0lXNJTQcw4UM Content-Type: multipart/related; boundary=----------2hveFpErhO0lXNCkP9CqSp ------------2hveFpErhO0lXNCkP9CqSp Content-Type: text/html; charset=iso-8859-15 Content-ID: Content-Transfer-Encoding: Quoted-Printable
If I understand correctly, the risk here is this would open a histo= rically large discrepancy between MIN_RELAY and the expected minimum fee= to actually obtain block inclusion. I don't know if that's true, but I = think that's what Peter is saying makes it different this time. 

The relay network does anti-spam with MIN_RELAY a= nd MIN_DUST, but of course only transactions which hit the blockchain ac= tually PAY the fee, so this allows lower-cost spam in the true dollar se= nse.

I guess it comes down to how 'sharp' the e= dge is between staying above MIN_RELAY and staying OUT of the blockchain= . In the worst case, there's a completely deterministic boundary, so an = attacker can generate an infinite number of transactions which are guara= nteed never to see the inside of a block, and so therefore completely fr= ee for the attacker, and all of which the network will relay (by default= ).
On Tue, 25 Feb 2014 08:55:58 -0800, Mike Hearn <mi= ke@plan99.net> wrote:
N= odes that are encountering memory pressure can increase their min relay = fee locally until their usage fits inside their resources. It's annoying= to do this by hand but by no means infeasible.

Perhaps this is just another way = to think of the floating fee problem. What does MIN_RELAY need to be so = that my local resources stay within some reasonable limit (and 'reasonab= le' means different things to different nodes).

We have an input gate on transactions entering mempool, we persist memp= ool, and I don't know the specifics but, I assume there's some expiratio= n policy other than block inclusion to clear out a Tx from mempool. But = are transactions prioritized in any way after they make it into mempool = today?

How closely should mempool selection ali= gn with the expected block inclusion? I think if they align perfectly in= theory that means optimal mempool resource allocation. For example, a m= iner would push out cheaper transactions which they were previously hash= ing against to make room for higher fee transactions (bsaed on max block= size or orphan rate projections), but do we do the same for mempool? E.= g.

  - After hitting X number of transacti= ons, the fee has to be larger than a transaction in mempool in order to = get in,
  - That in turn that ejects a random transaction= which paid less fees than the incoming Tx from mempool
 = - We would have to consider how ejection would work with chains of unco= nfirmed transactions (cumulative average fee/kb?) but again in this case= , you would want to 'do what miners would do' if you could
Thanks,
Jeremy
------------2hveFpErhO0lXNCkP9CqSp-- ------------2hveFpErhO0lXNJTQcw4UM--