Post
Topic
Board BitcoinJ
bitcoinj bit by bitcoin flood protection
by
noa
on 09/04/2011, 21:11:06 UTC
I took bitcoinj on a test drive today. Firstly, I would like to say that I'm really happy about the project. I think that having a second independent bitcoin protocol implementation is really valuable, especially since reference implementation code base have a quite steep learning curve.

However, when trying to start up the included PingService it fails to download the initial block chain from the bitcoin peer running on localhost. When i start up the PingService it starts to try to download the blocks from that it has gotten previously. After a few tens of blocks received the peer on localhost:8333 closes the TCP connection, and writes something along the lines of:

socket send flood control disconnect (1380543 bytes)

in the it's debug.log.

I'll look into working around this tomorrow, but thought I should bring this up here first.

What would be the reasonable thing for a client to do to not be seen as flooding by the bitcoin peer? The method I'm thinking about is to split the list of block hashes returned as a response to the getblocks message in several chunks and send a few separate getdata requests with a delay timer.

cheers
noa

Version info:
bitcoin client 0.3.20.1 BETA, OSX, no special settings
bitcoinj r51