Subject: Re: [Bitcoin-development] Protecting Bitcoin against network-wide DoS attack

From: Peter Todd <[email-masked]>
Date: Mon, 15 Jul 2013 03:32:24 -0400

On Sun, Jul 14, 2013 at 10:12:00PM +0000, John Dillon wrote:
> For a non-SPV-mode client we can easily do anti-DoS by requiring the peer to do
> "useful work". As the incoming connections slots get used up, simply kick off
> the incoming peers who have relayed the least fee-paying transactions and valid
> blocks, keeping the peers who have relayed the most. We can continue to use the
> usual, randomized, logic for outgoing peers to attempt to preserve the
> randomized structure of the bitcoin network. Without an ongoing attack nodes
> making new connections are unaffected, and during an attack new connections are
> made somewhat easier by the increased numbers of incoming slots made available
> as the attackers connections timeout.

My mempool rewrite defined a CMemPoolTx subclass for CTransaction - it
shouldn't be too hard to add the required per-node accounting once nodes
get unique identifiers. (can be assigned randomly in the beginning,
later can be used for permanent node identifiers w/ ssl and message
signing)

-- 
'peter'[:-1]@petertodd.org
00000000000000214cc4e58adcacd8923d4d37b18e4f6b73556443ae7c88f71a