Re: [bitcoin-dev] Bitcoin Node Speed Test
Yes that is completely doable for the next crawl, however I am not sure how much that reflects the behavior bitcoind would see when making connections. Nodes do not make any attempt to sync with close peers, which is an undesirable property if you are attempting to be sybil resistant. With some quick playing around it seems that you do get the expected speedup with close proximity, but it's not a particularly huge difference at present. I'll keep working on it and see where I get. Sent: Friday, July 24, 2015 at 4:48 AM From: Matt Corallo via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org To: bitcoin-dev@lists.linuxfoundation.org Subject: Re: [bitcoin-dev] Bitcoin Node Speed Test You may see much better throughput if you run a few servers around the globe and test based on closest-by-geoip. TCP throughput is rather significantly effected by latency, though I'm not really sure what you should be testing here, ideally. ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Bitcoin Node Speed Test
You may see much better throughput if you run a few servers around the globe and test based on closest-by-geoip. TCP throughput is rather significantly effected by latency, though I'm not really sure what you should be testing here, ideally. On 07/23/15 14:19, slurms--- via bitcoin-dev wrote: On this day, the Bitcoin network was crawled and reachable nodes surveyed to find their maximum throughput in order to determine if it can safely support a faster block rate. Specifically this is an attempt to prove or disprove the common statement that 1MB blocks were only suitable slower internet connections in 2009 when Bitcoin launched, and that connection speeds have improved to the point of obviously supporting larger blocks. The testing methodology is as follows: * Nodes were randomly selected from a peers.dat, 5% of the reachable nodes in the network were contacted. * A random selection of blocks was downloaded from each peer. * There is some bias towards higher connection speeds, very slow connections (30KB/s) timed out in order to run the test at a reasonable rate. * The connecting node was in Amsterdam with a 1GB NIC. Results: * 37% of connected nodes failed to upload blocks faster than 1MB/s. * 16% of connected nodes uploaded blocks faster than 10MB/s. * Raw data, one line per connected node, kilobytes per second http://pastebin.com/raw.php?i=6b4NuiVQ This does not support the theory that the network has the available bandwidth for increased block sizes, as in its current state 37% of nodes would fail to upload a 20MB block to a single peer in under 20 seconds (referencing a number quoted by Gavin). If the bar for suitability is placed at taking only 1% of the block time (6 seconds) to upload one block to one peer, then 69% of the network fails for 20MB blocks. For comparison, only 10% fail this metric for 1MB blocks. ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Bitcoin Node Speed Test
He measured the upload capacity of the peers by downloading from them, or am I being dumb? :) 2015-07-23 18:05 GMT+02:00 Peter Todd via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org: -BEGIN PGP SIGNED MESSAGE- Hash: SHA256 On 23 July 2015 10:19:59 GMT-04:00, slurms--- via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org wrote: This does not support the theory that the network has the available bandwidth for increased block sizes, as in its current state 37% of nodes would fail to upload a 20MB block to a single peer in under 20 seconds (referencing a number quoted by Gavin). If the bar for suitability is placed at taking only 1% of the block time (6 seconds) to upload one block to one peer, then 69% of the network fails for 20MB blocks. For comparison, only 10% fail this metric for 1MB blocks. Note how due to bandwidth being generally asymetric your findings are probably optimistic - you've measured download capacity. On top of that upload is further reduced by the fact that multiple peers at once need to be sent blocks for reliability. Secondly you're measuring a network that isn't under attack - we need significant additional margin to resist attack as performance is consensus-critical. -BEGIN PGP SIGNATURE- iQE9BAEBCAAnIBxQZXRlciBUb2RkIDxwZXRlQHBldGVydG9kZC5vcmc+BQJVsRCj AAoJEMCF8hzn9Lnc47AIAIQbznavjd2Rbqxeq5a3GLqeYoI4BZIQYqfWky+6OQtq yGRKaqPtGuES5y9L0k7efivT385mOl87PWnWMy61xxZ9FJgoS+YHkEx8K4tfgfA2 yLOKzeFSar2ROCcjHYyPWa2XXjRbNmiLzfNuQyIBArg/Ch9//iXUUM+GG0mChF5k nUxLstXgXDNh5H8xkHeLi4lEbt9HFiwcZnT1Tzeo2dvVTujrtyNb/zEhNZScMXDc UOlT8rBLxzHlytKdXt1GNKIq0feTRJNbreBh7/EB4nYTT54CItaaVXul0LdHd5/2 kgKtdbUdeyaRUKrKcvxiuIwclyoOuRQp0DZThsB262o= =tBUM -END PGP SIGNATURE- ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Bitcoin Node Speed Test
That is how I read it as well. On Thu, Jul 23, 2015 at 12:56 PM Marcel Jamin via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org wrote: He measured the upload capacity of the peers by downloading from them, or am I being dumb? :) 2015-07-23 18:05 GMT+02:00 Peter Todd via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org: -BEGIN PGP SIGNED MESSAGE- Hash: SHA256 On 23 July 2015 10:19:59 GMT-04:00, slurms--- via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org wrote: This does not support the theory that the network has the available bandwidth for increased block sizes, as in its current state 37% of nodes would fail to upload a 20MB block to a single peer in under 20 seconds (referencing a number quoted by Gavin). If the bar for suitability is placed at taking only 1% of the block time (6 seconds) to upload one block to one peer, then 69% of the network fails for 20MB blocks. For comparison, only 10% fail this metric for 1MB blocks. Note how due to bandwidth being generally asymetric your findings are probably optimistic - you've measured download capacity. On top of that upload is further reduced by the fact that multiple peers at once need to be sent blocks for reliability. Secondly you're measuring a network that isn't under attack - we need significant additional margin to resist attack as performance is consensus-critical. -BEGIN PGP SIGNATURE- iQE9BAEBCAAnIBxQZXRlciBUb2RkIDxwZXRlQHBldGVydG9kZC5vcmc+BQJVsRCj AAoJEMCF8hzn9Lnc47AIAIQbznavjd2Rbqxeq5a3GLqeYoI4BZIQYqfWky+6OQtq yGRKaqPtGuES5y9L0k7efivT385mOl87PWnWMy61xxZ9FJgoS+YHkEx8K4tfgfA2 yLOKzeFSar2ROCcjHYyPWa2XXjRbNmiLzfNuQyIBArg/Ch9//iXUUM+GG0mChF5k nUxLstXgXDNh5H8xkHeLi4lEbt9HFiwcZnT1Tzeo2dvVTujrtyNb/zEhNZScMXDc UOlT8rBLxzHlytKdXt1GNKIq0feTRJNbreBh7/EB4nYTT54CItaaVXul0LdHd5/2 kgKtdbUdeyaRUKrKcvxiuIwclyoOuRQp0DZThsB262o= =tBUM -END PGP SIGNATURE- ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Bitcoin Node Speed Test
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 On 23 July 2015 10:19:59 GMT-04:00, slurms--- via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org wrote: This does not support the theory that the network has the available bandwidth for increased block sizes, as in its current state 37% of nodes would fail to upload a 20MB block to a single peer in under 20 seconds (referencing a number quoted by Gavin). If the bar for suitability is placed at taking only 1% of the block time (6 seconds) to upload one block to one peer, then 69% of the network fails for 20MB blocks. For comparison, only 10% fail this metric for 1MB blocks. Note how due to bandwidth being generally asymetric your findings are probably optimistic - you've measured download capacity. On top of that upload is further reduced by the fact that multiple peers at once need to be sent blocks for reliability. Secondly you're measuring a network that isn't under attack - we need significant additional margin to resist attack as performance is consensus-critical. -BEGIN PGP SIGNATURE- iQE9BAEBCAAnIBxQZXRlciBUb2RkIDxwZXRlQHBldGVydG9kZC5vcmc+BQJVsRCj AAoJEMCF8hzn9Lnc47AIAIQbznavjd2Rbqxeq5a3GLqeYoI4BZIQYqfWky+6OQtq yGRKaqPtGuES5y9L0k7efivT385mOl87PWnWMy61xxZ9FJgoS+YHkEx8K4tfgfA2 yLOKzeFSar2ROCcjHYyPWa2XXjRbNmiLzfNuQyIBArg/Ch9//iXUUM+GG0mChF5k nUxLstXgXDNh5H8xkHeLi4lEbt9HFiwcZnT1Tzeo2dvVTujrtyNb/zEhNZScMXDc UOlT8rBLxzHlytKdXt1GNKIq0feTRJNbreBh7/EB4nYTT54CItaaVXul0LdHd5/2 kgKtdbUdeyaRUKrKcvxiuIwclyoOuRQp0DZThsB262o= =tBUM -END PGP SIGNATURE- ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Bitcoin Node Speed Test
The library used isnt open source, so unfortunately not. It shouldnt be too hard to replicate in python-bitcoinlib or bitcoinj though. Sent:Thursday, July 23, 2015 at 6:55 PM From:Jameson Lopp jameson.l...@gmail.com To:slu...@gmx.us Cc:bitcoin-dev@lists.linuxfoundation.org Subject:Re: [bitcoin-dev] Bitcoin Node Speed Test Are you willing to share the code that you used to run the test? - Jameson On Thu, Jul 23, 2015 at 10:19 AM, slurms--- via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org wrote: On this day, the Bitcoin network was crawled and reachable nodes surveyed to find their maximum throughput in order to determine if it can safely support a faster block rate. Specifically this is an attempt to prove or disprove the common statement that 1MB blocks were only suitable slower internet connections in 2009 when Bitcoin launched, and that connection speeds have improved to the point of obviously supporting larger blocks. The testing methodology is as follows: * Nodes were randomly selected from a peers.dat, 5% of the reachable nodes in the network were contacted. * A random selection of blocks was downloaded from each peer. * There is some bias towards higher connection speeds, very slow connections (30KB/s) timed out in order to run the test at a reasonable rate. * The connecting node was in Amsterdam with a 1GB NIC. Results: * 37% of connected nodes failed to upload blocks faster than 1MB/s. * 16% of connected nodes uploaded blocks faster than 10MB/s. * Raw data, one line per connected node, kilobytes per second http://pastebin.com/raw.php?i=6b4NuiVQ This does not support the theory that the network has the available bandwidth for increased block sizes, as in its current state 37% of nodes would fail to upload a 20MB block to a single peer in under 20 seconds (referencing a number quoted by Gavin). If the bar for suitability is placed at taking only 1% of the block time (6 seconds) to upload one block to one peer, then 69% of the network fails for 20MB blocks. For comparison, only 10% fail this metric for 1MB blocks. ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Bitcoin Node Speed Test
This looks like the beginnings of some great analysis. Per Peter's remarks, I think it would be productive to run the test(s) on a simulated network with worst case network failure(s) so that we can determine the safety margin needed. I have potential access to h/w resources that would be available for running such tests at the necessary scales. Cheers, p. On Fri, Jul 24, 2015 at 1:14 AM, Slurms MacKenzie via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org wrote: The library used isn't open source, so unfortunately not. It shouldn't be too hard to replicate in python-bitcoinlib or bitcoinj though. *Sent:* Thursday, July 23, 2015 at 6:55 PM *From:* Jameson Lopp jameson.l...@gmail.com *To:* slu...@gmx.us *Cc:* bitcoin-dev@lists.linuxfoundation.org *Subject:* Re: [bitcoin-dev] Bitcoin Node Speed Test Are you willing to share the code that you used to run the test? - Jameson On Thu, Jul 23, 2015 at 10:19 AM, slurms--- via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org wrote: On this day, the Bitcoin network was crawled and reachable nodes surveyed to find their maximum throughput in order to determine if it can safely support a faster block rate. Specifically this is an attempt to prove or disprove the common statement that 1MB blocks were only suitable slower internet connections in 2009 when Bitcoin launched, and that connection speeds have improved to the point of obviously supporting larger blocks. The testing methodology is as follows: * Nodes were randomly selected from a peers.dat, 5% of the reachable nodes in the network were contacted. * A random selection of blocks was downloaded from each peer. * There is some bias towards higher connection speeds, very slow connections (30KB/s) timed out in order to run the test at a reasonable rate. * The connecting node was in Amsterdam with a 1GB NIC. Results: * 37% of connected nodes failed to upload blocks faster than 1MB/s. * 16% of connected nodes uploaded blocks faster than 10MB/s. * Raw data, one line per connected node, kilobytes per second http://pastebin.com/raw.php?i=6b4NuiVQ This does not support the theory that the network has the available bandwidth for increased block sizes, as in its current state 37% of nodes would fail to upload a 20MB block to a single peer in under 20 seconds (referencing a number quoted by Gavin). If the bar for suitability is placed at taking only 1% of the block time (6 seconds) to upload one block to one peer, then 69% of the network fails for 20MB blocks. For comparison, only 10% fail this metric for 1MB blocks. ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Bitcoin Node Speed Test
Thank you a lot for doing this test! Two questions: 1) A node is typically connected to many nodes that would all in parallel download said block. In your test you measured how fast new blocks that presumably are being uploaded in parallel to all those other nodes are being uploaded? Or did you download blocks while those nodes were basically idle? 2) What is your percentage of the very slow connections? On 07/23/2015 11:19 AM, slurms--- via bitcoin-dev wrote: On this day, the Bitcoin network was crawled and reachable nodes surveyed to find their maximum throughput in order to determine if it can safely support a faster block rate. Specifically this is an attempt to prove or disprove the common statement that 1MB blocks were only suitable slower internet connections in 2009 when Bitcoin launched, and that connection speeds have improved to the point of obviously supporting larger blocks. The testing methodology is as follows: * Nodes were randomly selected from a peers.dat, 5% of the reachable nodes in the network were contacted. * A random selection of blocks was downloaded from each peer. * There is some bias towards higher connection speeds, very slow connections (30KB/s) timed out in order to run the test at a reasonable rate. * The connecting node was in Amsterdam with a 1GB NIC. Results: * 37% of connected nodes failed to upload blocks faster than 1MB/s. * 16% of connected nodes uploaded blocks faster than 10MB/s. * Raw data, one line per connected node, kilobytes per second http://pastebin.com/raw.php?i=6b4NuiVQ This does not support the theory that the network has the available bandwidth for increased block sizes, as in its current state 37% of nodes would fail to upload a 20MB block to a single peer in under 20 seconds (referencing a number quoted by Gavin). If the bar for suitability is placed at taking only 1% of the block time (6 seconds) to upload one block to one peer, then 69% of the network fails for 20MB blocks. For comparison, only 10% fail this metric for 1MB blocks. ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev signature.asc Description: OpenPGP digital signature ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Bitcoin Node Speed Test
I was testing against otherwise idle nodes, fetching blocks back from the tip of the chain in an attempt to eliminate any unfair effects of caching. During the time my crawler was running there was no new blocks on the network (luck more than design), so other than initially syncing nodes and transaction broadcasts there should have been no traffic from these peers other than me. Theres unfortunately not enough granularity in my log to tell the difference between nodes which returned bad results (pruned nodes perhaps), and those that timed out. The total number of those was around 10 of 202 successful handshakes, which is fairly insignificant anyway. Ill retool at some point soon and run this a second time with better logging and some other tweaks Ive since realised would help get more, cleaner data. As Peter Todd has pointed out, my numbers are blue sky optimism and should be taken with a grain of salt as far as justifying larger blocks. Im finding the ceiling of the node pushing a block to a single peer (which is unrealistic on the network), and leaving little headroom for anything else. Sent:Thursday, July 23, 2015 at 7:36 PM From:Leo Wandersleb via bitcoin-dev bitcoin-dev@lists.linuxfoundation.org To:bitcoin-dev@lists.linuxfoundation.org Subject:Re: [bitcoin-dev] Bitcoin Node Speed Test Thank you a lot for doing this test! Two questions: 1) A node is typically connected to many nodes that would all in parallel download said block. In your test you measured how fast new blocks that presumably are being uploaded in parallel to all those other nodes are being uploaded? Or did you download blocks while those nodes were basically idle? 2) What is your percentage of the very slow connections? On 07/23/2015 11:19 AM, slurms--- via bitcoin-dev wrote: On this day, the Bitcoin network was crawled and reachable nodes surveyed to find their maximum throughput in order to determine if it can safely support a faster block rate. Specifically this is an attempt to prove or disprove the common statement that 1MB blocks were only suitable slower internet connections in 2009 when Bitcoin launched, and that connection speeds have improved to the point of obviously supporting larger blocks. The testing methodology is as follows: * Nodes were randomly selected from a peers.dat, 5% of the reachable nodes in the network were contacted. * A random selection of blocks was downloaded from each peer. * There is some bias towards higher connection speeds, very slow connections (30KB/s) timed out in order to run the test at a reasonable rate. * The connecting node was in Amsterdam with a 1GB NIC. Results: * 37% of connected nodes failed to upload blocks faster than 1MB/s. * 16% of connected nodes uploaded blocks faster than 10MB/s. * Raw data, one line per connected node, kilobytes per second http://pastebin.com/raw.php?i=6b4NuiVQ This does not support the theory that the network has the available bandwidth for increased block sizes, as in its current state 37% of nodes would fail to upload a 20MB block to a single peer in under 20 seconds (referencing a number quoted by Gavin). If the bar for suitability is placed at taking only 1% of the block time (6 seconds) to upload one block to one peer, then 69% of the network fails for 20MB blocks. For comparison, only 10% fail this metric for 1MB blocks. ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev