I wasnt aware you had dropped the outgoing cap, but 96 is still way, way, way too much. If you want more outgoing connections, fine, but maybe make 10 or 20, not 96. Accepting more incoming is great, and that should be encouraged. However, accepting more incoming than you make outgoing is not a solution, nor does it add more to the network than it takes away. Keep in mind that nodes attempt to keep a diverse connection pool (something that could be implemented better, though) so accepting 1000 connections does not make up for making 100 connections because you are never going to get that many connections and because you are taking 100 slots on nodes in different /24s.
I don't think this argument is valid. It seems valid if you think about one node, but think about 100 nodes on different /24s. Those 100 nodes running in hub mode are adding 500 plus connection slots each and in total they are doing so on 100 different /24s.
Of course any one node can't add IP diversity. But so long as each node adds more capacity than it takes, there should be a net gain in IP diversity.
It was based on 0.3.23 until just recently. I absolutely agree that running in hub mode without that patch is a problem.
On the next version of the hub mode patches, I will reduce the number of outgoing connections further. In hub mode 2, recommended for mining controllers, I will reduce the outbound connections from 48 to 32. I feel this is needed because otherwise there is too much of a delay on a restart before the node has an adequate view of the network. I will reduce hub mode 3 from 96 to 32 as well. Hub mode 3 is intended for stable network nodes, and there is no particular reason to need a quick network view.
const unsigned HubModes[4][4]=
{ // outbound connections, total connections, IP mask, multithreaded connect
{ 8, 125, 0x0000ffff, 0 }, // Normal mode
- { 32, 200, 0x0000ffff, 0 }, // Small hub mode
- { 48, 384, 0x00ffffff, 1 }, // Medium hub mode
- { 96, 640, 0xffffffff, 1 } // Large hub mode
+ { 16, 200, 0x0000ffff, 0 }, // Small hub mode
+ { 32, 384, 0x00ffffff, 1 }, // Medium hub mode
+ { 32, 640, 0x00ffffff, 1 } // Large hub mode
};
Update: This change is in the current bitcoin-4diff that is up on my web server.