Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1SXcLT-0005Cb-Og for bitcoin-development@lists.sourceforge.net; Thu, 24 May 2012 18:01:07 +0000 X-ACL-Warn: Received: from mail.mckay.com ([37.1.88.131]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) id 1SXcLO-0005ib-Hh for bitcoin-development@lists.sourceforge.net; Thu, 24 May 2012 18:01:07 +0000 Received: from www-data by mail.mckay.com with local (Exim 4.76) (envelope-from ) id 1SXbp8-00080U-KA for bitcoin-development@lists.sourceforge.net; Thu, 24 May 2012 18:27:42 +0100 To: X-PHP-Originating-Script: 0:func.inc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Date: Thu, 24 May 2012 18:27:42 +0100 From: Robert McKay In-Reply-To: References: Message-ID: <81d184ee3a3f5386f6b23090a2a55718@webmail.mckay.com> X-Sender: robert@mckay.com User-Agent: Roundcube Webmail/0.5.3 X-Spam-Score: -0.0 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain X-Headers-End: 1SXcLO-0005ib-Hh Subject: Re: [Bitcoin-development] =?utf-8?q?Punishing_empty_blocks=3F?= 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: Thu, 24 May 2012 18:01:07 -0000 On Thu, 24 May 2012 12:33:12 -0400, Jeff Garzik wrote: > There appears to be some non-trivial mining power devoted to mining > empty blocks. Even with satoshi's key observation -- hash a fixed > 80-byte header, not the entire block -- some miners still find it > easier to mine empty blocks, rather than watch the network for new > transactions. > > Therefore I was wondering what people thought about a client > implementation change: > > - Do not store or relay empty blocks, if time since last block < > X > (where X = 60 minutes, perhaps) > > or even stronger, > > - Ensure latest block includes at least X percent of mempool > unconfirmed TXs If miners wanted to continue mining empty blocks without bothering to monitor the Tx pool they would just switch to stuffing the empty blocks with a dummy transaction of their own to get round your new rules. They could also spam them to the p2p network so that they end up in the mempool if that were necessary. This would probably still be slightly easier than 'doing it properly'. Once the block reward halves in a few months time then receiving transaction fees will probably become more important to the miner's profit and loss calculations and they'll spend the extra time to implement proper transaction processing. I suspect if we do nothing this particular issue will go away. Perhaps it could be helped along by publishing some example code to make it easier for them. The ability to refuse transactions seems like an important part of the game theory of transaction pricing. Miners are supposed to be able to jack up transaction costs by declining to process no fee or too low fee (in their opinion) transactions.. the counter balance is that they are losing money by doing that and leaving more on the table for the next miner to score a block. I expect that in the future there will be other instances when people complain that the miners are being 'unfair' and that the rules should be changed in some way to lower transaction fees (ie: increase block size). If block sizes are increased ever larger and miners aren't allowed to refuse to process transactions it will get rid of the financial motivation for mining and less mining will happen. We should be very careful when making these kinds of changes. Setting percentage quotas of stuff in the mempool sounds dangerous.. miners that hear about a block from a rival miner soon enough could possibly DOS the mempool on the rest of the network to get the block rejected. I think it should be legitimate not to publish a transaction to the p2p network at all.. in the future there will probably be lots of networks other than the p2p network.. right now we have the IPv6 network and the IPv4 network.. in the future there could be many other protocols and perhaps not all transactions will make it back to the old legacy ipv4 p2p network or into the mempool of bitcoin nodes on that network.. but they should still be able to get into the block chain. Rob