The gnutella stats are calculated with a crawler, - that's a piece of software that connects to many gnutella nodes to gather statistical information.
The main problem of the LimeWire crawler is, that it's very inaccurate.
One reason for that is, that it's counting clients without actually knowing how long those clients are going to be online. After a while, the client address will simply expire in the crawler cache and when it encounters it again it will count it again. The other reason is, that the crawler might not reach certain regions of the network, which are poorly connected to the rest of the gnutella network.
The numbers at slyck.com (I assume they get them from limewire.com) were dropping because of the new Morpheus 1.9 which introduced ultrapeers that probably didn't affect the overall size of gnutella but only the crawlers.
The problem of the GDF is, that they are indeed not working together very well. The developers have different philosophies which lead to slightly different designs, so each client might break each other's features (Gnucleus/Morpheus for example blocks most of the ping reply messages which LimeWire clients need to stay connected to the network and calculate the size of the reachable portion of the network). There are endless discussions on what to implement and how to implement it which slow down the development of the clients.
I guess if some of the more advanced clients connected to private networks, you'd have far more efficient networks, although the networks would be much, much smaller. The heterogenous network was the decision of the client developers, although fasttrack (with a similar yet closed protocol) has the by far better performance, the gnutella protocol is probably more robust (against lawsuits and dos-attacks). |