[Bitcoin-development] have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes)

2014-04-08 Thread Angel Leon
I was wondering if the level of traffic a Bitcoin node gets is or will be
so high that you have heard/will hear complains like the following:


   1. a home router that crashes or slows down when its NAT pin-hole table
   overflows, triggered by many TCP connections.
   2. a home router that crashes or slows down by UDP traffic
   3. a home DSL or cable modem having its send buffer filled up by
   outgoing data, and the buffer fits seconds worth of bytes. This adds
   seconds of delay on interactive traffic. For a web site that needs 10 round
   trips to load this may mean 10s of seconds of delay to load compared to
   without bittorrent. Skype or other delay sensitive applications would be
   affected even more.

These are issues the bittorrent community faced and eventually solved
brilliantly with uTP, which uses a congestion window algorithm that allows
you to use as much of the TCP bandwidth as possible and automatically
throttling down if there's any cross traffic, while also taking into
consideration things like the optimum MTUs (Path MTU discovery), Clock
Drift phenomena and other features.

I was wondering if we have or expect to have these issues in the future,
perhaps uTP could help greatly the performance of the entire network at
some point.

Detailed information about uTP here
http://www.libtorrent.org/utp.html

@gubatron
--
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test  Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes)

2014-04-08 Thread Matt Whitlock
On Tuesday, 8 April 2014, at 12:13 pm, Angel Leon wrote:
 I was wondering if we have or expect to have these issues in the future,
 perhaps uTP could help greatly the performance of the entire network at
 some point.

Or people could simply learn to configure their routers correctly. The only 
time I ever notice that Bitcoind is saturating my upstream link is when I try 
to transfer a file using SCP from a computer on my home network to a computer 
out on the Internet somewhere. SCP sets the maximize throughput flag in the 
IP type of service field, and my router interprets that as meaning low 
priority, and so those SCP transfers get stalled behind Bitcoind. But mostly 
everything else (e.g., email, web browsing, instant messaging, SSH) shows no 
degration whatsoever regardless of what Bitcoind is doing. The key is to move 
the packet queue from the cable modem into the router, where intelligent 
decisions about packet priority and reordering can be enacted.

µTP pretty much reinvents the wheel, and it does so in userspace, where the 
overhead is greater. There's no need for it if proper QoS is in effect.

--
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test  Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes)

2014-04-08 Thread Gregory Maxwell
On Tue, Apr 8, 2014 at 9:13 AM, Angel Leon gubat...@gmail.com wrote:
 a home router that crashes or slows down when its NAT pin-hole table
 overflows, triggered by many TCP connections.

We don't form or need to form a great many connections.

 a home router that crashes or slows down by UDP traffic

We don't use UDP.

 a home DSL or cable modem having its send buffer filled up by outgoing data,
 and the buffer fits seconds worth of bytes. This adds seconds of delay on
 interactive traffic. For a web site that needs 10 round trips to load this
 may mean 10s of seconds of delay to load compared to without bittorrent.
 Skype or other delay sensitive applications would be affected even more.

 These are issues the bittorrent community faced and eventually solved
 brilliantly with uTP, which uses a congestion window algorithm that allows

Yes, TCP has a congestion window too, still sometimes some poorly
designed or configured routers suffer from buffer bloat.

 perhaps uTP could help greatly

Adding our own UDP network stack involving a ton of exposed code
sounds like a great way to gain inadvertent bugs or backdoors.

But there doesn't have to be and shouldn't just be one network
transport for Bitcoin. You can gateway to other protocols and run them
in parallel.  I think it would be great for someone to go build an
alternative transport protocol to gateway to and see what useful
things they can accomplish.

--
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test  Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes)

2014-04-08 Thread Wladimir
On Tue, Apr 8, 2014 at 6:13 PM, Angel Leon gubat...@gmail.com wrote:

 I was wondering if the level of traffic a Bitcoin node gets is or will be
 so high that you have heard/will hear complains like the following:


1. a home router that crashes or slows down when its NAT pin-hole
table overflows, triggered by many TCP connections.


The default maximum amount of connections is 125, which only happens if you
have a stable node that accepts incoming connections. The maximum number of
outgoing connections is always 8.
Should be no problem even for cheapass routers.


1. a home router that crashes or slows down by UDP traffic

 N/A - We don't use UDP


1. a home DSL or cable modem having its send buffer filled up by
outgoing data, and the buffer fits seconds worth of bytes. This adds
seconds of delay on interactive traffic. For a web site that needs 10 round
trips to load this may mean 10s of seconds of delay to load compared to
without bittorrent. Skype or other delay sensitive applications would be
affected even more.

 Filling up the send buffer is certainly possible.
Adding throttling wouldn't be horribly hard, but this is postponed until
parallel block download is implemented, so that other peers will not get
stuck on your throttled node.


1.

 I was wondering if we have or expect to have these issues in the future,
 perhaps uTP could help greatly the performance of the entire network at
 some point.


There is enough lower-hanging fruit left.

If you're interested in speeding up the performance I think it's important
to start with benchmarking and analysis to find out where the pain points
are.

Wladimir
--
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test  Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes)

2014-04-08 Thread Angel Leon
Those clarifications are what I needed to hear. For some reason I started
thinking about this last night and wanted to bring it up just in case it
would help, but def. not necessary. Will get back to more low hanging fruit
in the UI/UX as I get to know the project more.

Gregory: But there doesn't have to be and shouldn't just be one
network transport
for Bitcoin.
is there a formal abstraction for a Transport layer? I suppose if there
isn't it'll be there when needed.

Thanks!

http://twitter.com/gubatron


On Tue, Apr 8, 2014 at 12:48 PM, Wladimir laa...@gmail.com wrote:


 On Tue, Apr 8, 2014 at 6:13 PM, Angel Leon gubat...@gmail.com wrote:

 I was wondering if the level of traffic a Bitcoin node gets is or will be
 so high that you have heard/will hear complains like the following:


1. a home router that crashes or slows down when its NAT pin-hole
table overflows, triggered by many TCP connections.


 The default maximum amount of connections is 125, which only happens if
 you have a stable node that accepts incoming connections. The maximum
 number of outgoing connections is always 8.
 Should be no problem even for cheapass routers.


1. a home router that crashes or slows down by UDP traffic

 N/A - We don't use UDP


1. a home DSL or cable modem having its send buffer filled up by
outgoing data, and the buffer fits seconds worth of bytes. This adds
seconds of delay on interactive traffic. For a web site that needs 10 
 round
trips to load this may mean 10s of seconds of delay to load compared to
without bittorrent. Skype or other delay sensitive applications would be
affected even more.

 Filling up the send buffer is certainly possible.
 Adding throttling wouldn't be horribly hard, but this is postponed until
 parallel block download is implemented, so that other peers will not get
 stuck on your throttled node.


1.

 I was wondering if we have or expect to have these issues in the future,
 perhaps uTP could help greatly the performance of the entire network at
 some point.


 There is enough lower-hanging fruit left.

 If you're interested in speeding up the performance I think it's important
 to start with benchmarking and analysis to find out where the pain points
 are.

 Wladimir


--
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test  Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development